diff options
| author | Jack·Boos·Yu <47264268+JackBoosY@users.noreply.github.com> | 2019-12-24 04:40:21 +0800 |
|---|---|---|
| committer | Robert Schumacher <roschuma@microsoft.com> | 2019-12-23 12:40:21 -0800 |
| commit | 1c4a1d1cef7eaf23f6d9ff1785c35625479b0942 (patch) | |
| tree | 82b4d49bbcba566aa796576d4bb8b5115e4f38b8 | |
| parent | deec33abc9e89bfe40a0b10c7829ab3461d8ac56 (diff) | |
| download | vcpkg-1c4a1d1cef7eaf23f6d9ff1785c35625479b0942.tar.gz vcpkg-1c4a1d1cef7eaf23f6d9ff1785c35625479b0942.zip | |
[protobuf-c]Add new port. (#8624)
* [protobuf-c]Add new port.
* [protobuf-c]Add homepage.
* [protobuf-c] Remove useless code.
* update baseline
* update baseline
| -rw-r--r-- | ports/protobuf-c/CONTROL | 12 | ||||
| -rw-r--r-- | ports/protobuf-c/fix-features.patch | 62 | ||||
| -rw-r--r-- | ports/protobuf-c/portfile.cmake | 30 | ||||
| -rw-r--r-- | scripts/ci.baseline.txt | 6 |
4 files changed, 110 insertions, 0 deletions
diff --git a/ports/protobuf-c/CONTROL b/ports/protobuf-c/CONTROL new file mode 100644 index 000000000..dce11fd90 --- /dev/null +++ b/ports/protobuf-c/CONTROL @@ -0,0 +1,12 @@ +Source: protobuf-c
+Version: 1.3.2
+Homepage: https://github.com/protobuf-c/protobuf-c
+Description: This is protobuf-c, a C implementation of the Google Protocol Buffers data serialization format.
+Build-Depends: protobuf
+
+Feature: tools
+Description: build tools.
+
+Feature: test
+Description: build test project.
+Build-Depends: protobuf[tools]
\ No newline at end of file diff --git a/ports/protobuf-c/fix-features.patch b/ports/protobuf-c/fix-features.patch new file mode 100644 index 000000000..89b2dd432 --- /dev/null +++ b/ports/protobuf-c/fix-features.patch @@ -0,0 +1,62 @@ +diff --git a/build-cmake/CMakeLists.txt b/build-cmake/CMakeLists.txt +index bc1728f..7c6a04d 100644 +--- a/build-cmake/CMakeLists.txt ++++ b/build-cmake/CMakeLists.txt +@@ -61,11 +61,15 @@ if (MSVC AND MSVC_STATIC_BUILD) + endif(${flag_var} MATCHES "/MD") + endforeach(flag_var) + endif (MSVC AND MSVC_STATIC_BUILD) ++ ++IF(WITH_TOOLS) + FILE(GLOB PROTOC_GEN_C_SRC ${MAIN_DIR}/protoc-c/*.h ${MAIN_DIR}/protoc-c/*.cc ) + ADD_EXECUTABLE(protoc-gen-c ${PROTOC_GEN_C_SRC}) + + TARGET_LINK_LIBRARIES(protoc-gen-c ${PROTOBUF_PROTOC_LIBRARY} ${PROTOBUF_LIBRARY}) ++ENDIF() + ++IF(WITH_TEST AND WITH_TOOLS) + IF(CMAKE_HOST_UNIX) + ADD_CUSTOM_COMMAND(TARGET ${PROJECT_NAME} POST_BUILD + COMMAND ln -sf protoc-gen-c protoc-c +@@ -79,8 +83,6 @@ FUNCTION(GENERATE_TEST_SOURCES PROTO_FILE SRC HDR) + DEPENDS protoc-gen-c) + ENDFUNCTION() + +- +-IF(CMAKE_BUILD_TYPE MATCHES Debug) + ENABLE_TESTING() + + GENERATE_TEST_SOURCES(${TEST_DIR}/test.proto t/test.pb-c.c t/test.pb-c.h) +@@ -126,17 +128,17 @@ GENERATE_TEST_SOURCES(${TEST_DIR}/test-proto3.proto t/test-proto3.pb-c.c t/test- + ADD_EXECUTABLE(test-generated-code3 ${TEST_DIR}/generated-code/test-generated-code.c t/test-proto3.pb-c.c t/test-proto3.pb-c.h) + TARGET_COMPILE_DEFINITIONS(test-generated-code3 PUBLIC -DPROTO3) + TARGET_LINK_LIBRARIES(test-generated-code3 protobuf-c) +- + ENDIF() + +-INSTALL(TARGETS protoc-gen-c protobuf-c RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib) +-INSTALL(FILES ${MAIN_DIR}/protobuf-c/protobuf-c.h DESTINATION include/protobuf-c) +-INSTALL(FILES ${MAIN_DIR}/protobuf-c/protobuf-c.h DESTINATION include) ++IF (WITH_TOOLS) ++INSTALL(TARGETS protoc-gen-c RUNTIME DESTINATION tools LIBRARY DESTINATION lib ARCHIVE DESTINATION lib) ++ENDIF() + + IF(CMAKE_HOST_UNIX) + INSTALL(CODE "EXECUTE_PROCESS (COMMAND ln -sf protoc-gen-c protoc-c WORKING_DIRECTORY ${CMAKE_INSTALL_PREFIX}/bin)") + ENDIF() + ++IF (WITH_TEST) + INCLUDE(Dart) + + SET(DART_TESTING_TIMEOUT 5) +@@ -147,5 +149,10 @@ ADD_TEST(test-issue220 test-issue220) + ADD_TEST(test-issue251 test-issue251) + ADD_TEST(test-version test-version) + ++ENDIF() ++ ++INSTALL(TARGETS protobuf-c RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib) ++INSTALL(FILES ${MAIN_DIR}/protobuf-c/protobuf-c.h DESTINATION include/protobuf-c) ++INSTALL(FILES ${MAIN_DIR}/protobuf-c/protobuf-c.h DESTINATION include) + + INCLUDE(CPack) diff --git a/ports/protobuf-c/portfile.cmake b/ports/protobuf-c/portfile.cmake new file mode 100644 index 000000000..ec3bcba72 --- /dev/null +++ b/ports/protobuf-c/portfile.cmake @@ -0,0 +1,30 @@ +vcpkg_fail_port_install(MESSAGE "${PORT} currently only supports Linux platform" ON_TARGET "Windows")
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO protobuf-c/protobuf-c
+ REF 1390409f4ee4e26d0635310995b516eb702c3f9e #1.3.2
+ SHA512 5c60883c4ef064c641875bfe7f89bf255a29dd20b5e0be5878cbaec03f2efd1f926c3e40dc0090cb172b8eef227fddafe86051f08edb3e1c26d0bd6aca673e41
+ HEAD_REF master
+ PATCHES fix-features.patch
+)
+
+vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS
+ tools WITH_TOOLS
+ test WITH_TEST
+)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}/build-cmake
+ PREFER_NINJA
+ DISABLE_PARALLEL_CONFIGURE
+ OPTIONS ${FEATURE_OPTIONS}
+)
+
+vcpkg_install_cmake()
+
+# Include files should not be duplicated into the /debug/include directory.
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+
+# Handle copyright
+file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)
\ No newline at end of file diff --git a/scripts/ci.baseline.txt b/scripts/ci.baseline.txt index a905cba96..bc2f38650 100644 --- a/scripts/ci.baseline.txt +++ b/scripts/ci.baseline.txt @@ -1340,6 +1340,12 @@ pqp:x64-uwp=fail proj4:arm64-windows=fail
proj4:arm-uwp=fail
proj4:x64-uwp=fail
+protobuf-c:x86-windows=fail
+protobuf-c:x64-windows=fail
+protobuf-c:x64-windows-static=fail
+protobuf-c:x64-uwp=fail
+protobuf-c:arm64-windows=fail
+protobuf-c:arm-uwp=fail
ptex:arm-uwp=fail
ptex:x64-linux=fail
ptex:x64-osx=fail
|
