diff options
| author | myd7349 <myd7349@gmail.com> | 2019-03-05 15:07:10 +0800 |
|---|---|---|
| committer | Phil Christensen <philc@microsoft.com> | 2019-03-04 23:07:10 -0800 |
| commit | b4e1885c7050dffaf41dba763d7982b8dc7bb03e (patch) | |
| tree | 4be347794209dcf783c8d21cfbf2ebf0bf19a78d | |
| parent | c5fc595443723a8ece6c0aa166eb0842982cd371 (diff) | |
| download | vcpkg-b4e1885c7050dffaf41dba763d7982b8dc7bb03e.tar.gz vcpkg-b4e1885c7050dffaf41dba763d7982b8dc7bb03e.zip | |
[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
| -rw-r--r-- | ports/nanopb/CONTROL | 3 | ||||
| -rw-r--r-- | ports/nanopb/portfile.cmake | 47 | ||||
| -rw-r--r-- | ports/nanopb/shared-lib.patch | 22 |
3 files changed, 72 insertions, 0 deletions
diff --git a/ports/nanopb/CONTROL b/ports/nanopb/CONTROL new file mode 100644 index 000000000..0916582fe --- /dev/null +++ b/ports/nanopb/CONTROL @@ -0,0 +1,3 @@ +Source: nanopb
+Version: 2019-02-12-1
+Description: A small code-size Protocol Buffers implementation in ANSI C.
diff --git a/ports/nanopb/portfile.cmake b/ports/nanopb/portfile.cmake new file mode 100644 index 000000000..278b3c7bb --- /dev/null +++ b/ports/nanopb/portfile.cmake @@ -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)
diff --git a/ports/nanopb/shared-lib.patch b/ports/nanopb/shared-lib.patch new file mode 100644 index 000000000..0d5960e72 --- /dev/null +++ b/ports/nanopb/shared-lib.patch @@ -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}> + ) |
