From 35ce3588ef04cb72489f35d0cf889ee79406d199 Mon Sep 17 00:00:00 2001 From: Raed Romanov Date: Mon, 17 Jun 2019 21:03:39 +0300 Subject: [PATCH 1/8] [zookeeper-mt] Add new port --- ports/zookeeper-mt/CONTROL | 3 + ports/zookeeper-mt/cmake_build.patch | 95 ++++++++++++++++++++++++++++ ports/zookeeper-mt/portfile.cmake | 26 ++++++++ 3 files changed, 124 insertions(+) create mode 100644 ports/zookeeper-mt/CONTROL create mode 100644 ports/zookeeper-mt/cmake_build.patch create mode 100644 ports/zookeeper-mt/portfile.cmake diff --git a/ports/zookeeper-mt/CONTROL b/ports/zookeeper-mt/CONTROL new file mode 100644 index 00000000000000..4e5bab52f4b008 --- /dev/null +++ b/ports/zookeeper-mt/CONTROL @@ -0,0 +1,3 @@ +Source: zookeeper-mt +Version: 3.5.4 +Description: ZooKeeper C buindings diff --git a/ports/zookeeper-mt/cmake_build.patch b/ports/zookeeper-mt/cmake_build.patch new file mode 100644 index 00000000000000..b740612102f5cc --- /dev/null +++ b/ports/zookeeper-mt/cmake_build.patch @@ -0,0 +1,95 @@ +diff --git a/src/c/CMakeLists.txt b/src/c/CMakeLists.txt +index 00d639e..28ecac5 100644 +--- a/src/c/CMakeLists.txt ++++ b/src/c/CMakeLists.txt +@@ -153,7 +153,11 @@ configure_file(cmake_config.h.in ${CMAKE_CURRENT_BINARY_DIR}/include/config.h) + # hashtable library + set(hashtable_sources src/hashtable/hashtable_itr.c src/hashtable/hashtable.c) + add_library(hashtable STATIC ${hashtable_sources}) +-target_include_directories(hashtable PUBLIC include) ++target_include_directories(hashtable ++ PUBLIC ++ $ ++ $ ++ PRIVATE include) + target_link_libraries(hashtable PUBLIC $<$,$>:m>) + + # zookeeper library +@@ -175,26 +179,34 @@ if(WIN32) + list(APPEND zookeeper_sources src/winport.c) + endif() + +-add_library(zookeeper STATIC ${zookeeper_sources}) +-target_include_directories(zookeeper PUBLIC include ${CMAKE_CURRENT_BINARY_DIR}/include generated) +-target_link_libraries(zookeeper PUBLIC ++add_library(zookeeper_mt STATIC ${zookeeper_sources}) ++target_include_directories(zookeeper_mt ++ INTERFACE ++ "${CMAKE_INSTALL_PREFIX}/include" ++ PUBLIC ++ $ ++ $ ++ $ ++ $ ++ PRIVATE include ${CMAKE_CURRENT_BINARY_DIR}/include generated) ++target_link_libraries(zookeeper_mt PUBLIC + hashtable + $<$:rt> # clock_gettime + $<$:ws2_32>) # Winsock 2.0 + + if(WANT_SYNCAPI AND NOT WIN32) + find_package(Threads REQUIRED) +- target_link_libraries(zookeeper PUBLIC Threads::Threads) ++ target_link_libraries(zookeeper_mt PUBLIC Threads::Threads) + endif() + + # cli executable + add_executable(cli src/cli.c) +-target_link_libraries(cli zookeeper) ++target_link_libraries(cli zookeeper_mt) + + # load_gen executable + if(WANT_SYNCAPI AND NOT WIN32) + add_executable(load_gen src/load_gen.c) +- target_link_libraries(load_gen zookeeper) ++ target_link_libraries(load_gen zookeeper_mt) + endif() + + # tests +@@ -222,28 +234,14 @@ if(WANT_SYNCAPI) + list(APPEND test_sources tests/PthreadMocks.cc) + endif() + +-if(WANT_CPPUNIT) +- add_executable(zktest ${test_sources}) +- target_include_directories(zktest PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}) +- +- target_compile_definitions(zktest +- PRIVATE -DZKSERVER_CMD="${CMAKE_CURRENT_SOURCE_DIR}/tests/zkServer.sh") +- # TODO: Use `find_library()` for `cppunit`. +- target_link_libraries(zktest zookeeper cppunit dl) +- +- # This reads the link flags from the file `tests/wrappers.opt` into +- # the variable `symbol_wrappers` for use in `target_link_libraries`. +- # It is a holdover from the original build system. +- file(STRINGS tests/wrappers.opt symbol_wrappers) +- if(WANT_SYNCAPI) +- file(STRINGS tests/wrappers-mt.opt symbol_wrappers_mt) +- endif() ++include(GNUInstallDirs) ++ ++install(TARGETS zookeeper_mt hashtable EXPORT zookeeper DESTINATION lib/) + +- target_link_libraries(zktest ${symbol_wrappers} ${symbol_wrappers_mt}) ++if (${CMAKE_BUILD_TYPE} STREQUAL "Release") ++ install(DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/include/" DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/zookeeper") ++ install(DIRECTORY "generated/" DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/zookeeper") ++ install(DIRECTORY "include/" DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/zookeeper") + +- enable_testing() +- add_test(NAME zktest_runner COMMAND zktest) +- set_property(TEST zktest_runner PROPERTY ENVIRONMENT +- "ZKROOT=${CMAKE_CURRENT_SOURCE_DIR}/../.." +- "CLASSPATH=$CLASSPATH:$CLOVER_HOME/lib/clover.jar") ++ install(EXPORT zookeeper DESTINATION share/zookeeper_mt/ FILE zookeeper_mtConfig.cmake) + endif() diff --git a/ports/zookeeper-mt/portfile.cmake b/ports/zookeeper-mt/portfile.cmake new file mode 100644 index 00000000000000..9c4bb9e3074be4 --- /dev/null +++ b/ports/zookeeper-mt/portfile.cmake @@ -0,0 +1,26 @@ +include(vcpkg_common_functions) + +vcpkg_download_distfile(ARCHIVE + URLS "http://archive.apache.org/dist/zookeeper/zookeeper-3.5.4-beta/zookeeper-3.5.4-beta.tar.gz" + FILENAME "zookeeper-3.5.4-beta.tar.gz" + SHA512 3b45ea03f1f710310633141e5190cd9c7d734d0075bde996c82fe1e4e40a86a2aa48c41412ac7d7fd71c68b2f4c2497482d321b495b7283a57c9a2f0fba9a62e +) + +vcpkg_extract_source_archive_ex( + OUT_SOURCE_PATH SOURCE_PATH + ARCHIVE ${ARCHIVE} + PATCHES "cmake_build.patch" +) + +set(SOURCE_PATH ${SOURCE_PATH}/src/c) + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA +) + +vcpkg_install_cmake() + +file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/zookeeper-mt RENAME copyright) + +vcpkg_copy_pdbs() From ceae03360ec2d595fb757cfecdaf3161dac64345 Mon Sep 17 00:00:00 2001 From: Samuel Marks <807580+SamuelMarks@users.noreply.github.com> Date: Sun, 23 Jun 2019 17:42:09 +1000 Subject: [PATCH 2/8] [zookeeper-mt] Upgrade from 3.5.4-beta to 3.5.5 --- ports/zookeeper-mt/CONTROL | 2 +- ports/zookeeper-mt/portfile.cmake | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/ports/zookeeper-mt/CONTROL b/ports/zookeeper-mt/CONTROL index 4e5bab52f4b008..9786c1e3b3416c 100644 --- a/ports/zookeeper-mt/CONTROL +++ b/ports/zookeeper-mt/CONTROL @@ -1,3 +1,3 @@ Source: zookeeper-mt -Version: 3.5.4 +Version: 3.5.5 Description: ZooKeeper C buindings diff --git a/ports/zookeeper-mt/portfile.cmake b/ports/zookeeper-mt/portfile.cmake index 9c4bb9e3074be4..ff33ee1c3db0c2 100644 --- a/ports/zookeeper-mt/portfile.cmake +++ b/ports/zookeeper-mt/portfile.cmake @@ -1,9 +1,9 @@ include(vcpkg_common_functions) vcpkg_download_distfile(ARCHIVE - URLS "http://archive.apache.org/dist/zookeeper/zookeeper-3.5.4-beta/zookeeper-3.5.4-beta.tar.gz" - FILENAME "zookeeper-3.5.4-beta.tar.gz" - SHA512 3b45ea03f1f710310633141e5190cd9c7d734d0075bde996c82fe1e4e40a86a2aa48c41412ac7d7fd71c68b2f4c2497482d321b495b7283a57c9a2f0fba9a62e + URLS "https://archive.apache.org/dist/zookeeper/zookeeper-3.5.5/apache-zookeeper-3.5.5.tar.gz" + FILENAME "zookeeper-3.5.5.tar.gz" + SHA512 4e22df899a83ca3cc15f6d94daadb1a8631fb4108e67b4f56d1f4fcf95f10f89c8ff1fb8a7c84799a3856d8803a8db1e1f2f3fe1b7dc0d6cedf485ef90fd212d ) vcpkg_extract_source_archive_ex( From 64409f74fa9d5ef07d85b80c909245a872427e6f Mon Sep 17 00:00:00 2001 From: Raed Romanov Date: Mon, 24 Jun 2019 16:19:22 +0300 Subject: [PATCH 3/8] [zookeeper-mt] Fix upgrade --- ports/zookeeper-mt/cmake_build.patch | 10 +++++----- ports/zookeeper-mt/portfile.cmake | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/ports/zookeeper-mt/cmake_build.patch b/ports/zookeeper-mt/cmake_build.patch index b740612102f5cc..9ca208c95466b9 100644 --- a/ports/zookeeper-mt/cmake_build.patch +++ b/ports/zookeeper-mt/cmake_build.patch @@ -1,7 +1,7 @@ -diff --git a/src/c/CMakeLists.txt b/src/c/CMakeLists.txt -index 00d639e..28ecac5 100644 ---- a/src/c/CMakeLists.txt -+++ b/src/c/CMakeLists.txt +diff --git a/zookeeper-client/zookeeper-client-c/CMakeLists.txt b/zookeeper-client/zookeeper-client-c/CMakeLists.txt +index 24a5a1b..05b641a 100644 +--- a/zookeeper-client/zookeeper-client-c/CMakeLists.txt ++++ b/zookeeper-client/zookeeper-client-c/CMakeLists.txt @@ -153,7 +153,11 @@ configure_file(cmake_config.h.in ${CMAKE_CURRENT_BINARY_DIR}/include/config.h) # hashtable library set(hashtable_sources src/hashtable/hashtable_itr.c src/hashtable/hashtable.c) @@ -90,6 +90,6 @@ index 00d639e..28ecac5 100644 - add_test(NAME zktest_runner COMMAND zktest) - set_property(TEST zktest_runner PROPERTY ENVIRONMENT - "ZKROOT=${CMAKE_CURRENT_SOURCE_DIR}/../.." -- "CLASSPATH=$CLASSPATH:$CLOVER_HOME/lib/clover.jar") +- "CLASSPATH=$CLASSPATH:$CLOVER_HOME/lib/clover*.jar") + install(EXPORT zookeeper DESTINATION share/zookeeper_mt/ FILE zookeeper_mtConfig.cmake) endif() diff --git a/ports/zookeeper-mt/portfile.cmake b/ports/zookeeper-mt/portfile.cmake index ff33ee1c3db0c2..5d0ebc899e67fb 100644 --- a/ports/zookeeper-mt/portfile.cmake +++ b/ports/zookeeper-mt/portfile.cmake @@ -12,7 +12,7 @@ vcpkg_extract_source_archive_ex( PATCHES "cmake_build.patch" ) -set(SOURCE_PATH ${SOURCE_PATH}/src/c) +set(SOURCE_PATH ${SOURCE_PATH}/zookeeper-client/zookeeper-client-c) vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} From 3aeb068ec7ff3f6f572b32cf10aea621ec0d5ef1 Mon Sep 17 00:00:00 2001 From: Daniel <51385773+dan-shaw@users.noreply.github.com> Date: Wed, 3 Jul 2019 11:02:01 -0700 Subject: [PATCH 4/8] disable warnings and add static library check --- ports/zookeeper-mt/crt-warning.patch | 20 ++++++++++++++++++++ ports/zookeeper-mt/portfile.cmake | 6 +++++- 2 files changed, 25 insertions(+), 1 deletion(-) create mode 100644 ports/zookeeper-mt/crt-warning.patch diff --git a/ports/zookeeper-mt/crt-warning.patch b/ports/zookeeper-mt/crt-warning.patch new file mode 100644 index 00000000000000..477002d058d5f3 --- /dev/null +++ b/ports/zookeeper-mt/crt-warning.patch @@ -0,0 +1,20 @@ +diff --git a/zookeeper-client/zookeeper-client-c/CMakeLists.txt b/zookeeper-client/zookeeper-client-c/CMakeLists.txt +index 05b641a..c426863 100644 +--- a/zookeeper-client/zookeeper-client-c/CMakeLists.txt ++++ b/zookeeper-client/zookeeper-client-c/CMakeLists.txt +@@ -180,6 +180,7 @@ if(WIN32) + endif() + + add_library(zookeeper_mt STATIC ${zookeeper_sources}) ++target_compile_definitions(zookeeper_mt PRIVATE _CRT_SECURE_NO_WARNINGS _WINSOCK_DEPRECATED_NO_WARNINGS) + target_include_directories(zookeeper_mt + INTERFACE + "${CMAKE_INSTALL_PREFIX}/include" +@@ -202,6 +203,7 @@ endif() + # cli executable + add_executable(cli src/cli.c) + target_link_libraries(cli zookeeper_mt) ++target_compile_definitions(cli PRIVATE _CRT_SECURE_NO_WARNINGS) + + # load_gen executable + if(WANT_SYNCAPI AND NOT WIN32) diff --git a/ports/zookeeper-mt/portfile.cmake b/ports/zookeeper-mt/portfile.cmake index 5d0ebc899e67fb..eafa7e3aab2787 100644 --- a/ports/zookeeper-mt/portfile.cmake +++ b/ports/zookeeper-mt/portfile.cmake @@ -1,5 +1,7 @@ include(vcpkg_common_functions) +vcpkg_check_linkage(ONLY_STATIC_LIBRARY) + vcpkg_download_distfile(ARCHIVE URLS "https://archive.apache.org/dist/zookeeper/zookeeper-3.5.5/apache-zookeeper-3.5.5.tar.gz" FILENAME "zookeeper-3.5.5.tar.gz" @@ -9,7 +11,9 @@ vcpkg_download_distfile(ARCHIVE vcpkg_extract_source_archive_ex( OUT_SOURCE_PATH SOURCE_PATH ARCHIVE ${ARCHIVE} - PATCHES "cmake_build.patch" + PATCHES + "cmake_build.patch" + "crt-warning.patch" ) set(SOURCE_PATH ${SOURCE_PATH}/zookeeper-client/zookeeper-client-c) From 0f21c669520d354c6c813d8accc0316968a33596 Mon Sep 17 00:00:00 2001 From: Daniel <51385773+dan-shaw@users.noreply.github.com> Date: Fri, 5 Jul 2019 14:11:50 -0700 Subject: [PATCH 5/8] edit cmake file --- ports/zookeeper-mt/CONTROL | 3 - ports/zookeeper-mt/cmake_build.patch | 95 ------------------- ports/zookeeper-mt/crt-warning.patch | 20 ---- ports/zookeeper/CONTROL | 3 + ports/zookeeper/cmake.patch | 23 +++++ .../portfile.cmake | 10 +- 6 files changed, 33 insertions(+), 121 deletions(-) delete mode 100644 ports/zookeeper-mt/CONTROL delete mode 100644 ports/zookeeper-mt/cmake_build.patch delete mode 100644 ports/zookeeper-mt/crt-warning.patch create mode 100644 ports/zookeeper/CONTROL create mode 100644 ports/zookeeper/cmake.patch rename ports/{zookeeper-mt => zookeeper}/portfile.cmake (79%) diff --git a/ports/zookeeper-mt/CONTROL b/ports/zookeeper-mt/CONTROL deleted file mode 100644 index 9786c1e3b3416c..00000000000000 --- a/ports/zookeeper-mt/CONTROL +++ /dev/null @@ -1,3 +0,0 @@ -Source: zookeeper-mt -Version: 3.5.5 -Description: ZooKeeper C buindings diff --git a/ports/zookeeper-mt/cmake_build.patch b/ports/zookeeper-mt/cmake_build.patch deleted file mode 100644 index 9ca208c95466b9..00000000000000 --- a/ports/zookeeper-mt/cmake_build.patch +++ /dev/null @@ -1,95 +0,0 @@ -diff --git a/zookeeper-client/zookeeper-client-c/CMakeLists.txt b/zookeeper-client/zookeeper-client-c/CMakeLists.txt -index 24a5a1b..05b641a 100644 ---- a/zookeeper-client/zookeeper-client-c/CMakeLists.txt -+++ b/zookeeper-client/zookeeper-client-c/CMakeLists.txt -@@ -153,7 +153,11 @@ configure_file(cmake_config.h.in ${CMAKE_CURRENT_BINARY_DIR}/include/config.h) - # hashtable library - set(hashtable_sources src/hashtable/hashtable_itr.c src/hashtable/hashtable.c) - add_library(hashtable STATIC ${hashtable_sources}) --target_include_directories(hashtable PUBLIC include) -+target_include_directories(hashtable -+ PUBLIC -+ $ -+ $ -+ PRIVATE include) - target_link_libraries(hashtable PUBLIC $<$,$>:m>) - - # zookeeper library -@@ -175,26 +179,34 @@ if(WIN32) - list(APPEND zookeeper_sources src/winport.c) - endif() - --add_library(zookeeper STATIC ${zookeeper_sources}) --target_include_directories(zookeeper PUBLIC include ${CMAKE_CURRENT_BINARY_DIR}/include generated) --target_link_libraries(zookeeper PUBLIC -+add_library(zookeeper_mt STATIC ${zookeeper_sources}) -+target_include_directories(zookeeper_mt -+ INTERFACE -+ "${CMAKE_INSTALL_PREFIX}/include" -+ PUBLIC -+ $ -+ $ -+ $ -+ $ -+ PRIVATE include ${CMAKE_CURRENT_BINARY_DIR}/include generated) -+target_link_libraries(zookeeper_mt PUBLIC - hashtable - $<$:rt> # clock_gettime - $<$:ws2_32>) # Winsock 2.0 - - if(WANT_SYNCAPI AND NOT WIN32) - find_package(Threads REQUIRED) -- target_link_libraries(zookeeper PUBLIC Threads::Threads) -+ target_link_libraries(zookeeper_mt PUBLIC Threads::Threads) - endif() - - # cli executable - add_executable(cli src/cli.c) --target_link_libraries(cli zookeeper) -+target_link_libraries(cli zookeeper_mt) - - # load_gen executable - if(WANT_SYNCAPI AND NOT WIN32) - add_executable(load_gen src/load_gen.c) -- target_link_libraries(load_gen zookeeper) -+ target_link_libraries(load_gen zookeeper_mt) - endif() - - # tests -@@ -222,28 +234,14 @@ if(WANT_SYNCAPI) - list(APPEND test_sources tests/PthreadMocks.cc) - endif() - --if(WANT_CPPUNIT) -- add_executable(zktest ${test_sources}) -- target_include_directories(zktest PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}) -- -- target_compile_definitions(zktest -- PRIVATE -DZKSERVER_CMD="${CMAKE_CURRENT_SOURCE_DIR}/tests/zkServer.sh") -- # TODO: Use `find_library()` for `cppunit`. -- target_link_libraries(zktest zookeeper cppunit dl) -- -- # This reads the link flags from the file `tests/wrappers.opt` into -- # the variable `symbol_wrappers` for use in `target_link_libraries`. -- # It is a holdover from the original build system. -- file(STRINGS tests/wrappers.opt symbol_wrappers) -- if(WANT_SYNCAPI) -- file(STRINGS tests/wrappers-mt.opt symbol_wrappers_mt) -- endif() -+include(GNUInstallDirs) -+ -+install(TARGETS zookeeper_mt hashtable EXPORT zookeeper DESTINATION lib/) - -- target_link_libraries(zktest ${symbol_wrappers} ${symbol_wrappers_mt}) -+if (${CMAKE_BUILD_TYPE} STREQUAL "Release") -+ install(DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/include/" DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/zookeeper") -+ install(DIRECTORY "generated/" DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/zookeeper") -+ install(DIRECTORY "include/" DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/zookeeper") - -- enable_testing() -- add_test(NAME zktest_runner COMMAND zktest) -- set_property(TEST zktest_runner PROPERTY ENVIRONMENT -- "ZKROOT=${CMAKE_CURRENT_SOURCE_DIR}/../.." -- "CLASSPATH=$CLASSPATH:$CLOVER_HOME/lib/clover*.jar") -+ install(EXPORT zookeeper DESTINATION share/zookeeper_mt/ FILE zookeeper_mtConfig.cmake) - endif() diff --git a/ports/zookeeper-mt/crt-warning.patch b/ports/zookeeper-mt/crt-warning.patch deleted file mode 100644 index 477002d058d5f3..00000000000000 --- a/ports/zookeeper-mt/crt-warning.patch +++ /dev/null @@ -1,20 +0,0 @@ -diff --git a/zookeeper-client/zookeeper-client-c/CMakeLists.txt b/zookeeper-client/zookeeper-client-c/CMakeLists.txt -index 05b641a..c426863 100644 ---- a/zookeeper-client/zookeeper-client-c/CMakeLists.txt -+++ b/zookeeper-client/zookeeper-client-c/CMakeLists.txt -@@ -180,6 +180,7 @@ if(WIN32) - endif() - - add_library(zookeeper_mt STATIC ${zookeeper_sources}) -+target_compile_definitions(zookeeper_mt PRIVATE _CRT_SECURE_NO_WARNINGS _WINSOCK_DEPRECATED_NO_WARNINGS) - target_include_directories(zookeeper_mt - INTERFACE - "${CMAKE_INSTALL_PREFIX}/include" -@@ -202,6 +203,7 @@ endif() - # cli executable - add_executable(cli src/cli.c) - target_link_libraries(cli zookeeper_mt) -+target_compile_definitions(cli PRIVATE _CRT_SECURE_NO_WARNINGS) - - # load_gen executable - if(WANT_SYNCAPI AND NOT WIN32) diff --git a/ports/zookeeper/CONTROL b/ports/zookeeper/CONTROL new file mode 100644 index 00000000000000..3ae8f787f776e6 --- /dev/null +++ b/ports/zookeeper/CONTROL @@ -0,0 +1,3 @@ +Source: zookeeper +Version: 3.5.5 +Description: ZooKeeper C bindings diff --git a/ports/zookeeper/cmake.patch b/ports/zookeeper/cmake.patch new file mode 100644 index 00000000000000..8f91d939d68767 --- /dev/null +++ b/ports/zookeeper/cmake.patch @@ -0,0 +1,23 @@ +diff --git a/zookeeper-client/zookeeper-client-c/CMakeLists.txt b/zookeeper-client/zookeeper-client-c/CMakeLists.txt +index 24a5a1b..09d7b83 100644 +--- a/zookeeper-client/zookeeper-client-c/CMakeLists.txt ++++ b/zookeeper-client/zookeeper-client-c/CMakeLists.txt +@@ -247,3 +247,17 @@ if(WANT_CPPUNIT) + "ZKROOT=${CMAKE_CURRENT_SOURCE_DIR}/../.." + "CLASSPATH=$CLASSPATH:$CLOVER_HOME/lib/clover*.jar") + endif() ++ ++target_compile_definitions(zookeeper PRIVATE _CRT_SECURE_NO_WARNINGS _WINSOCK_DEPRECATED_NO_WARNINGS) ++target_compile_definitions(cli PRIVATE _CRT_SECURE_NO_WARNINGS) ++ ++file(GLOB ZOOKEEPER_HEADERS include/*.h) ++ ++install(FILES ${ZOOKEEPER_HEADERS} generated/zookeeper.jute.h DESTINATION include/zookeeper) ++ ++install(TARGETS zookeeper ++ EXPORT zookeeperConfig ++ RUNTIME DESTINATION bin ++ ARCHIVE DESTINATION lib ++ LIBRARY DESTINATION lib ++) +\ No newline at end of file diff --git a/ports/zookeeper-mt/portfile.cmake b/ports/zookeeper/portfile.cmake similarity index 79% rename from ports/zookeeper-mt/portfile.cmake rename to ports/zookeeper/portfile.cmake index eafa7e3aab2787..18361fad59cabb 100644 --- a/ports/zookeeper-mt/portfile.cmake +++ b/ports/zookeeper/portfile.cmake @@ -12,8 +12,7 @@ vcpkg_extract_source_archive_ex( OUT_SOURCE_PATH SOURCE_PATH ARCHIVE ${ARCHIVE} PATCHES - "cmake_build.patch" - "crt-warning.patch" + cmake.patch ) set(SOURCE_PATH ${SOURCE_PATH}/zookeeper-client/zookeeper-client-c) @@ -21,10 +20,15 @@ set(SOURCE_PATH ${SOURCE_PATH}/zookeeper-client/zookeeper-client-c) vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} PREFER_NINJA + OPTIONS + -DWANT_CPPUNIT=OFF + -DWANT_SYNCAPI=ON ) vcpkg_install_cmake() -file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/zookeeper-mt RENAME copyright) +file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/zookeeper RENAME copyright) + +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) vcpkg_copy_pdbs() From 2c53b31de5927e619008b87185db6a039230448f Mon Sep 17 00:00:00 2001 From: Daniel <51385773+dan-shaw@users.noreply.github.com> Date: Fri, 5 Jul 2019 15:22:02 -0700 Subject: [PATCH 6/8] add async feature --- ports/zookeeper/CONTROL | 3 +++ ports/zookeeper/cmake.patch | 2 +- ports/zookeeper/portfile.cmake | 8 +++++++- ports/zookeeper/win32.patch | 29 +++++++++++++++++++++++++++++ 4 files changed, 40 insertions(+), 2 deletions(-) create mode 100644 ports/zookeeper/win32.patch diff --git a/ports/zookeeper/CONTROL b/ports/zookeeper/CONTROL index 3ae8f787f776e6..07478551811b9c 100644 --- a/ports/zookeeper/CONTROL +++ b/ports/zookeeper/CONTROL @@ -1,3 +1,6 @@ Source: zookeeper Version: 3.5.5 Description: ZooKeeper C bindings + +Feature: async +Description: ZooKeeper with only the async API \ No newline at end of file diff --git a/ports/zookeeper/cmake.patch b/ports/zookeeper/cmake.patch index 8f91d939d68767..09efde34228aa8 100644 --- a/ports/zookeeper/cmake.patch +++ b/ports/zookeeper/cmake.patch @@ -7,7 +7,7 @@ index 24a5a1b..09d7b83 100644 "CLASSPATH=$CLASSPATH:$CLOVER_HOME/lib/clover*.jar") endif() + -+target_compile_definitions(zookeeper PRIVATE _CRT_SECURE_NO_WARNINGS _WINSOCK_DEPRECATED_NO_WARNINGS) ++target_compile_definitions(zookeeper PRIVATE _CRT_SECURE_NO_WARNINGS _WINSOCK_DEPRECATED_NO_WARNINGS _CRT_NONSTDC_NO_DEPRECATE) +target_compile_definitions(cli PRIVATE _CRT_SECURE_NO_WARNINGS) + +file(GLOB ZOOKEEPER_HEADERS include/*.h) diff --git a/ports/zookeeper/portfile.cmake b/ports/zookeeper/portfile.cmake index 18361fad59cabb..c3e30b9f90b7a3 100644 --- a/ports/zookeeper/portfile.cmake +++ b/ports/zookeeper/portfile.cmake @@ -13,16 +13,22 @@ vcpkg_extract_source_archive_ex( ARCHIVE ${ARCHIVE} PATCHES cmake.patch + win32.patch ) set(SOURCE_PATH ${SOURCE_PATH}/zookeeper-client/zookeeper-client-c) +set(WANT_SYNCAPI ON) +if("async" IN_LIST FEATURES) + set(WANT_SYNCAPI OFF) +endif() + vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} PREFER_NINJA OPTIONS -DWANT_CPPUNIT=OFF - -DWANT_SYNCAPI=ON + -DWANT_SYNCAPI=${WANT_SYNCAPI} ) vcpkg_install_cmake() diff --git a/ports/zookeeper/win32.patch b/ports/zookeeper/win32.patch new file mode 100644 index 00000000000000..b55f067358e615 --- /dev/null +++ b/ports/zookeeper/win32.patch @@ -0,0 +1,29 @@ +diff --git a/zookeeper-client/zookeeper-client-c/src/zk_log.c b/zookeeper-client/zookeeper-client-c/src/zk_log.c +index 436485e..1902b09 100644 +--- a/zookeeper-client/zookeeper-client-c/src/zk_log.c ++++ b/zookeeper-client/zookeeper-client-c/src/zk_log.c +@@ -108,8 +108,11 @@ static const char* time_now(char* now_str){ + gettimeofday(&tv,0); + + now = tv.tv_sec; ++#ifdef WIN32 ++ localtime_s(<, &now); ++#else + localtime_r(&now, <); +- ++#endif + // clone the format used by log4j ISO8601DateFormat + // specifically: "yyyy-MM-dd HH:mm:ss,SSS" + +diff --git a/zookeeper-client/zookeeper-client-c/src/zookeeper.c b/zookeeper-client/zookeeper-client-c/src/zookeeper.c +index 25baa9c..96ed379 100644 +--- a/zookeeper-client/zookeeper-client-c/src/zookeeper.c ++++ b/zookeeper-client/zookeeper-client-c/src/zookeeper.c +@@ -90,6 +90,7 @@ + #define EAI_ADDRFAMILY WSAEINVAL /* is this still needed? */ + #define EHOSTDOWN EPIPE + #define ESTALE ENODEV ++#define strtok_r strtok_s + #endif + + #define IF_DEBUG(x) if(logLevel==ZOO_LOG_LEVEL_DEBUG) {x;} From 2c428422d031b1ac30894c489ce1cde345060023 Mon Sep 17 00:00:00 2001 From: Daniel <51385773+dan-shaw@users.noreply.github.com> Date: Fri, 5 Jul 2019 16:41:02 -0700 Subject: [PATCH 7/8] add back some changes for export --- ports/zookeeper/cmake.patch | 33 ++++++++++++++++++++++++++++++--- ports/zookeeper/portfile.cmake | 2 ++ 2 files changed, 32 insertions(+), 3 deletions(-) diff --git a/ports/zookeeper/cmake.patch b/ports/zookeeper/cmake.patch index 09efde34228aa8..4dd8ef93b15757 100644 --- a/ports/zookeeper/cmake.patch +++ b/ports/zookeeper/cmake.patch @@ -1,12 +1,34 @@ diff --git a/zookeeper-client/zookeeper-client-c/CMakeLists.txt b/zookeeper-client/zookeeper-client-c/CMakeLists.txt -index 24a5a1b..09d7b83 100644 +index 24a5a1b..1b0ce4a 100644 --- a/zookeeper-client/zookeeper-client-c/CMakeLists.txt +++ b/zookeeper-client/zookeeper-client-c/CMakeLists.txt -@@ -247,3 +247,17 @@ if(WANT_CPPUNIT) +@@ -153,7 +153,7 @@ configure_file(cmake_config.h.in ${CMAKE_CURRENT_BINARY_DIR}/include/config.h) + # hashtable library + set(hashtable_sources src/hashtable/hashtable_itr.c src/hashtable/hashtable.c) + add_library(hashtable STATIC ${hashtable_sources}) +-target_include_directories(hashtable PUBLIC include) ++target_include_directories(hashtable PUBLIC $ $) + target_link_libraries(hashtable PUBLIC $<$,$>:m>) + + # zookeeper library +@@ -176,7 +176,10 @@ if(WIN32) + endif() + + add_library(zookeeper STATIC ${zookeeper_sources}) +-target_include_directories(zookeeper PUBLIC include ${CMAKE_CURRENT_BINARY_DIR}/include generated) ++target_include_directories(zookeeper PUBLIC ++ $ ++ $) ++ + target_link_libraries(zookeeper PUBLIC + hashtable + $<$:rt> # clock_gettime +@@ -247,3 +250,23 @@ if(WANT_CPPUNIT) "ZKROOT=${CMAKE_CURRENT_SOURCE_DIR}/../.." "CLASSPATH=$CLASSPATH:$CLOVER_HOME/lib/clover*.jar") endif() + ++ +target_compile_definitions(zookeeper PRIVATE _CRT_SECURE_NO_WARNINGS _WINSOCK_DEPRECATED_NO_WARNINGS _CRT_NONSTDC_NO_DEPRECATE) +target_compile_definitions(cli PRIVATE _CRT_SECURE_NO_WARNINGS) + @@ -14,10 +36,15 @@ index 24a5a1b..09d7b83 100644 + +install(FILES ${ZOOKEEPER_HEADERS} generated/zookeeper.jute.h DESTINATION include/zookeeper) + -+install(TARGETS zookeeper ++install(TARGETS zookeeper hashtable + EXPORT zookeeperConfig + RUNTIME DESTINATION bin + ARCHIVE DESTINATION lib + LIBRARY DESTINATION lib +) ++install(EXPORT zookeeperConfig ++ FILE zookeeperConfig.cmake ++ NAMESPACE zookeeper:: ++ DESTINATION "${CMAKE_INSTALL_PREFIX}/share/zookeeper" ++) \ No newline at end of file diff --git a/ports/zookeeper/portfile.cmake b/ports/zookeeper/portfile.cmake index c3e30b9f90b7a3..4f0ecd6b7ab6f8 100644 --- a/ports/zookeeper/portfile.cmake +++ b/ports/zookeeper/portfile.cmake @@ -37,4 +37,6 @@ file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/zo file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) +vcpkg_fixup_cmake_targets() + vcpkg_copy_pdbs() From d16dfc3c56b8f9e88b794aee96c78d5558d8f0f1 Mon Sep 17 00:00:00 2001 From: Daniel <51385773+dan-shaw@users.noreply.github.com> Date: Sat, 6 Jul 2019 14:24:23 -0700 Subject: [PATCH 8/8] add sync feature, disable parallel configure --- ports/zookeeper/CONTROL | 5 +++-- ports/zookeeper/portfile.cmake | 7 ++++--- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/ports/zookeeper/CONTROL b/ports/zookeeper/CONTROL index 07478551811b9c..d10b1683a5db16 100644 --- a/ports/zookeeper/CONTROL +++ b/ports/zookeeper/CONTROL @@ -1,6 +1,7 @@ Source: zookeeper Version: 3.5.5 Description: ZooKeeper C bindings +Default-Features: sync -Feature: async -Description: ZooKeeper with only the async API \ No newline at end of file +Feature: sync +Description: ZooKeeper with the sync API \ No newline at end of file diff --git a/ports/zookeeper/portfile.cmake b/ports/zookeeper/portfile.cmake index 4f0ecd6b7ab6f8..2e315a61fdf447 100644 --- a/ports/zookeeper/portfile.cmake +++ b/ports/zookeeper/portfile.cmake @@ -18,13 +18,14 @@ vcpkg_extract_source_archive_ex( set(SOURCE_PATH ${SOURCE_PATH}/zookeeper-client/zookeeper-client-c) -set(WANT_SYNCAPI ON) -if("async" IN_LIST FEATURES) - set(WANT_SYNCAPI OFF) +set(WANT_SYNCAPI OFF) +if("sync" IN_LIST FEATURES) + set(WANT_SYNCAPI ON) endif() vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} + DISABLE_PARALLEL_CONFIGURE PREFER_NINJA OPTIONS -DWANT_CPPUNIT=OFF