Skip to content

[hazelcast-cpp-client] Add new port #48090

Merged
BillyONeal merged 5 commits intomicrosoft:masterfrom
ihsandemir:latest_hazelcast_cpp_client
Nov 17, 2025
Merged

[hazelcast-cpp-client] Add new port #48090
BillyONeal merged 5 commits intomicrosoft:masterfrom
ihsandemir:latest_hazelcast_cpp_client

Conversation

@ihsandemir
Copy link
Contributor

Added the hazelcast-cpp-client port.

fixes hazelcast/hazelcast-cpp-client#1247 (comment)
fixes #44360

  • Changes comply with the maintainer guide.
  • The name of the port matches an existing name for this component on https://repology.org/ if possible, and/or is strongly associated with that component on search engines.
  • Optional dependencies are resolved in exactly one way. For example, if the component is built with CMake, all find_package calls are REQUIRED, are satisfied by vcpkg.json's declared dependencies, or disabled with CMAKE_DISABLE_FIND_PACKAGE_Xxx.
  • The versioning scheme in vcpkg.json matches what upstream says.
  • The license declaration in vcpkg.json matches what upstream says.
  • The installed as the "copyright" file matches what upstream says.
  • The source code of the component installed comes from an authoritative source.
  • The generated "usage text" is accurate. See adding-usage for context.
  • The version database is fixed by rerunning ./vcpkg x-add-version --all and committing the result.
  • Only one version is in the new port's versions file.
  • Only one version is added to each modified port's versions file.

@BillyONeal
Copy link
Member

Note that we used to have this, but it was removed in #42678 over the boost compatibility issues. We'll need the build failures identified by PR build to be fixed before we can merge this. When that's fixed please mark "Ready for review" so that we know to look again.

@BillyONeal BillyONeal marked this pull request as draft November 3, 2025 19:05
@ihsandemir ihsandemir marked this pull request as ready for review November 4, 2025 11:27
@ihsandemir
Copy link
Contributor Author

Note that we used to have this, but it was removed in #42678 over the boost compatibility issues. We'll need the build failures identified by PR build to be fixed before we can merge this. When that's fixed please mark "Ready for review" so that we know to look again.

@BillyONeal Yes, we fixed it to work with new Boost versions. See our builds here as a proof. e.g. this one uses Boost 1.89.0. We test for old and new boost versions as well.

@BillyONeal
Copy link
Member

Perhaps I should clarify: I just guessed that it may be Boost related because that's what happened before. But the build failures need to be fixed before we can merge this even if they aren't related to Boost.

@BillyONeal BillyONeal marked this pull request as draft November 4, 2025 22:06
@ihsandemir
Copy link
Contributor Author

Note that we used to have this, but it was removed in #42678 over the boost compatibility issues. We'll need the build failures identified by PR build to be fixed before we can merge this. When that's fixed please mark "Ready for review" so that we know to look again.

@BillyONeal Yes, we fixed it to work with new Boost versions. See our builds here as a proof. e.g. this one uses Boost 1.89.0. We test for old and new boost versions as well.

@BillyONeal Hello, I could not generate the failure on my local. I run these and they work on my local:

➜  vcpkg git:(latest_hazelcast_cpp_client) ./vcpkg install "hazelcast-cpp-client[core]:arm64-osx"
Computing installation plan...
The following packages will be built and installed:
    hazelcast-cpp-client:arm64-osx@5.5.0
