diff options
Diffstat (limited to 'vcpkg/ports/libcds')
| -rw-r--r-- | vcpkg/ports/libcds/001-cmake-install.patch | 32 | ||||
| -rw-r--r-- | vcpkg/ports/libcds/002-lib-suffix-option.patch | 13 | ||||
| -rw-r--r-- | vcpkg/ports/libcds/portfile.cmake | 35 | ||||
| -rw-r--r-- | vcpkg/ports/libcds/vcpkg.json | 21 |
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 + } + ] +} |