mirror of
https://github.com/microsoft/vcpkg.git
synced 2024-12-27 18:31:15 +08:00
[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:
parent
c5fc595443
commit
b4e1885c70
3
ports/nanopb/CONTROL
Normal file
3
ports/nanopb/CONTROL
Normal file
@ -0,0 +1,3 @@
|
||||
Source: nanopb
|
||||
Version: 2019-02-12-1
|
||||
Description: A small code-size Protocol Buffers implementation in ANSI C.
|
47
ports/nanopb/portfile.cmake
Normal file
47
ports/nanopb/portfile.cmake
Normal 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)
|
22
ports/nanopb/shared-lib.patch
Normal file
22
ports/nanopb/shared-lib.patch
Normal 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}>
|
||||
)
|
Loading…
x
Reference in New Issue
Block a user