mirror of
https://github.com/mhx/dwarfs.git
synced 2025-09-12 05:49:56 -04:00
build: split build into libdwarfs/tools/driver
This commit is contained in:
parent
765699e05e
commit
e0a7a63518
@ -128,7 +128,7 @@ fi
|
|||||||
if [[ "-$BUILD_TYPE-" == *-static-* ]]; then
|
if [[ "-$BUILD_TYPE-" == *-static-* ]]; then
|
||||||
CMAKE_ARGS_NONSTATIC="${CMAKE_ARGS}"
|
CMAKE_ARGS_NONSTATIC="${CMAKE_ARGS}"
|
||||||
export LDFLAGS="-L/opt/static-libs/$COMPILER/lib"
|
export LDFLAGS="-L/opt/static-libs/$COMPILER/lib"
|
||||||
CMAKE_ARGS="${CMAKE_ARGS} -DSTATIC_BUILD_DO_NOT_USE=1 -DUSE_PREFERRED_LIBS=1"
|
CMAKE_ARGS="${CMAKE_ARGS} -DSTATIC_BUILD_DO_NOT_USE=1 -DWITH_UNIVERSAL_BINARY=1"
|
||||||
CMAKE_ARGS="${CMAKE_ARGS} -DSTATIC_BUILD_EXTRA_PREFIX=/opt/static-libs/$COMPILER"
|
CMAKE_ARGS="${CMAKE_ARGS} -DSTATIC_BUILD_EXTRA_PREFIX=/opt/static-libs/$COMPILER"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
2
.github/workflows/build.yml
vendored
2
.github/workflows/build.yml
vendored
@ -40,7 +40,7 @@ jobs:
|
|||||||
- name: Configure Build
|
- name: Configure Build
|
||||||
shell: cmd
|
shell: cmd
|
||||||
run: |
|
run: |
|
||||||
cmake -B${{ runner.temp }}\build -S${{ runner.workspace }}\dwarfs -GNinja -DCMAKE_MAKE_PROGRAM=C:\bin\ninja.exe -DCMAKE_BUILD_TYPE=${{ matrix.build_mode }} -DWITH_TESTS=ON -DWITH_BENCHMARKS=ON -DCMAKE_TOOLCHAIN_FILE=C:\vcpkg\scripts\buildsystems\vcpkg.cmake -DVCPKG_TARGET_TRIPLET=x64-windows-static -DVCPKG_INSTALLED_DIR=${{ runner.workspace }}\vcpkg-install-dwarfs -DDWARFS_ARTIFACTS_DIR=Z:\artifacts\dwarfs -DWITH_PXATTR=ON
|
cmake -B${{ runner.temp }}\build -S${{ runner.workspace }}\dwarfs -GNinja -DCMAKE_MAKE_PROGRAM=C:\bin\ninja.exe -DCMAKE_BUILD_TYPE=${{ matrix.build_mode }} -DWITH_UNIVERSAL_BINARY=ON -DWITH_TESTS=ON -DWITH_BENCHMARKS=ON -DCMAKE_TOOLCHAIN_FILE=C:\vcpkg\scripts\buildsystems\vcpkg.cmake -DVCPKG_TARGET_TRIPLET=x64-windows-static -DVCPKG_INSTALLED_DIR=${{ runner.workspace }}\vcpkg-install-dwarfs -DDWARFS_ARTIFACTS_DIR=Z:\artifacts\dwarfs -DWITH_PXATTR=ON
|
||||||
|
|
||||||
- name: Run Build
|
- name: Run Build
|
||||||
shell: cmd
|
shell: cmd
|
||||||
|
162
CMakeLists.txt
162
CMakeLists.txt
@ -26,6 +26,9 @@ project(dwarfs)
|
|||||||
include(ExternalProject)
|
include(ExternalProject)
|
||||||
include(CheckCXXSourceCompiles)
|
include(CheckCXXSourceCompiles)
|
||||||
|
|
||||||
|
option(WITH_LIBDWARFS "build with libdwarfs" ON)
|
||||||
|
option(WITH_TOOLS "build with tools" ON)
|
||||||
|
option(WITH_FUSE_DRIVER "build with FUSE driver" ON)
|
||||||
option(WITH_TESTS "build with tests" OFF)
|
option(WITH_TESTS "build with tests" OFF)
|
||||||
option(WITH_BENCHMARKS "build with benchmarks" OFF)
|
option(WITH_BENCHMARKS "build with benchmarks" OFF)
|
||||||
option(WITH_FUZZ "build with fuzzing binaries" OFF)
|
option(WITH_FUZZ "build with fuzzing binaries" OFF)
|
||||||
@ -33,7 +36,7 @@ option(WITH_MAN_OPTION "build with --man option" ON)
|
|||||||
option(ENABLE_PERFMON "enable performance monitor in all tools" ON)
|
option(ENABLE_PERFMON "enable performance monitor in all tools" ON)
|
||||||
option(TRY_ENABLE_FLAC "build with FLAC support" ON)
|
option(TRY_ENABLE_FLAC "build with FLAC support" ON)
|
||||||
option(ENABLE_RICEPP "build with RICEPP compression support" ON)
|
option(ENABLE_RICEPP "build with RICEPP compression support" ON)
|
||||||
option(WITH_UNIVERSAL_BINARY "build with universal binary" ON)
|
option(WITH_UNIVERSAL_BINARY "build with universal binary" OFF)
|
||||||
option(WITH_PXATTR "build with pxattr binary" OFF)
|
option(WITH_PXATTR "build with pxattr binary" OFF)
|
||||||
if(NOT (APPLE OR WIN32))
|
if(NOT (APPLE OR WIN32))
|
||||||
option(ENABLE_STACKTRACE "build with symbolizer support" ON)
|
option(ENABLE_STACKTRACE "build with symbolizer support" ON)
|
||||||
@ -60,6 +63,10 @@ if(NOT WIN32)
|
|||||||
option(STATIC_BUILD_DO_NOT_USE "try static build (experimental)" OFF)
|
option(STATIC_BUILD_DO_NOT_USE "try static build (experimental)" OFF)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
if(STATIC_BUILD_DO_NOT_USE AND NOT(WITH_LIBDWARFS AND WITH_TOOLS AND WITH_FUSE_DRIVER))
|
||||||
|
message(FATAL_ERROR "STATIC_BUILD_DO_NOT_USE requires WITH_LIBDWARFS, WITH_TOOLS and WITH_FUSE_DRIVER")
|
||||||
|
endif()
|
||||||
|
|
||||||
# Libraries that we can fetch on demand if necessary
|
# Libraries that we can fetch on demand if necessary
|
||||||
#
|
#
|
||||||
# All of these libraries are header-only and not strictly required once
|
# All of these libraries are header-only and not strictly required once
|
||||||
@ -153,21 +160,32 @@ endif()
|
|||||||
|
|
||||||
if(WITH_MAN_PAGES)
|
if(WITH_MAN_PAGES)
|
||||||
include("${CMAKE_SOURCE_DIR}/cmake/manpage.cmake")
|
include("${CMAKE_SOURCE_DIR}/cmake/manpage.cmake")
|
||||||
foreach(man dwarfs.1 mkdwarfs.1 dwarfsck.1 dwarfsextract.1 dwarfs-format.5)
|
if(WITH_LIBDWARFS)
|
||||||
|
list(APPEND DWARFS_MANPAGES dwarfs-format.5)
|
||||||
|
endif()
|
||||||
|
if(WITH_TOOLS)
|
||||||
|
list(APPEND DWARFS_MANPAGES mkdwarfs.1 dwarfsck.1 dwarfsextract.1)
|
||||||
|
endif()
|
||||||
|
if(WITH_FUSE_DRIVER)
|
||||||
|
list(APPEND DWARFS_MANPAGES dwarfs.1)
|
||||||
|
endif()
|
||||||
|
foreach(man ${DWARFS_MANPAGES})
|
||||||
add_manpage(${man})
|
add_manpage(${man})
|
||||||
endforeach()
|
endforeach()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
include(FetchContent)
|
include(FetchContent)
|
||||||
|
|
||||||
include(${CMAKE_SOURCE_DIR}/cmake/need_fmt.cmake)
|
|
||||||
include(${CMAKE_SOURCE_DIR}/cmake/need_range_v3.cmake)
|
|
||||||
include(${CMAKE_SOURCE_DIR}/cmake/need_phmap.cmake)
|
|
||||||
|
|
||||||
if(WITH_TESTS)
|
if(WITH_TESTS)
|
||||||
include(${CMAKE_SOURCE_DIR}/cmake/need_gtest.cmake)
|
include(${CMAKE_SOURCE_DIR}/cmake/need_gtest.cmake)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
include(${CMAKE_SOURCE_DIR}/cmake/need_fmt.cmake)
|
||||||
|
include(${CMAKE_SOURCE_DIR}/cmake/need_range_v3.cmake)
|
||||||
|
|
||||||
|
if(WITH_LIBDWARFS)
|
||||||
|
include(${CMAKE_SOURCE_DIR}/cmake/need_phmap.cmake)
|
||||||
|
|
||||||
find_package(Boost ${BOOST_REQUIRED_VERSION} REQUIRED COMPONENTS chrono iostreams program_options)
|
find_package(Boost ${BOOST_REQUIRED_VERSION} REQUIRED COMPONENTS chrono iostreams program_options)
|
||||||
|
|
||||||
if(APPLE)
|
if(APPLE)
|
||||||
@ -210,14 +228,40 @@ endif()
|
|||||||
|
|
||||||
include(${CMAKE_SOURCE_DIR}/cmake/libdwarfs.cmake)
|
include(${CMAKE_SOURCE_DIR}/cmake/libdwarfs.cmake)
|
||||||
|
|
||||||
|
set(DWARFS_HAVE_LIBZSTD ON)
|
||||||
|
set(DWARFS_USE_JEMALLOC ${USE_JEMALLOC})
|
||||||
|
set(DWARFS_HAVE_RICEPP ${ENABLE_RICEPP})
|
||||||
|
set(DWARFS_HAVE_LIBMAGIC ${LIBMAGIC_FOUND})
|
||||||
|
set(DWARFS_HAVE_LIBLZ4 ${LIBLZ4_FOUND})
|
||||||
|
set(DWARFS_HAVE_LIBLZMA ${LIBLZMA_FOUND})
|
||||||
|
set(DWARFS_HAVE_LIBBROTLI ${LIBBROTLIDEC_FOUND} AND ${LIBBROTLIENC_FOUND})
|
||||||
|
set(DWARFS_HAVE_FLAC ${FLAC_FOUND})
|
||||||
|
set(DWARFS_BUILTIN_MANPAGE ${WITH_MAN_OPTION})
|
||||||
|
set(DWARFS_PERFMON_ENABLED ${ENABLE_PERFMON})
|
||||||
|
set(DWARFS_STACKTRACE_ENABLED ${ENABLE_STACKTRACE})
|
||||||
|
|
||||||
|
configure_file(cmake/config.h.in include/dwarfs/config.h @ONLY)
|
||||||
|
else()
|
||||||
|
find_package(dwarfs ${PRJ_VERSION_MAJOR}.${PRJ_VERSION_MINOR}.${PRJ_VERSION_PATCH} EXACT REQUIRED CONFIG)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(WITH_TOOLS)
|
||||||
foreach(tgt mkdwarfs dwarfsck dwarfsextract)
|
foreach(tgt mkdwarfs dwarfsck dwarfsextract)
|
||||||
add_library(${tgt}_main OBJECT tools/src/${tgt}_main.cpp)
|
add_library(${tgt}_main OBJECT tools/src/${tgt}_main.cpp)
|
||||||
|
|
||||||
add_executable(${tgt} tools/src/${tgt}.cpp)
|
add_executable(${tgt} tools/src/${tgt}.cpp)
|
||||||
|
|
||||||
|
target_link_libraries(${tgt} PRIVATE ${tgt}_main)
|
||||||
|
|
||||||
|
list(APPEND MAIN_TARGETS ${tgt}_main)
|
||||||
list(APPEND BINARY_TARGETS ${tgt})
|
list(APPEND BINARY_TARGETS ${tgt})
|
||||||
|
|
||||||
|
install(TARGETS ${tgt} RUNTIME DESTINATION bin)
|
||||||
endforeach()
|
endforeach()
|
||||||
|
|
||||||
|
target_link_libraries(mkdwarfs_main PRIVATE dwarfs_reader dwarfs_writer dwarfs_rewrite)
|
||||||
|
target_link_libraries(dwarfsck_main PRIVATE dwarfs_reader)
|
||||||
|
target_link_libraries(dwarfsextract_main PRIVATE dwarfs_extractor)
|
||||||
|
|
||||||
if(WITH_UNIVERSAL_BINARY)
|
if(WITH_UNIVERSAL_BINARY)
|
||||||
add_executable(dwarfsuniversal tools/src/universal.cpp)
|
add_executable(dwarfsuniversal tools/src/universal.cpp)
|
||||||
list(APPEND BINARY_TARGETS dwarfsuniversal)
|
list(APPEND BINARY_TARGETS dwarfsuniversal)
|
||||||
@ -228,16 +272,14 @@ if(WITH_UNIVERSAL_BINARY)
|
|||||||
RUNTIME_OUTPUT_DIRECTORY universal
|
RUNTIME_OUTPUT_DIRECTORY universal
|
||||||
OUTPUT_NAME dwarfs-universal)
|
OUTPUT_NAME dwarfs-universal)
|
||||||
endif()
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
if(WITH_PXATTR)
|
if(WITH_PXATTR)
|
||||||
add_executable(pxattr tools/src/pxattr.cpp)
|
add_executable(pxattr tools/src/pxattr.cpp)
|
||||||
list(APPEND BINARY_TARGETS pxattr)
|
list(APPEND BINARY_TARGETS pxattr)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
install(TARGETS mkdwarfs dwarfsck dwarfsextract RUNTIME DESTINATION bin)
|
if(WITH_FUSE_DRIVER)
|
||||||
|
|
||||||
list(APPEND MAIN_TARGETS mkdwarfs_main dwarfsck_main dwarfsextract_main)
|
|
||||||
|
|
||||||
include(${CMAKE_SOURCE_DIR}/cmake/need_fuse.cmake)
|
include(${CMAKE_SOURCE_DIR}/cmake/need_fuse.cmake)
|
||||||
|
|
||||||
if(FUSE3_FOUND OR WINFSP OR APPLE)
|
if(FUSE3_FOUND OR WINFSP OR APPLE)
|
||||||
@ -279,6 +321,7 @@ if(FUSE3_FOUND OR WINFSP OR APPLE)
|
|||||||
endif()
|
endif()
|
||||||
list(APPEND BINARY_TARGETS dwarfs-bin)
|
list(APPEND BINARY_TARGETS dwarfs-bin)
|
||||||
list(APPEND MAIN_TARGETS dwarfs_main)
|
list(APPEND MAIN_TARGETS dwarfs_main)
|
||||||
|
target_link_libraries(dwarfs_main PRIVATE dwarfs_reader)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(FUSE_FOUND AND (NOT APPLE) AND (WITH_LEGACY_FUSE OR NOT FUSE3_FOUND))
|
if(FUSE_FOUND AND (NOT APPLE) AND (WITH_LEGACY_FUSE OR NOT FUSE3_FOUND))
|
||||||
@ -300,6 +343,8 @@ if(FUSE_FOUND AND (NOT APPLE) AND (WITH_LEGACY_FUSE OR NOT FUSE3_FOUND))
|
|||||||
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/mount.dwarfs2 DESTINATION sbin)
|
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/mount.dwarfs2 DESTINATION sbin)
|
||||||
list(APPEND BINARY_TARGETS dwarfs2-bin)
|
list(APPEND BINARY_TARGETS dwarfs2-bin)
|
||||||
list(APPEND MAIN_TARGETS dwarfs2_main)
|
list(APPEND MAIN_TARGETS dwarfs2_main)
|
||||||
|
target_link_libraries(dwarfs2_main PRIVATE dwarfs_reader)
|
||||||
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(WITH_MAN_OPTION)
|
if(WITH_MAN_OPTION)
|
||||||
@ -344,9 +389,9 @@ if(WITH_TESTS OR WITH_BENCHMARKS OR WITH_FUZZ)
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(WITH_TESTS)
|
if(WITH_TESTS)
|
||||||
|
if(WITH_LIBDWARFS)
|
||||||
list(APPEND DWARFS_TESTS
|
list(APPEND DWARFS_TESTS
|
||||||
badfs_test
|
badfs_test
|
||||||
block_cache_test
|
|
||||||
block_merger_test
|
block_merger_test
|
||||||
checksum_test
|
checksum_test
|
||||||
chmod_transformer_test
|
chmod_transformer_test
|
||||||
@ -368,22 +413,36 @@ if(WITH_TESTS)
|
|||||||
pcmaudio_categorizer_test
|
pcmaudio_categorizer_test
|
||||||
speedometer_test
|
speedometer_test
|
||||||
terminal_test
|
terminal_test
|
||||||
tool_main_test
|
|
||||||
tools_test
|
|
||||||
utils_test
|
utils_test
|
||||||
file_utils_test
|
file_utils_test
|
||||||
worker_group_test
|
worker_group_test
|
||||||
)
|
)
|
||||||
|
|
||||||
if(WITH_MAN_OPTION)
|
if(FLAC_FOUND)
|
||||||
|
list(APPEND DWARFS_TESTS
|
||||||
|
flac_compressor_test
|
||||||
|
)
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(WITH_TOOLS)
|
||||||
|
list(APPEND DWARFS_TESTS
|
||||||
|
block_cache_test
|
||||||
|
tool_main_test
|
||||||
|
)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(WITH_TOOLS OR WITH_FUSE_DRIVER)
|
||||||
|
list(APPEND DWARFS_TESTS
|
||||||
|
tools_test
|
||||||
|
)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(WITH_TOOLS AND WITH_MAN_OPTION)
|
||||||
list(APPEND DWARFS_TESTS manpage_test)
|
list(APPEND DWARFS_TESTS manpage_test)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(FLAC_FOUND)
|
if(WITH_LIBDWARFS AND ENABLE_RICEPP)
|
||||||
list(APPEND DWARFS_TESTS flac_compressor_test)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(ENABLE_RICEPP)
|
|
||||||
list(APPEND DWARFS_TESTS ricepp_compressor_test)
|
list(APPEND DWARFS_TESTS ricepp_compressor_test)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
@ -403,23 +462,28 @@ if(WITH_TESTS)
|
|||||||
$<$<BOOL:${WITH_UNIVERSAL_BINARY}>:DWARFS_HAVE_UNIVERSAL_BINARY>
|
$<$<BOOL:${WITH_UNIVERSAL_BINARY}>:DWARFS_HAVE_UNIVERSAL_BINARY>
|
||||||
)
|
)
|
||||||
|
|
||||||
target_link_libraries(tool_main_test PRIVATE
|
if(TARGET tool_main_test)
|
||||||
mkdwarfs_main dwarfsck_main dwarfsextract_main)
|
target_link_libraries(tool_main_test PRIVATE mkdwarfs_main dwarfsck_main dwarfsextract_main)
|
||||||
|
endif()
|
||||||
|
|
||||||
if(TARGET manpage_test)
|
if(TARGET manpage_test)
|
||||||
target_link_libraries(manpage_test PRIVATE mkdwarfs_main dwarfsck_main dwarfsextract_main)
|
target_link_libraries(manpage_test PRIVATE mkdwarfs_main dwarfsck_main dwarfsextract_main)
|
||||||
if (TARGET dwarfs_main)
|
if(WITH_FUSE_DRIVER)
|
||||||
target_link_libraries(manpage_test PRIVATE dwarfs_main)
|
target_link_libraries(manpage_test PRIVATE dwarfs_main)
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
if(TARGET block_cache_test)
|
||||||
target_link_libraries(block_cache_test PRIVATE mkdwarfs_main)
|
target_link_libraries(block_cache_test PRIVATE mkdwarfs_main)
|
||||||
|
endif()
|
||||||
|
|
||||||
foreach(tgt fits_categorizer_test
|
foreach(tgt fits_categorizer_test
|
||||||
incompressible_categorizer_test
|
incompressible_categorizer_test
|
||||||
pcmaudio_categorizer_test
|
pcmaudio_categorizer_test
|
||||||
tool_main_test)
|
tool_main_test)
|
||||||
|
if(TARGET ${tgt})
|
||||||
target_link_libraries(${tgt} PRIVATE dwarfs_writer)
|
target_link_libraries(${tgt} PRIVATE dwarfs_writer)
|
||||||
|
endif()
|
||||||
endforeach()
|
endforeach()
|
||||||
|
|
||||||
foreach(tgt ${TEST_TARGETS})
|
foreach(tgt ${TEST_TARGETS})
|
||||||
@ -430,15 +494,17 @@ if(WITH_TESTS)
|
|||||||
endforeach()
|
endforeach()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(WITH_BENCHMARKS)
|
if(WITH_LIBDWARFS AND WITH_BENCHMARKS)
|
||||||
find_package(benchmark 1.8)
|
find_package(benchmark 1.8)
|
||||||
if(benchmark_FOUND)
|
if(benchmark_FOUND)
|
||||||
add_executable(dwarfs_benchmark test/dwarfs_benchmark.cpp)
|
add_executable(dwarfs_benchmark test/dwarfs_benchmark.cpp)
|
||||||
target_link_libraries(dwarfs_benchmark PRIVATE dwarfs_test_helpers benchmark::benchmark)
|
target_link_libraries(dwarfs_benchmark PRIVATE dwarfs_test_helpers benchmark::benchmark)
|
||||||
|
target_link_libraries(dwarfs_benchmark PRIVATE dwarfs_reader dwarfs_writer)
|
||||||
list(APPEND BINARY_TARGETS dwarfs_benchmark)
|
list(APPEND BINARY_TARGETS dwarfs_benchmark)
|
||||||
|
|
||||||
add_executable(multiversioning_benchmark test/multiversioning_benchmark.cpp)
|
add_executable(multiversioning_benchmark test/multiversioning_benchmark.cpp)
|
||||||
target_link_libraries(multiversioning_benchmark PRIVATE benchmark::benchmark)
|
target_link_libraries(multiversioning_benchmark PRIVATE benchmark::benchmark)
|
||||||
|
target_link_libraries(multiversioning_benchmark PRIVATE dwarfs_writer)
|
||||||
list(APPEND BINARY_TARGETS multiversioning_benchmark)
|
list(APPEND BINARY_TARGETS multiversioning_benchmark)
|
||||||
|
|
||||||
add_executable(converter_benchmark test/converter_benchmark.cpp)
|
add_executable(converter_benchmark test/converter_benchmark.cpp)
|
||||||
@ -449,10 +515,11 @@ if(WITH_BENCHMARKS)
|
|||||||
# TODO: migrate to benchmark?
|
# TODO: migrate to benchmark?
|
||||||
add_executable(segmenter_benchmark test/segmenter_benchmark.cpp)
|
add_executable(segmenter_benchmark test/segmenter_benchmark.cpp)
|
||||||
target_link_libraries(segmenter_benchmark PRIVATE dwarfs_follybenchmark_lite dwarfs_test_helpers)
|
target_link_libraries(segmenter_benchmark PRIVATE dwarfs_follybenchmark_lite dwarfs_test_helpers)
|
||||||
|
target_link_libraries(segmenter_benchmark PRIVATE dwarfs_writer)
|
||||||
list(APPEND BINARY_TARGETS segmenter_benchmark)
|
list(APPEND BINARY_TARGETS segmenter_benchmark)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(WITH_FUZZ)
|
if(WITH_LIBDWARFS AND WITH_FUZZ)
|
||||||
add_executable(fuzz_categorizers test/fuzz_categorizers.cpp)
|
add_executable(fuzz_categorizers test/fuzz_categorizers.cpp)
|
||||||
target_link_libraries(fuzz_categorizers PRIVATE dwarfs_writer)
|
target_link_libraries(fuzz_categorizers PRIVATE dwarfs_writer)
|
||||||
list(APPEND BINARY_TARGETS fuzz_categorizers)
|
list(APPEND BINARY_TARGETS fuzz_categorizers)
|
||||||
@ -462,19 +529,6 @@ if(WITH_FUZZ)
|
|||||||
list(APPEND BINARY_TARGETS fuzz_mkdwarfs)
|
list(APPEND BINARY_TARGETS fuzz_mkdwarfs)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
set(DWARFS_HAVE_LIBZSTD ON)
|
|
||||||
set(DWARFS_USE_JEMALLOC ${USE_JEMALLOC})
|
|
||||||
set(DWARFS_HAVE_RICEPP ${ENABLE_RICEPP})
|
|
||||||
set(DWARFS_HAVE_LIBMAGIC ${LIBMAGIC_FOUND})
|
|
||||||
set(DWARFS_HAVE_LIBLZ4 ${LIBLZ4_FOUND})
|
|
||||||
set(DWARFS_HAVE_LIBLZMA ${LIBLZMA_FOUND})
|
|
||||||
set(DWARFS_HAVE_LIBBROTLI ${LIBBROTLIDEC_FOUND} AND ${LIBBROTLIENC_FOUND})
|
|
||||||
set(DWARFS_HAVE_FLAC ${FLAC_FOUND})
|
|
||||||
set(DWARFS_BUILTIN_MANPAGE ${WITH_MAN_OPTION})
|
|
||||||
set(DWARFS_PERFMON_ENABLED ${ENABLE_PERFMON})
|
|
||||||
set(DWARFS_STACKTRACE_ENABLED ${ENABLE_STACKTRACE})
|
|
||||||
configure_file(cmake/config.h.in include/dwarfs/config.h @ONLY)
|
|
||||||
|
|
||||||
foreach(tgt ${BINARY_TARGETS} ${TEST_TARGETS} ${MAIN_TARGETS})
|
foreach(tgt ${BINARY_TARGETS} ${TEST_TARGETS} ${MAIN_TARGETS})
|
||||||
target_include_directories(${tgt} PRIVATE $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/tools/include>)
|
target_include_directories(${tgt} PRIVATE $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/tools/include>)
|
||||||
endforeach()
|
endforeach()
|
||||||
@ -484,6 +538,7 @@ foreach(tgt ${LIBDWARFS_TARGETS} ${BINARY_TARGETS} ${TEST_TARGETS} ${MAIN_TARGET
|
|||||||
|
|
||||||
target_link_libraries(${tgt} PUBLIC Boost::boost)
|
target_link_libraries(${tgt} PUBLIC Boost::boost)
|
||||||
|
|
||||||
|
# TODO: need to get USE_JEMALLOC and others from imported libdwarfs
|
||||||
if(USE_JEMALLOC)
|
if(USE_JEMALLOC)
|
||||||
target_link_libraries(${tgt} PRIVATE PkgConfig::JEMALLOC)
|
target_link_libraries(${tgt} PRIVATE PkgConfig::JEMALLOC)
|
||||||
endif(USE_JEMALLOC)
|
endif(USE_JEMALLOC)
|
||||||
@ -514,8 +569,6 @@ foreach(tgt ${LIBDWARFS_TARGETS} ${BINARY_TARGETS} ${TEST_TARGETS} ${MAIN_TARGET
|
|||||||
set_property(TARGET ${tgt} PROPERTY CXX_STANDARD_REQUIRED ON)
|
set_property(TARGET ${tgt} PROPERTY CXX_STANDARD_REQUIRED ON)
|
||||||
set_property(TARGET ${tgt} PROPERTY CXX_EXTENSIONS OFF)
|
set_property(TARGET ${tgt} PROPERTY CXX_EXTENSIONS OFF)
|
||||||
|
|
||||||
add_dependencies(${tgt} dwarfs_metadata_thrift dwarfs_history_thrift)
|
|
||||||
|
|
||||||
if(ENABLE_COVERAGE)
|
if(ENABLE_COVERAGE)
|
||||||
if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
|
if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
|
||||||
target_compile_options(${tgt} PRIVATE --coverage -fno-omit-frame-pointer)
|
target_compile_options(${tgt} PRIVATE --coverage -fno-omit-frame-pointer)
|
||||||
@ -570,33 +623,6 @@ foreach(tgt ${MAIN_TARGETS} ${BINARY_TARGETS} ${TEST_TARGETS})
|
|||||||
target_link_libraries(${tgt} PRIVATE dwarfs_tool)
|
target_link_libraries(${tgt} PRIVATE dwarfs_tool)
|
||||||
endforeach()
|
endforeach()
|
||||||
|
|
||||||
target_link_libraries(mkdwarfs_main PRIVATE dwarfs_reader dwarfs_writer dwarfs_rewrite)
|
|
||||||
target_link_libraries(dwarfsck_main PRIVATE dwarfs_reader)
|
|
||||||
target_link_libraries(dwarfsextract_main PRIVATE dwarfs_extractor)
|
|
||||||
|
|
||||||
target_link_libraries(mkdwarfs PRIVATE mkdwarfs_main)
|
|
||||||
target_link_libraries(dwarfsck PRIVATE dwarfsck_main)
|
|
||||||
target_link_libraries(dwarfsextract PRIVATE dwarfsextract_main)
|
|
||||||
|
|
||||||
if(TARGET dwarfsuniversal)
|
|
||||||
target_link_libraries(dwarfsuniversal PRIVATE dwarfs_writer dwarfs_extractor)
|
|
||||||
endif()
|
|
||||||
if(TARGET dwarfs_main)
|
|
||||||
target_link_libraries(dwarfs_main PRIVATE dwarfs_reader)
|
|
||||||
endif()
|
|
||||||
if(TARGET dwarfs2_main)
|
|
||||||
target_link_libraries(dwarfs2_main PRIVATE dwarfs_reader)
|
|
||||||
endif()
|
|
||||||
if(TARGET dwarfs_benchmark)
|
|
||||||
target_link_libraries(dwarfs_benchmark PRIVATE dwarfs_reader dwarfs_writer)
|
|
||||||
endif()
|
|
||||||
if(TARGET multiversioning_benchmark)
|
|
||||||
target_link_libraries(multiversioning_benchmark PRIVATE dwarfs_writer)
|
|
||||||
endif()
|
|
||||||
if(TARGET segmenter_benchmark)
|
|
||||||
target_link_libraries(segmenter_benchmark PRIVATE dwarfs_writer)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
foreach(tgt ${TEST_TARGETS})
|
foreach(tgt ${TEST_TARGETS})
|
||||||
target_link_libraries(${tgt} PRIVATE dwarfs_writer dwarfs_rewrite dwarfs_extractor)
|
target_link_libraries(${tgt} PRIVATE dwarfs_writer dwarfs_rewrite dwarfs_extractor)
|
||||||
endforeach()
|
endforeach()
|
||||||
@ -823,10 +849,8 @@ if(STATIC_BUILD_DO_NOT_USE OR WIN32)
|
|||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(DWARFS_GIT_BUILD)
|
|
||||||
configure_file("${PROJECT_SOURCE_DIR}/cmake/dwarfs_install.cmake.in" dwarfs_install.cmake @ONLY)
|
configure_file("${PROJECT_SOURCE_DIR}/cmake/dwarfs_install.cmake.in" dwarfs_install.cmake @ONLY)
|
||||||
set(CPACK_INSTALL_SCRIPT "${CMAKE_CURRENT_BINARY_DIR}/dwarfs_install.cmake")
|
set(CPACK_INSTALL_SCRIPT "${CMAKE_CURRENT_BINARY_DIR}/dwarfs_install.cmake")
|
||||||
endif()
|
|
||||||
|
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
# set(CPACK_GENERATOR "NSIS;ZIP;7Z")
|
# set(CPACK_GENERATOR "NSIS;ZIP;7Z")
|
||||||
|
@ -7,4 +7,4 @@ IF "%build_mode%"=="" (
|
|||||||
SET build_mode=Release
|
SET build_mode=Release
|
||||||
)
|
)
|
||||||
|
|
||||||
cmake .. -GNinja -DCMAKE_BUILD_TYPE=%build_mode% -DWITH_TESTS=ON -DWITH_BENCHMARKS=ON -DWITH_PXATTR=ON -DCMAKE_TOOLCHAIN_FILE=%USERPROFILE%\git\vcpkg\scripts\buildsystems\vcpkg.cmake -DVCPKG_TARGET_TRIPLET=x64-windows-static -DVCPKG_INSTALLED_DIR=%USERPROFILE%\git\@vcpkg-install-dwarfs
|
cmake .. -GNinja -DCMAKE_BUILD_TYPE=%build_mode% -DWITH_UNIVERSAL_BINARY=ON -DWITH_TESTS=ON -DWITH_BENCHMARKS=ON -DWITH_PXATTR=ON -DCMAKE_TOOLCHAIN_FILE=%USERPROFILE%\git\vcpkg\scripts\buildsystems\vcpkg.cmake -DVCPKG_TARGET_TRIPLET=x64-windows-static -DVCPKG_INSTALLED_DIR=%USERPROFILE%\git\@vcpkg-install-dwarfs
|
||||||
|
Loading…
x
Reference in New Issue
Block a user