Skip to content

Commit 075fd9c

Browse files
committed
Use factored out copy-on-write.
- factor out copy-on-write - pulling in CPM directly in CMake - enabling CPM cache - update test cases that use custom allocator in copy-on-write (no longer supported)
1 parent b677850 commit 075fd9c

File tree

7 files changed

+34
-600
lines changed

7 files changed

+34
-600
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,3 +11,4 @@ build_asl/
1111
.vscode/settings.json
1212
/.cache
1313
compile_commands.json
14+
/.cpm-cache

CMakeLists.txt

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
cmake_minimum_required(VERSION 3.29)
22
include(FindGit)
33
include(CMakeParseArguments)
4-
include(./cmake/CPM.cmake)
54

65
if(WIN32)
76
set(CMAKE_OBJECT_PATH_MAX 500)
@@ -10,6 +9,26 @@ endif()
109
project(adobe_source_libraries CXX)
1110
include(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+
1332
set(CMAKE_CXX_EXTENSIONS OFF)
1433
if(NOT DEFINED CMAKE_CXX_STANDARD)
1534
set(CMAKE_CXX_STANDARD 20)
@@ -18,7 +37,7 @@ endif(NOT DEFINED CMAKE_CXX_STANDARD)
1837
set(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)
5070
endfunction(target_link_boost)
5171

5272
function(target_link_boost_test target)

0 commit comments

Comments
 (0)