Detecting compiler hash for triplet arm64-osx...
Compiler found: /Library/Developer/CommandLineTools/usr/bin/c++
Restored 0 package(s) from /Users/ihsan/.cache/vcpkg/archives in 8.29 us. Use --debug to see more details.
Installing 1/1 hazelcast-cpp-client:arm64-osx@5.5.0...
Building hazelcast-cpp-client:arm64-osx@5.5.0...
-- Using cached hazelcast-hazelcast-cpp-client-d06c1893dc89d1d8ed19f7534c4cedea7a924fb4.tar.gz
-- Cleaning sources at /Users/ihsan/Desktop/work/src/vcpkg/buildtrees/hazelcast-cpp-client/src/ea7a924fb4-ef8d1dacae.clean. Use --editable to skip cleaning for the packages you specify.
-- Extracting source /Users/ihsan/Desktop/work/src/vcpkg/downloads/hazelcast-hazelcast-cpp-client-d06c1893dc89d1d8ed19f7534c4cedea7a924fb4.tar.gz
-- Using source at /Users/ihsan/Desktop/work/src/vcpkg/buildtrees/hazelcast-cpp-client/src/ea7a924fb4-ef8d1dacae.clean
-- Configuring arm64-osx
-- Building arm64-osx-dbg
-- Building arm64-osx-rel
-- Installing: /Users/ihsan/Desktop/work/src/vcpkg/packages/hazelcast-cpp-client_arm64-osx/share/hazelcast-cpp-client/copyright
-- Performing post-build validation
Starting submission of hazelcast-cpp-client:arm64-osx@5.5.0 to 1 binary cache(s) in the background
Elapsed time to handle hazelcast-cpp-client:arm64-osx: 1 min
hazelcast-cpp-client:arm64-osx package ABI: 5a95bb430ebb5afccdf1a23c28af3d2ae7eccc4cd97d4482bf323555de9fc2ba
Total install time: 1 min
Installed contents are licensed to you by owners. Microsoft is not responsible for, nor does it grant any licenses to, third-party packages.
Packages installed in this vcpkg installation declare the following licenses:
Apache-2.0
hazelcast-cpp-client provides CMake targets:

  # this is heuristically generated, and may not be correct
  find_package(hazelcast-cpp-client CONFIG REQUIRED)
  target_link_libraries(main PRIVATE hazelcast-cpp-client::hazelcast-cpp-client)

Waiting for 1 remaining binary cache submissions...
Completed submission of hazelcast-cpp-client:arm64-osx@5.5.0 to 1 binary cache(s) in 4.6 s (1/1)
All requested installations completed successfully in: 1 min
➜  vcpkg git:(latest_hazelcast_cpp_client) ./vcpkg install "hazelcast-cpp-client[core,example]:arm64-osx"
Computing installation plan...
The following packages will be rebuilt:
    hazelcast-cpp-client[core,example]:arm64-osx@5.5.0
warning: If you are sure you want to rebuild the above packages, run the command with the --recurse option.
➜  vcpkg git:(latest_hazelcast_cpp_client) ./vcpkg install "hazelcast-cpp-client[core,example]:arm64-osx" --recurse
Computing installation plan...
The following packages will be rebuilt:
    hazelcast-cpp-client[core,example]:arm64-osx@5.5.0
Detecting compiler hash for triplet arm64-osx...
Compiler found: /Library/Developer/CommandLineTools/usr/bin/c++
Restored 0 package(s) from /Users/ihsan/.cache/vcpkg/archives in 17.8 us. Use --debug to see more details.
Removing 1/2 hazelcast-cpp-client:arm64-osx
Elapsed time to handle hazelcast-cpp-client:arm64-osx: 18.4 ms
Installing 2/2 hazelcast-cpp-client[core,example]:arm64-osx@5.5.0...
Building hazelcast-cpp-client[core,example]:arm64-osx@5.5.0...
-- Using cached hazelcast-hazelcast-cpp-client-d06c1893dc89d1d8ed19f7534c4cedea7a924fb4.tar.gz
-- Cleaning sources at /Users/ihsan/Desktop/work/src/vcpkg/buildtrees/hazelcast-cpp-client/src/ea7a924fb4-ef8d1dacae.clean. Use --editable to skip cleaning for the packages you specify.
-- Extracting source /Users/ihsan/Desktop/work/src/vcpkg/downloads/hazelcast-hazelcast-cpp-client-d06c1893dc89d1d8ed19f7534c4cedea7a924fb4.tar.gz
-- Using source at /Users/ihsan/Desktop/work/src/vcpkg/buildtrees/hazelcast-cpp-client/src/ea7a924fb4-ef8d1dacae.clean
-- Configuring arm64-osx
-- Building arm64-osx-dbg
-- Building arm64-osx-rel
-- Installing: /Users/ihsan/Desktop/work/src/vcpkg/packages/hazelcast-cpp-client_arm64-osx/share/hazelcast-cpp-client/copyright
-- Performing post-build validation
Starting submission of hazelcast-cpp-client[core,example]:arm64-osx@5.5.0 to 1 binary cache(s) in the background
Elapsed time to handle hazelcast-cpp-client:arm64-osx: 4.8 min
hazelcast-cpp-client:arm64-osx package ABI: ff76813e9e5d6d1b3eb9a4ad98ead97c564a8aead48874ada9ac67f95fce296f
Total install time: 4.8 min
Installed contents are licensed to you by owners. Microsoft is not responsible for, nor does it grant any licenses to, third-party packages.
Packages installed in this vcpkg installation declare the following licenses:
Apache-2.0
hazelcast-cpp-client provides CMake targets:

  # this is heuristically generated, and may not be correct
  find_package(hazelcast-cpp-client CONFIG REQUIRED)
  target_link_libraries(main PRIVATE hazelcast-cpp-client::hazelcast-cpp-client)

