11cmake_minimum_required (VERSION 3.29)
22include (FindGit)
33include (CMakeParseArguments)
4- include (./cmake/CPM.cmake)
54
65if (WIN32 )
76 set (CMAKE_OBJECT_PATH_MAX 500)
@@ -10,6 +9,26 @@ endif()
109project (adobe_source_libraries CXX)
1110include (CTest)
1211
12+ # download CPM.cmake
13+ file (
14+ DOWNLOAD
15+ https://github.com/cpm-cmake/CPM.cmake/releases/download/v0.40.8/CPM.cmake
16+ ${CMAKE_CURRENT_BINARY_DIR} /cmake/CPM.cmake
17+ EXPECTED_HASH SHA256=78ba32abdf798bc616bab7c73aac32a17bbd7b06ad9e26a6add69de8f3ae4791
18+ )
19+ include (${CMAKE_CURRENT_BINARY_DIR} /cmake/CPM.cmake)
20+
21+ # Enable CPM caching to avoid re-downloading dependencies
22+ set (CPM_SOURCE_CACHE ${CMAKE_SOURCE_DIR} /.cpm-cache CACHE PATH "Directory to cache CPM packages" FORCE)
23+
24+
25+ CPMAddPackage(
26+ NAME stlab-copy-on -write
27+ GITHUB_REPOSITORY stlab/copy-on -write
28+ GIT_TAG main # or specify a version tag
29+ OPTIONS "BUILD_TESTING OFF"
30+ )
31+
1332set (CMAKE_CXX_EXTENSIONS OFF )
1433if (NOT DEFINED CMAKE_CXX_STANDARD)
1534 set (CMAKE_CXX_STANDARD 20)
@@ -18,7 +37,7 @@ endif(NOT DEFINED CMAKE_CXX_STANDARD)
1837set (CMAKE_XCODE_ATTRIBUTE_CLANG_CXX_LIBRARY "libc++" )
1938
2039# Create symlink to compile_commands.json for clangd
21- if (CMAKE_EXPORT_COMPILE_COMMANDS)
40+ if (CMAKE_EXPORT_COMPILE_COMMANDS AND TOP_LEVEL_PROJECT )
2241 add_custom_target (clangd_compile_commands ALL
2342 COMMAND ${CMAKE_COMMAND} -E create_symlink
2443 ${CMAKE_BINARY_DIR} /compile_commands.json
@@ -47,6 +66,7 @@ function(target_link_boost target)
4766 target_link_libraries (${target} PUBLIC Boost::range)
4867 target_link_libraries (${target} PUBLIC Boost::multiprecision)
4968 target_link_libraries (${target} PUBLIC Boost::date_time)
69+ target_link_libraries (${target} PUBLIC stlab::copy-on -write)
5070endfunction (target_link_boost)
5171
5272function (target_link_boost_test target )
0 commit comments