From 93a6979cb6b66e3b2ecdd2a01df1e15dc1812fdb Mon Sep 17 00:00:00 2001 From: Marcus Holland-Moritz Date: Wed, 7 Aug 2024 19:37:22 +0200 Subject: [PATCH] build: use ricepp as object libraries --- CMakeLists.txt | 4 ++-- ricepp/CMakeLists.txt | 19 +++++++++++++------ 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index deed1c97..682fe4ce 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -791,7 +791,7 @@ target_compile_definitions( ) if(ENABLE_RICEPP) - target_link_libraries(dwarfs_common PRIVATE ricepp) + target_link_libraries(dwarfs_common PRIVATE ${RICEPP_OBJECT_TARGETS}) endif() if(STATIC_BUILD_DO_NOT_USE) @@ -1466,7 +1466,7 @@ if(NOT STATIC_BUILD_DO_NOT_USE) dwarfs_fsst # other - ricepp + ${RICEPP_OBJECT_TARGETS} folly_deps EXPORT dwarfs-targets LIBRARY DESTINATION lib diff --git a/ricepp/CMakeLists.txt b/ricepp/CMakeLists.txt index b4bee5c6..9a704469 100644 --- a/ricepp/CMakeLists.txt +++ b/ricepp/CMakeLists.txt @@ -68,20 +68,27 @@ endif() foreach(target ${RICEPP_LIBS_CPUSPECIFIC}) message(STATUS "[ricepp] adding CPU target: ${target}") - target_include_directories(${target} PUBLIC include) + target_include_directories(${target} PUBLIC $) target_link_libraries(${target} PUBLIC range-v3::range-v3) target_compile_features(${target} PUBLIC cxx_std_20) list(APPEND RICEPP_OBJECTS_CPUSPECIFIC $) + list(APPEND RICEPP_OBJECT_TARGETS ${target}) endforeach() -add_library(ricepp ricepp.cpp ${RICEPP_OBJECTS_CPUSPECIFIC}) -target_link_libraries(ricepp PUBLIC range-v3::range-v3) -target_include_directories(ricepp PUBLIC +add_library(ricepp-core OBJECT ricepp.cpp) +target_link_libraries(ricepp-core PUBLIC range-v3::range-v3) +target_include_directories(ricepp-core PUBLIC $ $ ) -target_compile_features(ricepp PUBLIC cxx_std_20) -target_compile_definitions(ricepp PRIVATE ${RICEPP_CPU_SUPPORT}) +target_compile_features(ricepp-core PUBLIC cxx_std_20) +target_compile_definitions(ricepp-core PRIVATE ${RICEPP_CPU_SUPPORT}) +list(APPEND RICEPP_OBJECT_TARGETS ricepp-core) + +set(RICEPP_OBJECT_TARGETS "${RICEPP_OBJECT_TARGETS}" PARENT_SCOPE) + +add_library(ricepp) +target_link_libraries(ricepp PUBLIC ${RICEPP_OBJECT_TARGETS}) if(CMAKE_SOURCE_DIR STREQUAL PROJECT_SOURCE_DIR) message(STATUS "[ricepp] building standalone")