aboutsummaryrefslogtreecommitdiff
path: root/vcpkg/ports/libcds
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/libcds
move to own git serverHEADmaster
Diffstat (limited to 'vcpkg/ports/libcds')
-rw-r--r--vcpkg/ports/libcds/001-cmake-install.patch32
-rw-r--r--vcpkg/ports/libcds/002-lib-suffix-option.patch13
-rw-r--r--vcpkg/ports/libcds/portfile.cmake35
-rw-r--r--vcpkg/ports/libcds/vcpkg.json21
4 files changed, 101 insertions, 0 deletions
diff --git a/vcpkg/ports/libcds/001-cmake-install.patch b/vcpkg/ports/libcds/001-cmake-install.patch
new file mode 100644
index 0000000..ae53870
--- /dev/null
+++ b/vcpkg/ports/libcds/001-cmake-install.patch
@@ -0,0 +1,32 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index d97ee07..f8affbb 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -34,6 +34,10 @@ if(APPLE)
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D_DARWIN_C_SOURCE")
+ endif()
+
++if(MSVC)
++ add_definitions(-DCDS_BUILD_LIB)
++endif()
++
+ if(WITH_BOOST_ATOMIC)
+ if(TARGET boost::atomic)
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DCDS_USE_BOOST_ATOMIC")
+@@ -186,9 +190,13 @@ target_compile_options(${CDS_STATIC_LIBRARY} PUBLIC "${LIBCDS_PUBLIC_CXX_FLAGS}"
+ target_compile_options(${CDS_SHARED_LIBRARY} PRIVATE "${LIBCDS_PRIVATE_CXX_FLAGS}")
+ target_compile_options(${CDS_STATIC_LIBRARY} PRIVATE "${LIBCDS_PRIVATE_CXX_FLAGS}")
+
+-install(TARGETS ${CDS_SHARED_LIBRARY} EXPORT LibCDSConfig LIBRARY DESTINATION lib${LIB_SUFFIX} COMPONENT ${LIBRARIES_COMPONENT} NAMELINK_SKIP RUNTIME DESTINATION lib${LIB_SUFFIX})
+-install(TARGETS ${CDS_SHARED_LIBRARY} EXPORT LibCDSConfig LIBRARY DESTINATION lib${LIB_SUFFIX} COMPONENT ${HEADERS_COMPONENT} NAMELINK_ONLY)
+-install(TARGETS ${CDS_STATIC_LIBRARY} EXPORT LibCDSConfig DESTINATION lib${LIB_SUFFIX} COMPONENT ${LIBRARIES_COMPONENT})
++if (NOT DISABLE_INSTALL_SHARED)
++ install(TARGETS ${CDS_SHARED_LIBRARY} EXPORT LibCDSConfig RUNTIME DESTINATION bin ARCHIVE DESTINATION lib LIBRARY DESTINATION lib${LIB_SUFFIX} COMPONENT ${LIBRARIES_COMPONENT})
++ #install(TARGETS ${CDS_SHARED_LIBRARY} EXPORT LibCDSConfig RUNTIME DESTINATION bin ARCHIVE DESTINATION lib LIBRARY DESTINATION lib${LIB_SUFFIX} COMPONENT ${HEADERS_COMPONENT} NAMELINK_ONLY)
++endif()
++if (NOT DISABLE_INSTALL_STATIC)
++ install(TARGETS ${CDS_STATIC_LIBRARY} EXPORT LibCDSConfig DESTINATION lib${LIB_SUFFIX} COMPONENT ${LIBRARIES_COMPONENT})
++endif()
+ install(EXPORT LibCDSConfig FILE LibCDSConfig.cmake NAMESPACE LibCDS:: DESTINATION lib/cmake/LibCDS)
+ install(DIRECTORY ${PROJECT_SOURCE_DIR}/cds DESTINATION include COMPONENT ${HEADERS_COMPONENT})
+
diff --git a/vcpkg/ports/libcds/002-lib-suffix-option.patch b/vcpkg/ports/libcds/002-lib-suffix-option.patch
new file mode 100644
index 0000000..9732f63
--- /dev/null
+++ b/vcpkg/ports/libcds/002-lib-suffix-option.patch
@@ -0,0 +1,13 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index aa287ff8..20fe7b49 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -118,7 +118,7 @@ if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID STREQUAL "Clang" OR CMAKE_C
+
+ if(CMAKE_TARGET_ARCHITECTURE STREQUAL "x86_64")
+ list(APPEND LIBCDS_PUBLIC_CXX_FLAGS "-mcx16")
+- set(LIB_SUFFIX "64")
++ set(LIB_SUFFIX "64" CACHE STRING "")
+
+ # GCC-7: 128-bit atomics support is implemented via libatomic on amd64
+ # see https://gcc.gnu.org/ml/gcc/2017-01/msg00167.html
diff --git a/vcpkg/ports/libcds/portfile.cmake b/vcpkg/ports/libcds/portfile.cmake
new file mode 100644
index 0000000..481d9d1
--- /dev/null
+++ b/vcpkg/ports/libcds/portfile.cmake
@@ -0,0 +1,35 @@
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO khizmax/libcds
+ REF v2.3.3
+ SHA512 95e67da4336d622d47bdf124d76827ca3e82e65ab5f725ccf58c2d7957960e7d17ee1ebb2126eed70f7a3ca1c97f840d9f59c1ae2eb80215d10abf70b215e510
+ HEAD_REF master
+ PATCHES
+ 001-cmake-install.patch
+ 002-lib-suffix-option.patch
+)
+
+string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" DISABLE_INSTALL_STATIC)
+string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" DISABLE_INSTALL_SHARED)
+
+vcpkg_cmake_configure(
+ SOURCE_PATH "${SOURCE_PATH}"
+ OPTIONS
+ -DENABLE_UNIT_TEST=OFF
+ -DENABLE_STRESS_TEST=OFF
+ -DDISABLE_INSTALL_STATIC=${DISABLE_INSTALL_STATIC}
+ -DDISABLE_INSTALL_SHARED=${DISABLE_INSTALL_SHARED}
+ "-DLIB_SUFFIX="
+)
+
+vcpkg_cmake_install()
+
+file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include")
+
+vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/LibCDS)
+
+file(INSTALL
+ "${SOURCE_PATH}/LICENSE"
+ DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright)
+
+vcpkg_copy_pdbs()
diff --git a/vcpkg/ports/libcds/vcpkg.json b/vcpkg/ports/libcds/vcpkg.json
new file mode 100644
index 0000000..ffedd68
--- /dev/null
+++ b/vcpkg/ports/libcds/vcpkg.json
@@ -0,0 +1,21 @@
+{
+ "name": "libcds",
+ "version": "2.3.3",
+ "port-version": 4,
+ "description": "a collection of concurrent containers that don't require external (manual) synchronization for shared access, and safe memory reclamation (SMR) algorithms like Hazard Pointer and user-space RCU that is used as an epoch-based SMR.",
+ "homepage": "https://github.com/khizmax/libcds",
+ "license": "BSL-1.0",
+ "supports": "!(arm & (osx | windows)) & !uwp",
+ "dependencies": [
+ "boost-system",
+ "boost-thread",
+ {
+ "name": "vcpkg-cmake",
+ "host": true
+ },
+ {
+ "name": "vcpkg-cmake-config",
+ "host": true
+ }
+ ]
+}