aboutsummaryrefslogtreecommitdiff
path: root/ports/protobuf
diff options
context:
space:
mode:
authorWimok Nupphiboon <wimok.mok@gmail.com>2018-03-24 11:53:55 +0700
committerWimok Nupphiboon <wimok.mok@gmail.com>2018-03-24 11:53:55 +0700
commit663be4bbffd435cf5e5fc62a0774c784c10ddc68 (patch)
treed214f24405fa75d4dad9dfb938a04846d2ca6102 /ports/protobuf
parent1e380dde21317e73d1859dad1c64c06eb88cc502 (diff)
parentaa57df6d6ed6d17000522492b66fc93d3f32ab86 (diff)
downloadvcpkg-663be4bbffd435cf5e5fc62a0774c784c10ddc68.tar.gz
vcpkg-663be4bbffd435cf5e5fc62a0774c784c10ddc68.zip
Merge remote-tracking branch 'origin/master'
Diffstat (limited to 'ports/protobuf')
-rw-r--r--ports/protobuf/CONTROL2
-rw-r--r--ports/protobuf/js-embed.patch25
-rw-r--r--ports/protobuf/portfile.cmake48
3 files changed, 55 insertions, 20 deletions
diff --git a/ports/protobuf/CONTROL b/ports/protobuf/CONTROL
index 0cf5b4334..86fecafc5 100644
--- a/ports/protobuf/CONTROL
+++ b/ports/protobuf/CONTROL
@@ -1,5 +1,5 @@
Source: protobuf
-Version: 3.5.1
+Version: 3.5.1-1
Description: Protocol Buffers - Google's data interchange format
Feature: zlib
diff --git a/ports/protobuf/js-embed.patch b/ports/protobuf/js-embed.patch
new file mode 100644
index 000000000..df20fe030
--- /dev/null
+++ b/ports/protobuf/js-embed.patch
@@ -0,0 +1,25 @@
+diff --git a/cmake/libprotoc.cmake b/cmake/libprotoc.cmake
+index 107c1c5..233bcf6 100644
+--- a/cmake/libprotoc.cmake
++++ b/cmake/libprotoc.cmake
+@@ -73,7 +73,7 @@ set(libprotoc_files
+ ${protobuf_source_dir}/src/google/protobuf/compiler/javanano/javanano_message_field.cc
+ ${protobuf_source_dir}/src/google/protobuf/compiler/javanano/javanano_primitive_field.cc
+ ${protobuf_source_dir}/src/google/protobuf/compiler/js/js_generator.cc
+- ${protobuf_source_dir}/src/google/protobuf/compiler/js/well_known_types_embed.cc
++ ${CMAKE_CURRENT_BINARY_DIR}/well_known_types_embed.cc
+ ${protobuf_source_dir}/src/google/protobuf/compiler/objectivec/objectivec_enum.cc
+ ${protobuf_source_dir}/src/google/protobuf/compiler/objectivec/objectivec_enum_field.cc
+ ${protobuf_source_dir}/src/google/protobuf/compiler/objectivec/objectivec_extension.cc
+@@ -210,9 +210,9 @@ set(js_well_known_types_sources
+ )
+ add_executable(js_embed ${protobuf_source_dir}/src/google/protobuf/compiler/js/embed.cc)
+ add_custom_command(
+- OUTPUT ${protobuf_source_dir}/src/google/protobuf/compiler/js/well_known_types_embed.cc
++ OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/well_known_types_embed.cc
+ DEPENDS js_embed ${js_well_known_types_sources}
+- COMMAND js_embed ${js_well_known_types_sources} > ${protobuf_source_dir}/src/google/protobuf/compiler/js/well_known_types_embed.cc
++ COMMAND "$<TARGET_FILE:js_embed>" ${js_well_known_types_sources} > ${CMAKE_CURRENT_BINARY_DIR}/well_known_types_embed.cc
+ )
+
+ add_library(libprotoc ${protobuf_SHARED_OR_STATIC}
diff --git a/ports/protobuf/portfile.cmake b/ports/protobuf/portfile.cmake
index 197a61446..593eebe7d 100644
--- a/ports/protobuf/portfile.cmake
+++ b/ports/protobuf/portfile.cmake
@@ -8,14 +8,7 @@ vcpkg_download_distfile(ARCHIVE_FILE
FILENAME "protobuf-cpp-${PROTOBUF_VERSION}.tar.gz"
SHA512 195ccb210229e0a1080dcdb0a1d87b2e421ad55f6b036c56db3183bd50a942c75b4cc84e6af8a10ad88022a247781a06f609a145a461dfbb8f04051b7dd714b3
)
-vcpkg_download_distfile(TOOL_ARCHIVE_FILE
- URLS "https://github.com/google/protobuf/releases/download/v${PROTOC_VERSION}/protoc-${PROTOC_VERSION}-win32.zip"
- FILENAME "protoc-${PROTOC_VERSION}-win32.zip"
- SHA512 27b1b82e92d82c35158362435a29f590961b91f68cda21bffe46e52271340ea4587c4e3177668809af0d053b61e6efa69f0f62156ea11393cd9e6eb4474a3049
-)
-
set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/protobuf-${PROTOBUF_VERSION})
-set(TOOL_PATH ${CURRENT_BUILDTREES_DIR}/src/protobuf-${PROTOBUF_VERSION}-win32)
vcpkg_extract_source_archive(${ARCHIVE_FILE})
@@ -25,19 +18,29 @@ vcpkg_apply_patches(
PATCHES
"${CMAKE_CURRENT_LIST_DIR}/001-add-compiler-flag.patch"
"${CMAKE_CURRENT_LIST_DIR}/export-ParseGeneratorParameter.patch"
+ "${CMAKE_CURRENT_LIST_DIR}/js-embed.patch"
)
+if(NOT VCPKG_CMAKE_SYSTEM_NAME OR VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
+ set(TOOL_PATH ${CURRENT_BUILDTREES_DIR}/src/protobuf-${PROTOBUF_VERSION}-win32)
+ vcpkg_download_distfile(TOOL_ARCHIVE_FILE
+ URLS "https://github.com/google/protobuf/releases/download/v${PROTOC_VERSION}/protoc-${PROTOC_VERSION}-win32.zip"
+ FILENAME "protoc-${PROTOC_VERSION}-win32.zip"
+ SHA512 27b1b82e92d82c35158362435a29f590961b91f68cda21bffe46e52271340ea4587c4e3177668809af0d053b61e6efa69f0f62156ea11393cd9e6eb4474a3049
+ )
+
+ vcpkg_extract_source_archive(${TOOL_ARCHIVE_FILE} ${TOOL_PATH})
+endif()
-vcpkg_extract_source_archive(${TOOL_ARCHIVE_FILE} ${TOOL_PATH})
# Disable the protobuf compiler when targeting UWP
-if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL WindowsStore)
+if(CMAKE_HOST_WIN32 AND VCPKG_CMAKE_SYSTEM_NAME)
set(protobuf_BUILD_COMPILER OFF)
else()
set(protobuf_BUILD_COMPILER ON)
endif()
-if (VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
+if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
set(protobuf_BUILD_SHARED_LIBS ON)
else()
set(protobuf_BUILD_SHARED_LIBS OFF)
@@ -57,6 +60,7 @@ endif()
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}/cmake
+ PREFER_NINJA
OPTIONS
-Dprotobuf_BUILD_SHARED_LIBS=${protobuf_BUILD_SHARED_LIBS}
-Dprotobuf_MSVC_STATIC_RUNTIME=${protobuf_MSVC_STATIC_RUNTIME}
@@ -81,18 +85,22 @@ endfunction()
protobuf_try_remove_recurse_wait(${CURRENT_PACKAGES_DIR}/debug/include)
-file(READ ${CURRENT_PACKAGES_DIR}/share/protobuf/protobuf-targets-release.cmake RELEASE_MODULE)
-string(REPLACE "\${_IMPORT_PREFIX}/bin/protoc.exe" "\${_IMPORT_PREFIX}/tools/protoc.exe" RELEASE_MODULE "${RELEASE_MODULE}")
-file(WRITE ${CURRENT_PACKAGES_DIR}/share/protobuf/protobuf-targets-release.cmake "${RELEASE_MODULE}")
+if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release")
+ file(READ ${CURRENT_PACKAGES_DIR}/share/protobuf/protobuf-targets-release.cmake RELEASE_MODULE)
+ string(REPLACE "\${_IMPORT_PREFIX}/bin/protoc.exe" "\${_IMPORT_PREFIX}/tools/protoc.exe" RELEASE_MODULE "${RELEASE_MODULE}")
+ file(WRITE ${CURRENT_PACKAGES_DIR}/share/protobuf/protobuf-targets-release.cmake "${RELEASE_MODULE}")
+endif()
-file(READ ${CURRENT_PACKAGES_DIR}/debug/share/protobuf/protobuf-targets-debug.cmake DEBUG_MODULE)
-string(REPLACE "\${_IMPORT_PREFIX}" "\${_IMPORT_PREFIX}/debug" DEBUG_MODULE "${DEBUG_MODULE}")
-string(REPLACE "\${_IMPORT_PREFIX}/debug/bin/protoc.exe" "\${_IMPORT_PREFIX}/tools/protoc.exe" DEBUG_MODULE "${DEBUG_MODULE}")
-file(WRITE ${CURRENT_PACKAGES_DIR}/share/protobuf/protobuf-targets-debug.cmake "${DEBUG_MODULE}")
+if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug")
+ file(READ ${CURRENT_PACKAGES_DIR}/debug/share/protobuf/protobuf-targets-debug.cmake DEBUG_MODULE)
+ string(REPLACE "\${_IMPORT_PREFIX}" "\${_IMPORT_PREFIX}/debug" DEBUG_MODULE "${DEBUG_MODULE}")
+ string(REPLACE "\${_IMPORT_PREFIX}/debug/bin/protoc.exe" "\${_IMPORT_PREFIX}/tools/protoc.exe" DEBUG_MODULE "${DEBUG_MODULE}")
+ file(WRITE ${CURRENT_PACKAGES_DIR}/share/protobuf/protobuf-targets-debug.cmake "${DEBUG_MODULE}")
+endif()
protobuf_try_remove_recurse_wait(${CURRENT_PACKAGES_DIR}/debug/share)
-if (VCPKG_LIBRARY_LINKAGE STREQUAL static)
+if(VCPKG_LIBRARY_LINKAGE STREQUAL static)
protobuf_try_remove_recurse_wait(${CURRENT_PACKAGES_DIR}/bin)
protobuf_try_remove_recurse_wait(${CURRENT_PACKAGES_DIR}/debug/bin)
else()
@@ -107,5 +115,7 @@ if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
endif()
file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/protobuf RENAME copyright)
-file(INSTALL ${TOOL_PATH}/bin/protoc.exe DESTINATION ${CURRENT_PACKAGES_DIR}/tools)
+if(NOT VCPKG_CMAKE_SYSTEM_NAME OR VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
+ file(INSTALL ${TOOL_PATH}/bin/protoc.exe DESTINATION ${CURRENT_PACKAGES_DIR}/tools)
+endif()
vcpkg_copy_pdbs()