Waiting for 1 remaining binary cache submissions...
Completed submission of hazelcast-cpp-client[core,example]:arm64-osx@5.5.0 to 1 binary cache(s) in 4.2 s (1/1)
All requested installations completed successfully in: 4.8 min

Can you help me how I can generate the build failure on my local?

@BillyONeal
Copy link
Member

Perhaps somehow you have a git 'ambiently available' and that's not true in our lab?

The thing that looks most "error-ish" is this configure_file failing:

https://github.com/hazelcast/hazelcast-cpp-client/blob/d06c1893dc89d1d8ed19f7534c4cedea7a924fb4/CMakeLists.txt#L29

Perhaps that needs to be CMAKE_CURRENT_LIST_DIR rather than CMAKE_SOURCE_DIR? Or possibly there's a race between release and debug both trying to write to that file at the same time; ideally it shouldn't write back into sources.

[1/2] "/opt/homebrew/bin/cmake" -E chdir ".." "/opt/homebrew/bin/cmake" "/Users/vcpkg/Data/b/hazelcast-cpp-client/src/ea7a924fb4-ef8d1dacae.clean" "-G" "Ninja" "-DCMAKE_BUILD_TYPE=Release" "-DCMAKE_INSTALL_PREFIX=/Users/vcpkg/Data/p/hazelcast-cpp-client_arm64-osx" "-DFETCHCONTENT_FULLY_DISCONNECTED=ON" "-DWITH_OPENSSL=OFF" "-DBUILD_EXAMPLES=OFF" "-DCMAKE_MAKE_PROGRAM=/opt/homebrew/bin/ninja" "-DCMAKE_SYSTEM_NAME=Darwin" "-DBUILD_SHARED_LIBS=OFF" "-DVCPKG_CHAINLOAD_TOOLCHAIN_FILE=/Users/vcpkg/Data/work/1/s/scripts/toolchains/osx.cmake" "-DVCPKG_TARGET_TRIPLET=arm64-osx" "-DVCPKG_SET_CHARSET_FLAG=ON" "-DVCPKG_PLATFORM_TOOLSET=external" "-DCMAKE_EXPORT_NO_PACKAGE_REGISTRY=ON" "-DCMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY=ON" "-DCMAKE_FIND_PACKAGE_NO_SYSTEM_PACKAGE_REGISTRY=ON" "-DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=TRUE" "-DCMAKE_VERBOSE_MAKEFILE=ON" "-DVCPKG_APPLOCAL_DEPS=OFF" "-DCMAKE_TOOLCHAIN_FILE=/Users/vcpkg/Data/work/1/s/scripts/buildsystems/vcpkg.cmake" "-DCMAKE_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION=ON" "-DVCPKG_CXX_FLAGS=" "-DVCPKG_CXX_FLAGS_RELEASE=" "-DVCPKG_CXX_FLAGS_DEBUG=" "-DVCPKG_C_FLAGS=" "-DVCPKG_C_FLAGS_RELEASE=" "-DVCPKG_C_FLAGS_DEBUG=" "-DVCPKG_CRT_LINKAGE=dynamic" "-DVCPKG_LINKER_FLAGS=" "-DVCPKG_LINKER_FLAGS_RELEASE=" "-DVCPKG_LINKER_FLAGS_DEBUG=" "-DVCPKG_TARGET_ARCHITECTURE=arm64" "-DCMAKE_INSTALL_LIBDIR:STRING=lib" "-DCMAKE_INSTALL_BINDIR:STRING=bin" "-D_VCPKG_ROOT_DIR=/Users/vcpkg/Data/work/1/s" "-D_VCPKG_INSTALLED_DIR=/Users/vcpkg/Data/installed" "-DVCPKG_MANIFEST_INSTALL=OFF" "-DCMAKE_OSX_ARCHITECTURES=arm64"
FAILED: [code=1] ../CMakeCache.txt 
"/opt/homebrew/bin/cmake" -E chdir ".." "/opt/homebrew/bin/cmake" "/Users/vcpkg/Data/b/hazelcast-cpp-client/src/ea7a924fb4-ef8d1dacae.clean" "-G" "Ninja" "-DCMAKE_BUILD_TYPE=Release" "-DCMAKE_INSTALL_PREFIX=/Users/vcpkg/Data/p/hazelcast-cpp-client_arm64-osx" "-DFETCHCONTENT_FULLY_DISCONNECTED=ON" "-DWITH_OPENSSL=OFF" "-DBUILD_EXAMPLES=OFF" "-DCMAKE_MAKE_PROGRAM=/opt/homebrew/bin/ninja" "-DCMAKE_SYSTEM_NAME=Darwin" "-DBUILD_SHARED_LIBS=OFF" "-DVCPKG_CHAINLOAD_TOOLCHAIN_FILE=/Users/vcpkg/Data/work/1/s/scripts/toolchains/osx.cmake" "-DVCPKG_TARGET_TRIPLET=arm64-osx" "-DVCPKG_SET_CHARSET_FLAG=ON" "-DVCPKG_PLATFORM_TOOLSET=external" "-DCMAKE_EXPORT_NO_PACKAGE_REGISTRY=ON" "-DCMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY=ON" "-DCMAKE_FIND_PACKAGE_NO_SYSTEM_PACKAGE_REGISTRY=ON" "-DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=TRUE" "-DCMAKE_VERBOSE_MAKEFILE=ON" "-DVCPKG_APPLOCAL_DEPS=OFF" "-DCMAKE_TOOLCHAIN_FILE=/Users/vcpkg/Data/work/1/s/scripts/buildsystems/vcpkg.cmake" "-DCMAKE_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION=ON" "-DVCPKG_CXX_FLAGS=" "-DVCPKG_CXX_FLAGS_RELEASE=" "-DVCPKG_CXX_FLAGS_DEBUG=" "-DVCPKG_C_FLAGS=" "-DVCPKG_C_FLAGS_RELEASE=" "-DVCPKG_C_FLAGS_DEBUG=" "-DVCPKG_CRT_LINKAGE=dynamic" "-DVCPKG_LINKER_FLAGS=" "-DVCPKG_LINKER_FLAGS_RELEASE=" "-DVCPKG_LINKER_FLAGS_DEBUG=" "-DVCPKG_TARGET_ARCHITECTURE=arm64" "-DCMAKE_INSTALL_LIBDIR:STRING=lib" "-DCMAKE_INSTALL_BINDIR:STRING=bin" "-D_VCPKG_ROOT_DIR=/Users/vcpkg/Data/work/1/s" "-D_VCPKG_INSTALLED_DIR=/Users/vcpkg/Data/installed" "-DVCPKG_MANIFEST_INSTALL=OFF" "-DCMAKE_OSX_ARCHITECTURES=arm64"
-- The CXX compiler identification is AppleClang 17.0.0.17000013
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
CMake Error at CMakeLists.txt:29 (configure_file):
  No such file or directory


