[nanopb] Add new port (#5057)

* [nanopb] Add new port

* [nanopb] Always use static linkage

* [nanopb] Update to 2019-02-12 and add shared lib building support

* [nanopb] Add missing patch file

* [nanopb] Copy pdb file

* [nanopb] Add some warnings
This commit is contained in:
myd7349 2019-03-05 15:07:10 +08:00 committed by Phil Christensen
parent c5fc595443
commit b4e1885c70
3 changed files with 72 additions and 0 deletions

3
ports/nanopb/CONTROL Normal file
View File

@ -0,0 +1,3 @@
Source: nanopb
Version: 2019-02-12-1
Description: A small code-size Protocol Buffers implementation in ANSI C.

View File

@ -0,0 +1,47 @@
include(vcpkg_common_functions)
if (VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
message(WARNING "\
The author of nanopb advises using this lib as a static library. \
For more details, please visit: \
https://github.com/nanopb/nanopb/pull/383#issuecomment-467852459"
)
endif ()
message(WARNING "\
The nanopb's code generator is not installed as part of the installation \
currently. So you have to run the code generator manually."
)
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO nanopb/nanopb
REF d1305ddef1c18b4cb33992254494ccd255701aaa
SHA512 70e588b0ff13846005658a9fafe57551dc2c126a32f351fe0b6c166c142c42b3bcc44567288f609f2f3a5adc1fe1bf1c585fec8c5fe90817b5b3ab47955aa1fc
HEAD_REF master
PATCHES
shared-lib.patch
)
string(COMPARE EQUAL ${VCPKG_LIBRARY_LINKAGE} "static" BUILD_STATIC_LIBS)
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
PREFER_NINJA
OPTIONS
-Dnanopb_BUILD_RUNTIME=ON
-Dnanopb_BUILD_GENERATOR=OFF
-DBUILD_STATIC_LIBS=${BUILD_STATIC_LIBS}
-Dnanopb_MSVC_STATIC_RUNTIME=OFF
)
vcpkg_install_cmake()
vcpkg_copy_pdbs()
vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/${PORT})
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
# Handle copyright
configure_file(${SOURCE_PATH}/LICENSE.txt ${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright COPYONLY)

View File

@ -0,0 +1,22 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index b818734..174b650 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -67,6 +67,7 @@ endif()
if(nanopb_BUILD_RUNTIME)
if(BUILD_SHARED_LIBS)
+ set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)
add_library(protobuf-nanopb SHARED
pb.h
pb_common.h
@@ -79,7 +80,8 @@ if(nanopb_BUILD_RUNTIME)
SOVERSION ${nanopb_SOVERSION})
install(TARGETS protobuf-nanopb EXPORT nanopb-targets
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
- LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
target_include_directories(protobuf-nanopb INTERFACE
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
)