From 409f679cfdb80c99fe4ee4d1dfcdc8c9852f5aeb Mon Sep 17 00:00:00 2001 From: Georg Hagen Date: Mon, 27 May 2024 08:50:31 +0200 Subject: [PATCH] Use system libarchive if available --- 3rdParty/CMakeLists.txt | 32 ++++++++++++++++++++------------ 1 file changed, 20 insertions(+), 12 deletions(-) diff --git a/3rdParty/CMakeLists.txt b/3rdParty/CMakeLists.txt index 7725616..2389467 100644 --- a/3rdParty/CMakeLists.txt +++ b/3rdParty/CMakeLists.txt @@ -17,24 +17,32 @@ add_subdirectory(tracy) add_subdirectory(libstud-uuid) add_subdirectory(rapidyaml) -if (NOT USE_SYSTEM_LIB_ARCHIVE) -file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/deps) -execute_process( - COMMAND ${CMAKE_COMMAND} -G ${CMAKE_GENERATOR} -DTOOLCHAIN_FILE=${TOOLCHAIN_FILE} ${CMAKE_CURRENT_SOURCE_DIR}/libarchive - WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/deps -) -execute_process( - COMMAND ${CMAKE_COMMAND} --build ${CMAKE_BINARY_DIR}/deps -) -list(APPEND CMAKE_PREFIX_PATH ${CMAKE_BINARY_DIR}/deps/INSTALL) + +#TODO move into a different file +find_package(LibArchive QUIET) +if (NOT LibArchive_FOUND) + file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/deps) + execute_process( + COMMAND ${CMAKE_COMMAND} -G ${CMAKE_GENERATOR} -DTOOLCHAIN_FILE=${TOOLCHAIN_FILE} ${CMAKE_CURRENT_SOURCE_DIR}/libarchive + WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/deps + ) + execute_process( + COMMAND ${CMAKE_COMMAND} --build ${CMAKE_BINARY_DIR}/deps + ) + list(APPEND CMAKE_PREFIX_PATH ${CMAKE_BINARY_DIR}/deps/INSTALL) +else () + message("Using system LibArchive") + set(USING_SYSTEM_LIBARCHIVE ON PARENT_SCOPE) endif () function(LinkLibArchive TARGET) find_package(LibArchive REQUIRED) set(ZLIB_USE_STATIC_LIBS ON) find_package(ZLIB REQUIRED) - find_package(LZ4 REQUIRED) - find_package(zstd REQUIRED) + if (NOT USING_SYSTEM_LIBARCHIVE) + find_package(LZ4 REQUIRED) + find_package(zstd REQUIRED) + endif () target_include_directories(${TARGET} PRIVATE ${LibArchive_INCLUDE_DIR}) target_link_libraries(${TARGET} PRIVATE ${LibArchive_LIBRARIES} ${ZLIB_LIBRARIES} ${zstd_LIBRARIES} ${LZ4_LIBRARIES}) endfunction() \ No newline at end of file