Files
OpenVulkano/3rdParty/libarchive/CMakeLists.txt
2024-07-30 08:14:01 +02:00

48 lines
1.8 KiB
CMake

include(../../cmake/Utils.cmake)
find_package(LibArchive QUIET)
if (NOT DEFINED LibArchive_LIBRARIES)
file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/deps)
execute_process(
COMMAND ${CMAKE_COMMAND} -G ${CMAKE_GENERATOR} -DTOOLCHAIN_FILE=${TOOLCHAIN_FILE} ${CMAKE_CURRENT_SOURCE_DIR}/ext -DZLIB_REPO=${ZLIB_REPO} -DZSTD_REPO=${ZSTD_REPO} -DLZ4_REPO=${LZ4_REPO} -DLIBARCHIVE_REPO=${LIBARCHIVE_REPO}
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/deps
)
execute_process(
COMMAND ${CMAKE_COMMAND} --build ${CMAKE_BINARY_DIR}/deps --config Release
RESULT_VARIABLE build_result
)
if (NOT ${build_result} EQUAL "0")
message(FATAL_ERROR "Failed to build lib archive!")
endif()
else ()
message("Using system LibArchive")
set(USING_SYSTEM_LIBARCHIVE ON PARENT_SCOPE)
endif ()
function(LinkLibArchive TARGET)
list(APPEND CMAKE_PREFIX_PATH ${CMAKE_BINARY_DIR}/deps/INSTALL)
find_package(LibArchive REQUIRED)
set(ZLIB_USE_STATIC_LIBS ON)
find_package(ZLIB REQUIRED)
find_package(LZ4 QUIET)
find_package(zstd QUIET)
find_package(BZip2 QUIET)
find_package(LibLZMA QUIET)
find_package(LibXml2 QUIET)
find_package(EXPAT QUIET)
target_include_directories(${TARGET} PRIVATE ${LibArchive_INCLUDE_DIR})
target_link_libraries(${TARGET} PRIVATE ${LibArchive_LIBRARIES} ${ZLIB_LIBRARIES} ${zstd_LIBRARIES} ${LZ4_LIBRARIES})
if (BZIP2_LIBRARIES)
target_link_libraries(${TARGET} PRIVATE ${BZIP2_LIBRARIES})
endif()
if (LIBLZMA_LIBRARIES)
target_link_libraries(${TARGET} PRIVATE ${LIBLZMA_LIBRARIES})
endif()
if (LibXml2_FOUND)
target_link_libraries(${TARGET} PUBLIC ${LIBXML2_LIBRARIES})
endif()
if (EXPAT_FOUND)
target_link_libraries(${TARGET} PUBLIC ${EXPAT_LIBRARIES})
endif()
endfunction()