aboutsummaryrefslogtreecommitdiff
path: root/vcpkg/ports/zkpp
diff options
context:
space:
mode:
authorEthan Morgan <ethan@gweithio.com>2026-02-14 16:44:06 +0000
committerEthan Morgan <ethan@gweithio.com>2026-02-14 16:44:06 +0000
commit54409423f767d8b1cf30cb7d0efca6b4ca138823 (patch)
treed915ac7828703ce4b963efdd9728a1777ba18c1e /vcpkg/ports/zkpp
move to own git serverHEADmaster
Diffstat (limited to 'vcpkg/ports/zkpp')
-rw-r--r--vcpkg/ports/zkpp/CMakeLists.txt109
-rw-r--r--vcpkg/ports/zkpp/portfile.cmake24
-rw-r--r--vcpkg/ports/zkpp/vcpkg.json19
3 files changed, 152 insertions, 0 deletions
diff --git a/vcpkg/ports/zkpp/CMakeLists.txt b/vcpkg/ports/zkpp/CMakeLists.txt
new file mode 100644
index 0000000..4cc6c78
--- /dev/null
+++ b/vcpkg/ports/zkpp/CMakeLists.txt
@@ -0,0 +1,109 @@
+#
+# This file is based on https://github.com/tgockel/zookeeper-cpp/blob/a8d5f905e01893256299d5532b1836f64c89b5b9/CMakeLists.txt
+# Which is licensed under Apache License 2.0
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+
+cmake_minimum_required(VERSION 3.5)
+
+file(READ src/zk/config.hpp CONFIG_HPP_STR)
+string(REGEX REPLACE ".*# *define +ZKPP_VERSION_MAJOR +([0-9]+).*" "\\1" ZKPP_VERSION_MAJOR "${CONFIG_HPP_STR}")
+string(REGEX REPLACE ".*# *define +ZKPP_VERSION_MINOR +([0-9]+).*" "\\1" ZKPP_VERSION_MINOR "${CONFIG_HPP_STR}")
+string(REGEX REPLACE ".*# *define +ZKPP_VERSION_PATCH +([0-9]+).*" "\\1" ZKPP_VERSION_PATCH "${CONFIG_HPP_STR}")
+
+set(ZKPP_VERSION "${ZKPP_VERSION_MAJOR}.${ZKPP_VERSION_MINOR}.${ZKPP_VERSION_PATCH}")
+project(zookeeper-cpp
+ LANGUAGES CXX
+ VERSION "${ZKPP_VERSION}"
+ )
+set(PROJECT_SO_VERSION "${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}")
+message(STATUS "Software Version: ${ZKPP_VERSION}")
+
+################################################################################
+# CMake #
+################################################################################
+
+set(CMAKE_REQUIRED_QUIET YES) # tell check_include_file_cxx to keep quiet
+
+list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake/modules/")
+
+include(BuildFunctions)
+include(CheckIncludeFileCXX)
+include(ConfigurationSetting)
+include(ListSplit)
+include(GNUInstallDirs)
+
+################################################################################
+# Build Configuration #
+################################################################################
+
+find_package(Threads REQUIRED)
+
+if (NOT CMAKE_BUILD_TYPE)
+ set(CMAKE_BUILD_TYPE "Debug")
+ message(STATUS "No build type selected, default to ${CMAKE_BUILD_TYPE}")
+endif()
+
+set(VALID_BUILD_TYPES Debug Release)
+if(NOT ${CMAKE_BUILD_TYPE} IN_LIST VALID_BUILD_TYPES)
+ message(FATAL_ERROR "Invalid CMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}\nValid build types are: ${VALID_BUILD_TYPES}")
+endif()
+message(STATUS "Configuration: ${CMAKE_BUILD_TYPE}")
+
+message(STATUS "Features:")
+build_option(NAME CODE_COVERAGE
+ DOC "Enable code coverage (turns on the test-coverage target)"
+ DEFAULT OFF
+ CONFIGS_ON Debug
+ )
+
+configuration_setting(NAME BUFFER
+ DOC "Type to use for zk::buffer"
+ DEFAULT STD_VECTOR
+ OPTIONS
+ STD_VECTOR
+ CUSTOM
+ )
+
+configuration_setting(NAME FUTURE
+ DOC "Type to use for zk::future<T> and zk::promise<T>"
+ DEFAULT STD
+ OPTIONS
+ STD
+ STD_EXPERIMENTAL
+ CUSTOM
+ )
+
+set(CXX_STANDARD c++17
+ CACHE STRING "The language standard to target for C++."
+ )
+
+set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} --std=${CXX_STANDARD}")
+set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -DZKPP_DEBUG=1")
+set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -O3")
+
+################################################################################
+# External Libraries #
+################################################################################
+
+find_package(unofficial-zookeeper REQUIRED)
+
+
+build_module(NAME zkpp
+ PATH src/zk
+ NO_RECURSE
+ )
+
+target_include_directories(zkpp PUBLIC $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}> $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/src>)
+target_link_libraries(zkpp PRIVATE unofficial::zookeeper::zookeeper)
+
+install(TARGETS zkpp
+ EXPORT zkpp
+ RUNTIME DESTINATION bin
+ ARCHIVE DESTINATION lib
+ LIBRARY DESTINATION lib
+)
+
+install(FILES ${zkpp_LIBRARY_HEADERS} DESTINATION include/zk/)
+
+install(EXPORT zkpp DESTINATION share/zkpp/ FILE zkppConfig.cmake)
diff --git a/vcpkg/ports/zkpp/portfile.cmake b/vcpkg/ports/zkpp/portfile.cmake
new file mode 100644
index 0000000..581ecea
--- /dev/null
+++ b/vcpkg/ports/zkpp/portfile.cmake
@@ -0,0 +1,24 @@
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO tgockel/zookeeper-cpp
+ REF v0.2.3
+ SHA512 086f31d4ca53f5a585fd8640caf9f2f21c90cf46d9cfe6c0e8e5b8c620e73265bb8aebec62ea4328f3f098a9b3000280582569966c0d3401627ab8c3edc31ca8
+ HEAD_REF master
+)
+
+file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}")
+file(GLOB_RECURSE test_files LIST_DIRECTORIES false "${SOURCE_PATH}/src/zk/*_tests.cpp")
+if (NOT "${test_files}" STREQUAL "")
+ file(REMOVE ${test_files})
+endif()
+
+vcpkg_cmake_configure(
+ SOURCE_PATH "${SOURCE_PATH}"
+)
+vcpkg_cmake_install()
+vcpkg_copy_pdbs()
+vcpkg_cmake_config_fixup()
+
+file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include")
+
+vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING")
diff --git a/vcpkg/ports/zkpp/vcpkg.json b/vcpkg/ports/zkpp/vcpkg.json
new file mode 100644
index 0000000..458242b
--- /dev/null
+++ b/vcpkg/ports/zkpp/vcpkg.json
@@ -0,0 +1,19 @@
+{
+ "name": "zkpp",
+ "version": "0.2.3",
+ "port-version": 5,
+ "description": "A ZooKeeper client for C++.",
+ "homepage": "https://github.com/tgockel/zookeeper-cpp",
+ "supports": "!windows",
+ "dependencies": [
+ {
+ "name": "vcpkg-cmake",
+ "host": true
+ },
+ {
+ "name": "vcpkg-cmake-config",
+ "host": true
+ },
+ "zookeeper"
+ ]
+}