fatal: not a git repository (or any of the parent directories): .git
fatal: not a git repository (or any of the parent directories): .git
CMake Warning at cmake/utils.cmake:24 (message):
  Could not execute command git show for obtaining the git commit date.
  Process exited with 128.
Call Stack (most recent call first):
  CMakeLists.txt:50 (get_commit_date_and_id)


CMake Warning at cmake/utils.cmake:35 (message):
  Could not execute command git show for obtaining the git commit id.
  Process exited with 128.
Call Stack (most recent call first):
  CMakeLists.txt:50 (get_commit_date_and_id)


-- GIT_COMMIT_DATE = NOT_FOUND
-- GIT_COMMIT_ID = NOT_FOUND
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
-- Found Threads: TRUE
CMake Warning (dev) at /Users/vcpkg/Data/installed/arm64-osx/share/boost/vcpkg-cmake-wrapper.cmake:3 (_find_package):
  Policy CMP0167 is not set: The FindBoost module is removed.  Run "cmake
  --help-policy CMP0167" for policy details.  Use the cmake_policy command to
  set the policy and suppress this warning.

Call Stack (most recent call first):
  /Users/vcpkg/Data/work/1/s/scripts/buildsystems/vcpkg.cmake:858 (include)
  CMakeLists.txt:89 (find_package)
This warning is for project developers.  Use -Wno-dev to suppress it.

