mirror of
https://github.com/microsoft/vcpkg.git
synced 2026-01-18 01:11:23 +01:00
82 lines
3.2 KiB
CMake
82 lines
3.2 KiB
CMake
vcpkg_check_linkage(ONLY_STATIC_LIBRARY)
|
|
|
|
string(REGEX REPLACE "^([0-9]+[.][0-9]+[.][0-9]+)[.]([0-9]+)\$" "\\1-\\2" VERSION "${VERSION}")
|
|
|
|
vcpkg_download_distfile(
|
|
zookeeper_src_archive
|
|
URLS "https://dlcdn.apache.org/zookeeper/stable/apache-zookeeper-${VERSION}.tar.gz"
|
|
"https://archive.apache.org/dist/zookeeper/zookeeper-${VERSION}/zookeeper-${VERSION}.tar.gz"
|
|
FILENAME "apache-zookeeper-${VERSION}.tar.gz"
|
|
SHA512 61c05f6064797994dc25c42df35d67d2c3839fd59a496924852a4d78b492b06746c8eb5445edb63cbc0107ef2b8b31babf23488f96a52b00682cd2e9b61be339
|
|
)
|
|
vcpkg_extract_source_archive(
|
|
SOURCE_PATH
|
|
ARCHIVE "${zookeeper_src_archive}"
|
|
PATCHES
|
|
cmake.patch
|
|
win32.patch
|
|
)
|
|
file(COPY "${CURRENT_PORT_DIR}/unofficial-zookeeperConfig.cmake" DESTINATION "${SOURCE_PATH}/zookeeper-client/zookeeper-client-c")
|
|
|
|
# We must run the jute generator which is made from Java sources.
|
|
# We fetch it as JAR from the latest matching binary release of zookeeper.
|
|
vcpkg_download_distfile(
|
|
zookeeper_bin_archive
|
|
URLS "https://dlcdn.apache.org/zookeeper/stable/apache-zookeeper-${VERSION}-bin.tar.gz"
|
|
"https://archive.apache.org/dist/zookeeper/zookeeper-${VERSION}/zookeeper-${VERSION}-bin.tar.gz"
|
|
FILENAME "apache-zookeeper-${VERSION}-bin.tar.gz"
|
|
SHA512 ab9bf90649df19d8fd8378f2e8d9159bc8528d8e4c166a93d9fa4a9c98e39ee9de0279cc9dc58cd6d593141c0a45576d0df9db47d143d63951598a43efdc0a30
|
|
)
|
|
vcpkg_extract_source_archive(
|
|
zookeeper_jute_path
|
|
ARCHIVE "${zookeeper_bin_archive}"
|
|
)
|
|
string(APPEND zookeeper_jute_path "/lib/zookeeper-jute-${VERSION}.jar")
|
|
|
|
block(SCOPE_FOR VARIABLES)
|
|
# Do not warn about FindJava.cmake accessing WIN32
|
|
set(Z_VCPKG_BACKCOMPAT_MESSAGE_LEVEL "TRACE")
|
|
set(WIN32 "${CMAKE_HOST_WIN32}")
|
|
find_package(Java COMPONENTS Runtime REQUIRED)
|
|
|
|
# cf. zookeeper-jute/pom.xml > "generate-C-Jute"
|
|
file(MAKE_DIRECTORY "${SOURCE_PATH}/zookeeper-client/zookeeper-client-c/generated")
|
|
vcpkg_execute_required_process(
|
|
COMMAND "${Java_JAVA_EXECUTABLE}"
|
|
-classpath "${zookeeper_jute_path}"
|
|
org.apache.jute.compiler.generated.Rcc
|
|
-l c
|
|
"${SOURCE_PATH}/zookeeper-jute/src/main/resources/zookeeper.jute"
|
|
WORKING_DIRECTORY "${SOURCE_PATH}/zookeeper-client/zookeeper-client-c/generated"
|
|
LOGNAME "generate-C-Jute"
|
|
)
|
|
endblock()
|
|
|
|
vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS
|
|
FEATURES
|
|
openssl WITH_OPENSSL
|
|
openssl VCPKG_LOCK_FIND_PACKAGE_OpenSSL
|
|
sync WANT_SYNCAPI
|
|
)
|
|
|
|
vcpkg_cmake_configure(
|
|
SOURCE_PATH "${SOURCE_PATH}/zookeeper-client/zookeeper-client-c"
|
|
OPTIONS
|
|
-DTHREADS_PREFER_PTHREAD_FLAG=ON
|
|
-DWANT_CPPUNIT=OFF
|
|
-DWITH_CYRUS_SASL=OFF
|
|
${FEATURE_OPTIONS}
|
|
MAYBE_UNUSED_VARIABLES
|
|
THREADS_PREFER_PTHREAD_FLAG
|
|
VCPKG_LOCK_FIND_PACKAGE_OpenSSL
|
|
)
|
|
|
|
vcpkg_cmake_install()
|
|
vcpkg_copy_pdbs()
|
|
vcpkg_cmake_config_fixup(PACKAGE_NAME unofficial-zookeeper)
|
|
|
|
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include")
|
|
|
|
file(COPY "${CURRENT_PORT_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}")
|
|
vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/zookeeper-client/zookeeper-client-c/LICENSE")
|