cmake_minimum_required(VERSION 3.16) project(build_libarchive) include(ExternalProject) ExternalProject_Add(zlib GIT_REPOSITORY https://github.com/madler/zlib.git GIT_TAG v1.2.11 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 https://github.com/facebook/zstd GIT_TAG v1.5.1 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 -DBUILD_SHARED_LIBS:BOOL=OFF -DCMAKE_BUILD_TYPE:STRING=Release -DCMAKE_TOOLCHAIN_FILE:FILEPATH=${TOOLCHAIN_FILE} -DCMAKE_INSTALL_PREFIX:PATH=${CMAKE_BINARY_DIR}/INSTALL ) ExternalProject_Add(lz4 GIT_REPOSITORY https://github.com/lz4/lz4 GIT_TAG v1.9.3 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 -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 https://github.com/libarchive/libarchive.git GIT_TAG v3.7.0 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 -DZLIB_USE_STATIC_LIBS:BOOL=ON -DCMAKE_PREFIX_PATH=${CMAKE_BINARY_DIR}/INSTALL -DCMAKE_INSTALL_PREFIX:PATH=${CMAKE_BINARY_DIR}/INSTALL )