-- Found Boost: /Users/vcpkg/Data/installed/arm64-osx/share/boost/BoostConfig.cmake (found suitable version "1.89.0", minimum required is "1.73") found components: thread chrono
-- Boost version: 1.89.0
-- Boost include directory: /Users/vcpkg/Data/installed/arm64-osx/include
-- Boost libraries: Boost::thread;Boost::chrono
-- Boost version 1.89.0 >= 1.82.0, setting C++ standard to 14. Boost.Math library requires minimum C++14 compiler.
-- CMAKE_CXX_COMPILER_ID = AppleClang
-- Performing Test COMPILER_HAS_HIDDEN_VISIBILITY
-- Performing Test COMPILER_HAS_HIDDEN_VISIBILITY - Success
-- Performing Test COMPILER_HAS_HIDDEN_INLINE_VISIBILITY
-- Performing Test COMPILER_HAS_HIDDEN_INLINE_VISIBILITY - Success
-- Performing Test COMPILER_HAS_DEPRECATED_ATTR
-- Performing Test COMPILER_HAS_DEPRECATED_ATTR - Success
-- Configuration summary:
--   CMAKE_BUILD_TYPE =      Release
--   BUILD_SHARED_LIBS       = OFF
--   WITH_OPENSSL            = OFF
--   DISABLE_LOGGING         = OFF
--   CMAKE_INSTALL_PREFIX    = /Users/vcpkg/Data/p/hazelcast-cpp-client_arm64-osx
--   BUILD_TESTS             = OFF
--   BUILD_EXAMPLES          = OFF
--   CMAKE_CXX_FLAGS         = -fPIC
--   CMAKE_CXX_FLAGS_DEBUG   = -g
--   CMAKE_CXX_FLAGS_RELEASE = -O3 -DNDEBUG
-- Configuring incomplete, errors occurred!

@ihsandemir
Copy link
Contributor Author

ihsandemir commented Nov 14, 2025

Hello @BillyONeal
I get the following error in the log for this test

Feature Test [4/4] hazelcast-cpp-client[core,example,openssl]:x64-linux
...
...
...
CMake Error at scripts/cmake/vcpkg_execute_required_process.cmake:127 (message):
    Command failed: /vcpkg/downloads/tools/ninja/1.13.1-linux/ninja -v
    Working Directory: /mnt/vcpkg-ci/b/hazelcast-cpp-client/x64-linux-rel/vcpkg-parallel-configure
    Error code: 1
    See logs for more information:
      /mnt/vcpkg-ci/b/hazelcast-cpp-client/config-x64-linux-dbg-CMakeCache.txt.log
      /mnt/vcpkg-ci/b/hazelcast-cpp-client/config-x64-linux-rel-CMakeCache.txt.log
      /mnt/vcpkg-ci/b/hazelcast-cpp-client/config-x64-linux-dbg-CMakeConfigureLog.yaml.log
      /mnt/vcpkg-ci/b/hazelcast-cpp-client/config-x64-linux-rel-CMakeConfigureLog.yaml.log
      /mnt/vcpkg-ci/b/hazelcast-cpp-client/config-x64-linux-rel-ninja.log
      /mnt/vcpkg-ci/b/hazelcast-cpp-client/config-x64-linux-out.log

Call Stack (most recent call first):
  /mnt/vcpkg-ci/installed/x64-linux/share/vcpkg-cmake/vcpkg_cmake_configure.cmake:269 (vcpkg_execute_required_process)
  ports/hazelcast-cpp-client/portfile.cmake:16 (vcpkg_cmake_configure)
  scripts/ports.cmake:206 (include)

Is there a way to see the log for file /mnt/vcpkg-ci/b/hazelcast-cpp-client/config-x64-linux-rel-CMakeConfigureLog.yaml.log or /mnt/vcpkg-ci/b/hazelcast-cpp-client/config-x64-linux-rel-ninja.log , etc? I could not locate them.

It says the ninja command failed but no reason why it failed.

@dg0yt
Copy link
Contributor

dg0yt commented Nov 14, 2025

The link to the instruction is in the logged messages.

vcpkg feature testing failed; this is usually a bug in one of the features in the port(s) edited in this pull request. See https://github.com/microsoft/vcpkg/discussions/31357 for how to access AZP failure logs.

Does this need further improvement?

…nerating the reference_manual.md file which may be a problem when the pr builder runs the checks in parallel trying to modify the same file.
@ihsandemir ihsandemir marked this pull request as ready for review November 16, 2025 10:24
@ihsandemir
Copy link
Contributor Author

@BillyONeal can you review?

@BillyONeal BillyONeal merged commit 6bc2e54 into microsoft:master Nov 17, 2025
18 checks passed
@BillyONeal
Copy link
Member

Thanks!

@BillyONeal
Copy link
Member

Does this need further improvement?

I think the only improvement that will REALLY matter is adopting GitHub Actions. But we tried that and their absolute 6 hour time limit kinda made it nonviable for us :(

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[New Port Request] hazelcast-cpp-client

3 participants