Move libarchive build code and use mirrors
This commit is contained in:
42
3rdParty/CMakeLists.txt
vendored
42
3rdParty/CMakeLists.txt
vendored
@@ -18,45 +18,5 @@ add_subdirectory(imgui)
|
||||
add_subdirectory(tracy)
|
||||
add_subdirectory(libstud-uuid)
|
||||
add_subdirectory(rapidyaml)
|
||||
add_subdirectory(libarchive)
|
||||
add_subdirectory(libjpeg-turbo)
|
||||
|
||||
|
||||
#TODO move into a different file
|
||||
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}/libarchive
|
||||
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/deps
|
||||
)
|
||||
execute_process(
|
||||
COMMAND ${CMAKE_COMMAND} --build ${CMAKE_BINARY_DIR}/deps
|
||||
RESULT_VARIABLE build_result
|
||||
)
|
||||
if (NOT ${build_result} EQUAL "0")
|
||||
message(FATAL_ERROR "Failed to build lib archive!")
|
||||
endif()
|
||||
|
||||
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 QUIET)
|
||||
find_package(zstd QUIET)
|
||||
find_package(BZip2 QUIET)
|
||||
find_package(LibLZMA 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()
|
||||
endfunction()
|
||||
127
3rdParty/libarchive/CMakeLists.txt
vendored
127
3rdParty/libarchive/CMakeLists.txt
vendored
@@ -1,93 +1,40 @@
|
||||
cmake_minimum_required(VERSION 3.16)
|
||||
project(build_libarchive)
|
||||
include(ExternalProject)
|
||||
include(../../cmake/Utils.cmake)
|
||||
|
||||
if(NOT DEFINED ZLIB_REPO)
|
||||
set(ZLIB_REPO https://github.com/madler/zlib.git)
|
||||
endif ()
|
||||
if(NOT DEFINED ZSTD_REPO)
|
||||
set(ZSTD_REPO https://github.com/facebook/zstd)
|
||||
endif ()
|
||||
if(NOT DEFINED LZ4_REPO)
|
||||
set(LZ4_REPO https://github.com/lz4/lz4)
|
||||
endif ()
|
||||
if(NOT DEFINED LIBARCHIVE_REPO)
|
||||
set(LIBARCHIVE_REPO https://github.com/libarchive/libarchive.git)
|
||||
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
|
||||
RESULT_VARIABLE build_result
|
||||
)
|
||||
if (NOT ${build_result} EQUAL "0")
|
||||
message(FATAL_ERROR "Failed to build lib archive!")
|
||||
endif()
|
||||
|
||||
list(APPEND CMAKE_PREFIX_PATH ${CMAKE_BINARY_DIR}/deps/INSTALL)
|
||||
else ()
|
||||
message("Using system LibArchive")
|
||||
set(USING_SYSTEM_LIBARCHIVE ON PARENT_SCOPE)
|
||||
endif ()
|
||||
|
||||
ExternalProject_Add(zlib
|
||||
GIT_REPOSITORY ${ZLIB_REPO}
|
||||
GIT_TAG v1.3.1
|
||||
GIT_SHALLOW TRUE
|
||||
SOURCE_DIR zlib
|
||||
BINARY_DIR zlib-build
|
||||
CMAKE_GENERATOR ${CMAKE_GENERATOR}
|
||||
CMAKE_ARGS
|
||||
-DBUILD_SHARED_LIBS:BOOL=OFF
|
||||
-DCMAKE_TOOLCHAIN_FILE:FILEPATH=${TOOLCHAIN_FILE}
|
||||
-DCMAKE_INSTALL_PREFIX:PATH=${CMAKE_BINARY_DIR}/INSTALL
|
||||
-DCMAKE_BUILD_TYPE:STRING=Release
|
||||
)
|
||||
|
||||
ExternalProject_Add(zstd
|
||||
GIT_REPOSITORY ${ZSTD_REPO}
|
||||
GIT_TAG v1.5.5
|
||||
GIT_SHALLOW TRUE
|
||||
SOURCE_DIR zstd
|
||||
SOURCE_SUBDIR build/cmake
|
||||
BINARY_DIR zstd-build
|
||||
CMAKE_GENERATOR ${CMAKE_GENERATOR}
|
||||
CMAKE_ARGS
|
||||
-DZSTD_BUILD_PROGRAMS:BOOL=OFF
|
||||
-DZSTD_BUILD_SHARED:BOOL=OFF
|
||||
-DBUILD_SHARED_LIBS:BOOL=OFF
|
||||
-DZSTD_BUILD_STATIC:BOOL=ON
|
||||
-DCMAKE_BUILD_TYPE:STRING=Release
|
||||
-DCMAKE_TOOLCHAIN_FILE:FILEPATH=${TOOLCHAIN_FILE}
|
||||
-DCMAKE_INSTALL_PREFIX:PATH=${CMAKE_BINARY_DIR}/INSTALL
|
||||
)
|
||||
|
||||
ExternalProject_Add(lz4
|
||||
GIT_REPOSITORY ${LZ4_REPO}
|
||||
GIT_TAG v1.9.4
|
||||
GIT_SHALLOW TRUE
|
||||
SOURCE_DIR lz4
|
||||
BINARY_DIR lz4-build
|
||||
SOURCE_SUBDIR build/cmake
|
||||
CMAKE_GENERATOR ${CMAKE_GENERATOR}
|
||||
CMAKE_ARGS
|
||||
-DBUILD_SHARED_LIBS:BOOL=OFF
|
||||
-DLZ4_BUILD_CLI:BOOL=OFF
|
||||
-DLZ4_BUILD_LEGACY_LZ4C:BOOL=OFF
|
||||
-DLZ4_BUNDLE_MODE:BOOL=ON
|
||||
-DCMAKE_BUILD_TYPE:STRING=Release
|
||||
-DCMAKE_TOOLCHAIN_FILE:FILEPATH=${TOOLCHAIN_FILE}
|
||||
-DCMAKE_INSTALL_PREFIX:PATH=${CMAKE_BINARY_DIR}/INSTALL
|
||||
)
|
||||
|
||||
ExternalProject_Add(
|
||||
libarchive
|
||||
DEPENDS zlib zstd lz4
|
||||
GIT_REPOSITORY ${LIBARCHIVE_REPO}
|
||||
GIT_TAG v3.7.4
|
||||
GIT_SHALLOW TRUE
|
||||
SOURCE_DIR libarchive
|
||||
BINARY_DIR libarchive-build
|
||||
CMAKE_GENERATOR ${CMAKE_GENERATOR}
|
||||
CMAKE_ARGS
|
||||
-DCMAKE_TOOLCHAIN_FILE:FILEPATH=${TOOLCHAIN_FILE}
|
||||
-DCMAKE_BUILD_TYPE:STRING=Release
|
||||
-DBUILD_SHARED_LIBS:BOOL=OFF
|
||||
-DENABLE_TEST:BOOL=OFF
|
||||
-DENABLE_TAR:BOOL=OFF
|
||||
-DENABLE_CPIO:BOOL=OFF
|
||||
-DENABLE_CAT:BOOL=OFF
|
||||
-DENABLE_OPENSSL:BOOL=OFF
|
||||
-DENABLE_ACL:BOOL=OFF
|
||||
-DENABLE_ICONV:BOOL=OFF
|
||||
-DENABLE_LIBB2:BOOL=OFF
|
||||
-DENABLE_LIBXML2:BOOL=OFF
|
||||
-DZLIB_USE_STATIC_LIBS:BOOL=ON
|
||||
-DCMAKE_PREFIX_PATH=${CMAKE_BINARY_DIR}/INSTALL
|
||||
-DCMAKE_INSTALL_PREFIX:PATH=${CMAKE_BINARY_DIR}/INSTALL
|
||||
)
|
||||
function(LinkLibArchive TARGET)
|
||||
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)
|
||||
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()
|
||||
endfunction()
|
||||
93
3rdParty/libarchive/ext/CMakeLists.txt
vendored
Normal file
93
3rdParty/libarchive/ext/CMakeLists.txt
vendored
Normal file
@@ -0,0 +1,93 @@
|
||||
cmake_minimum_required(VERSION 3.16)
|
||||
project(build_libarchive)
|
||||
include(ExternalProject)
|
||||
|
||||
if(NOT DEFINED ZLIB_REPO)
|
||||
set(ZLIB_REPO https://github.com/madler/zlib.git)
|
||||
endif ()
|
||||
if(NOT DEFINED ZSTD_REPO)
|
||||
set(ZSTD_REPO https://github.com/facebook/zstd)
|
||||
endif ()
|
||||
if(NOT DEFINED LZ4_REPO)
|
||||
set(LZ4_REPO https://github.com/lz4/lz4)
|
||||
endif ()
|
||||
if(NOT DEFINED LIBARCHIVE_REPO)
|
||||
set(LIBARCHIVE_REPO https://github.com/libarchive/libarchive.git)
|
||||
endif ()
|
||||
|
||||
ExternalProject_Add(zlib
|
||||
GIT_REPOSITORY ${ZLIB_REPO}
|
||||
GIT_TAG v1.3.1
|
||||
GIT_SHALLOW TRUE
|
||||
SOURCE_DIR zlib
|
||||
BINARY_DIR zlib-build
|
||||
CMAKE_GENERATOR ${CMAKE_GENERATOR}
|
||||
CMAKE_ARGS
|
||||
-DBUILD_SHARED_LIBS:BOOL=OFF
|
||||
-DCMAKE_TOOLCHAIN_FILE:FILEPATH=${TOOLCHAIN_FILE}
|
||||
-DCMAKE_INSTALL_PREFIX:PATH=${CMAKE_BINARY_DIR}/INSTALL
|
||||
-DCMAKE_BUILD_TYPE:STRING=Release
|
||||
)
|
||||
|
||||
ExternalProject_Add(zstd
|
||||
GIT_REPOSITORY ${ZSTD_REPO}
|
||||
GIT_TAG v1.5.5
|
||||
GIT_SHALLOW TRUE
|
||||
SOURCE_DIR zstd
|
||||
SOURCE_SUBDIR build/cmake
|
||||
BINARY_DIR zstd-build
|
||||
CMAKE_GENERATOR ${CMAKE_GENERATOR}
|
||||
CMAKE_ARGS
|
||||
-DZSTD_BUILD_PROGRAMS:BOOL=OFF
|
||||
-DZSTD_BUILD_SHARED:BOOL=OFF
|
||||
-DBUILD_SHARED_LIBS:BOOL=OFF
|
||||
-DZSTD_BUILD_STATIC:BOOL=ON
|
||||
-DCMAKE_BUILD_TYPE:STRING=Release
|
||||
-DCMAKE_TOOLCHAIN_FILE:FILEPATH=${TOOLCHAIN_FILE}
|
||||
-DCMAKE_INSTALL_PREFIX:PATH=${CMAKE_BINARY_DIR}/INSTALL
|
||||
)
|
||||
|
||||
ExternalProject_Add(lz4
|
||||
GIT_REPOSITORY ${LZ4_REPO}
|
||||
GIT_TAG v1.9.4
|
||||
GIT_SHALLOW TRUE
|
||||
SOURCE_DIR lz4
|
||||
BINARY_DIR lz4-build
|
||||
SOURCE_SUBDIR build/cmake
|
||||
CMAKE_GENERATOR ${CMAKE_GENERATOR}
|
||||
CMAKE_ARGS
|
||||
-DBUILD_SHARED_LIBS:BOOL=OFF
|
||||
-DLZ4_BUILD_CLI:BOOL=OFF
|
||||
-DLZ4_BUILD_LEGACY_LZ4C:BOOL=OFF
|
||||
-DLZ4_BUNDLE_MODE:BOOL=ON
|
||||
-DCMAKE_BUILD_TYPE:STRING=Release
|
||||
-DCMAKE_TOOLCHAIN_FILE:FILEPATH=${TOOLCHAIN_FILE}
|
||||
-DCMAKE_INSTALL_PREFIX:PATH=${CMAKE_BINARY_DIR}/INSTALL
|
||||
)
|
||||
|
||||
ExternalProject_Add(
|
||||
libarchive
|
||||
DEPENDS zlib zstd lz4
|
||||
GIT_REPOSITORY ${LIBARCHIVE_REPO}
|
||||
GIT_TAG v3.7.4
|
||||
GIT_SHALLOW TRUE
|
||||
SOURCE_DIR libarchive
|
||||
BINARY_DIR libarchive-build
|
||||
CMAKE_GENERATOR ${CMAKE_GENERATOR}
|
||||
CMAKE_ARGS
|
||||
-DCMAKE_TOOLCHAIN_FILE:FILEPATH=${TOOLCHAIN_FILE}
|
||||
-DCMAKE_BUILD_TYPE:STRING=Release
|
||||
-DBUILD_SHARED_LIBS:BOOL=OFF
|
||||
-DENABLE_TEST:BOOL=OFF
|
||||
-DENABLE_TAR:BOOL=OFF
|
||||
-DENABLE_CPIO:BOOL=OFF
|
||||
-DENABLE_CAT:BOOL=OFF
|
||||
-DENABLE_OPENSSL:BOOL=OFF
|
||||
-DENABLE_ACL:BOOL=OFF
|
||||
-DENABLE_ICONV:BOOL=OFF
|
||||
-DENABLE_LIBB2:BOOL=OFF
|
||||
-DENABLE_LIBXML2:BOOL=OFF
|
||||
-DZLIB_USE_STATIC_LIBS:BOOL=ON
|
||||
-DCMAKE_PREFIX_PATH=${CMAKE_BINARY_DIR}/INSTALL
|
||||
-DCMAKE_INSTALL_PREFIX:PATH=${CMAKE_BINARY_DIR}/INSTALL
|
||||
)
|
||||
3
3rdParty/libjpeg-turbo/CMakeLists.txt
vendored
3
3rdParty/libjpeg-turbo/CMakeLists.txt
vendored
@@ -1,4 +1,3 @@
|
||||
include(FetchContent)
|
||||
include(../../cmake/Utils.cmake)
|
||||
|
||||
Find_Package(libjpeg-turbo QUIET)
|
||||
@@ -7,7 +6,7 @@ if (libjpeg-turbo_FOUND)
|
||||
else ()
|
||||
file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/deps_ljt)
|
||||
execute_process(
|
||||
COMMAND ${CMAKE_COMMAND} -G ${CMAKE_GENERATOR} -DTOOLCHAIN_FILE=${TOOLCHAIN_FILE} ${CMAKE_CURRENT_SOURCE_DIR}/ext
|
||||
COMMAND ${CMAKE_COMMAND} -G ${CMAKE_GENERATOR} -DTOOLCHAIN_FILE=${TOOLCHAIN_FILE} ${CMAKE_CURRENT_SOURCE_DIR}/ext -DLIBJPEGTURBO_REPO=${LIBJPEGTURBO_REPO}
|
||||
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/deps_ljt
|
||||
)
|
||||
execute_process(
|
||||
|
||||
2
3rdParty/libjpeg-turbo/ext/CMakeLists.txt
vendored
2
3rdParty/libjpeg-turbo/ext/CMakeLists.txt
vendored
@@ -15,7 +15,7 @@ ExternalProject_Add(libjpegturbo
|
||||
CMAKE_GENERATOR ${CMAKE_GENERATOR}
|
||||
CMAKE_ARGS
|
||||
-DBUILD_SHARED_LIBS:BOOL=OFF
|
||||
-DENABLE_SHARED:BOOL=OFF
|
||||
-DENABLE_SHARED:BOOL=OFF
|
||||
-DCMAKE_TOOLCHAIN_FILE:FILEPATH=${TOOLCHAIN_FILE}
|
||||
-DCMAKE_INSTALL_PREFIX:PATH=${CMAKE_BINARY_DIR}/INSTALL
|
||||
-DCMAKE_BUILD_TYPE:STRING=Release
|
||||
|
||||
@@ -6,7 +6,7 @@ include(cmake/VarsFromFile.cmake)
|
||||
include(cmake/SetCompilerSettings.cmake)
|
||||
include(cmake/SetupVulkan.cmake)
|
||||
include(cmake/Filter.cmake)
|
||||
include(OpenVulkano/cmake/AppleHelper.cmake)
|
||||
include(cmake/AppleHelper.cmake)
|
||||
|
||||
set(DEPENDENCY_MIRROR_FILE "DependencyMirrors.txt" CACHE STRING "Dependency mirror")
|
||||
VarsFromFile("${DEPENDENCY_MIRROR_FILE}") # Load mirror list (for CICD)
|
||||
|
||||
Reference in New Issue
Block a user