diff --git a/CMakeLists.txt b/CMakeLists.txt index b9076eff..7de00f6c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -446,8 +446,8 @@ if(ENABLE_RICEPP) add_subdirectory(ricepp) endif() -list(APPEND - LIBDWARFS_COMMON_SRC +add_library( + dwarfs_common src/dwarfs/block_compressor.cpp src/dwarfs/block_compressor_parser.cpp @@ -477,10 +477,22 @@ list(APPEND src/dwarfs/internal/string_table.cpp src/dwarfs/internal/wcwidth.c src/dwarfs/internal/worker_group.cpp + + src/dwarfs/xattr_$,win,posix>.cpp + + $/src/dwarfs/version.cpp + + src/dwarfs/compression/null.cpp + src/dwarfs/compression/zstd.cpp + $<$:src/dwarfs/compression/lzma.cpp> + $<$:src/dwarfs/compression/lz4.cpp> + $<$,$>:src/dwarfs/compression/brotli.cpp> + $<$:src/dwarfs/compression/flac.cpp> + $<$:src/dwarfs/compression/ricepp.cpp> ) -list(APPEND - LIBDWARFS_READER_SRC +add_library( + dwarfs_reader src/dwarfs/reader/block_range.cpp src/dwarfs/reader/filesystem_v2.cpp @@ -494,8 +506,8 @@ list(APPEND src/dwarfs/reader/internal/metadata_v2.cpp ) -list(APPEND - LIBDWARFS_WRITER_SRC +add_library( + dwarfs_writer src/dwarfs/writer/categorizer.cpp src/dwarfs/writer/category_parser.cpp @@ -530,17 +542,30 @@ list(APPEND src/dwarfs/writer/internal/scanner_progress.cpp src/dwarfs/writer/internal/similarity.cpp src/dwarfs/writer/internal/similarity_ordering.cpp + + # src/dwarfs/writer/categorizer/binary_categorizer.cpp + src/dwarfs/writer/categorizer/fits_categorizer.cpp + src/dwarfs/writer/categorizer/incompressible_categorizer.cpp + src/dwarfs/writer/categorizer/pcmaudio_categorizer.cpp + + # $<$:src/dwarfs/writer/categorizer/libmagic_categorizer.cpp> ) -list(APPEND LIBDWARFS_REWRITE_SRC +add_library( + dwarfs_rewrite + src/dwarfs/utility/rewrite_filesystem.cpp ) -list(APPEND LIBDWARFS_EXTRACTOR_SRC +add_library( + dwarfs_extractor + src/dwarfs/utility/filesystem_extractor.cpp ) -list(APPEND LIBDWARFS_TOOL_SRC +add_library( + dwarfs_tool OBJECT + src/dwarfs/tool/iolayer.cpp src/dwarfs/tool/main_adapter.cpp src/dwarfs/tool/safe_main.cpp @@ -548,71 +573,13 @@ list(APPEND LIBDWARFS_TOOL_SRC src/dwarfs/tool/tool.cpp ) -if(WIN32) - list(APPEND LIBDWARFS_COMMON_SRC src/dwarfs/xattr_win.cpp) -else() - list(APPEND LIBDWARFS_COMMON_SRC src/dwarfs/xattr_posix.cpp) -endif() - if(WITH_MAN_OPTION) - list(APPEND LIBDWARFS_TOOL_SRC + target_sources(dwarfs_tool PRIVATE src/dwarfs/tool/pager.cpp src/dwarfs/tool/render_manpage.cpp ) endif() -# Just an example for setting per file compile options -# set_source_files_properties(src/dwarfs/segmenter.cpp PROPERTIES COMPILE_FLAGS -march=tigerlake) - -if(DWARFS_GIT_BUILD) - list(APPEND LIBDWARFS_COMMON_SRC ${CMAKE_CURRENT_BINARY_DIR}/src/dwarfs/version.cpp) -else() - list(APPEND LIBDWARFS_COMMON_SRC src/dwarfs/version.cpp) -endif() - -list(APPEND LIBDWARFS_COMPRESSION_SRC src/dwarfs/compression/null.cpp) -list(APPEND LIBDWARFS_COMPRESSION_SRC src/dwarfs/compression/zstd.cpp) - -if(LIBLZMA_FOUND) - list(APPEND LIBDWARFS_COMPRESSION_SRC src/dwarfs/compression/lzma.cpp) -endif() - -if(LIBLZ4_FOUND) - list(APPEND LIBDWARFS_COMPRESSION_SRC src/dwarfs/compression/lz4.cpp) -endif() - -if(LIBBROTLIDEC_FOUND AND LIBBROTLIENC_FOUND) - list(APPEND LIBDWARFS_COMPRESSION_SRC src/dwarfs/compression/brotli.cpp) -endif() - -if(FLAC_FOUND) - list(APPEND LIBDWARFS_COMPRESSION_SRC src/dwarfs/compression/flac.cpp) -endif() - -list( - APPEND - LIBDWARFS_CATEGORIZER_SRC - # src/dwarfs/writer/categorizer/binary_categorizer.cpp - src/dwarfs/writer/categorizer/fits_categorizer.cpp - src/dwarfs/writer/categorizer/incompressible_categorizer.cpp - src/dwarfs/writer/categorizer/pcmaudio_categorizer.cpp -) - -if(ENABLE_RICEPP) - list(APPEND LIBDWARFS_COMPRESSION_SRC src/dwarfs/compression/ricepp.cpp) -endif() - -# if(LIBMAGIC_FOUND) -# list(APPEND LIBDWARFS_CATEGORIZER_SRC src/dwarfs/writer/categorizer/libmagic_categorizer.cpp) -# endif() - -add_library(dwarfs_common ${LIBDWARFS_COMMON_SRC} ${LIBDWARFS_COMPRESSION_SRC}) -add_library(dwarfs_reader ${LIBDWARFS_READER_SRC}) -add_library(dwarfs_writer ${LIBDWARFS_WRITER_SRC} ${LIBDWARFS_CATEGORIZER_SRC}) -add_library(dwarfs_extractor ${LIBDWARFS_EXTRACTOR_SRC}) -add_library(dwarfs_rewrite ${LIBDWARFS_REWRITE_SRC}) -add_library(dwarfs_tool OBJECT ${LIBDWARFS_TOOL_SRC}) - target_link_libraries(dwarfs_common PRIVATE dwarfs_folly_lite PkgConfig::LIBCRYPTO PkgConfig::XXHASH) target_link_libraries(dwarfs_reader PUBLIC dwarfs_common) target_link_libraries(dwarfs_writer PUBLIC dwarfs_common) @@ -1355,7 +1322,7 @@ if(STATIC_BUILD_DO_NOT_USE OR APPLE) if(APPLE) add_custom_target(strip COMMAND strip ${FILES_TO_STRIP}) else() - add_custom_target(strip COMMAND strip $,--strip-debug,--strip-all> ${FILES_TO_STRIP}) + add_custom_target(strip COMMAND strip $,--strip-debug,--strip-all> ${FILES_TO_STRIP}) endif() endif() endif() diff --git a/cmake/version.cmake b/cmake/version.cmake index a0a65123..1ddd5afd 100644 --- a/cmake/version.cmake +++ b/cmake/version.cmake @@ -58,13 +58,13 @@ if(((NOT "${REAL_SOURCE_DIR}" STREQUAL "${GIT_TOPLEVEL}") message(STATUS "PRJ_VERSION_FULL: ${PRJ_VERSION_FULL}") - set(DWARFS_GIT_BUILD OFF) + set(DWARFS_GIT_BUILD 0) else() if(EXISTS ${VERSION_SRC_FILE} OR EXISTS ${VERSION_HDR_FILE} OR EXISTS ${PKG_VERSION_FILE}) message(FATAL_ERROR "version files must not exist in git repository") endif() - set(DWARFS_GIT_BUILD ON) + set(DWARFS_GIT_BUILD 1) set(TMP_PKG_VERSION_FILE ${CMAKE_CURRENT_BINARY_DIR}/package_version.cmake) set(TMP_VERSION_SRC_FILE ${CMAKE_CURRENT_BINARY_DIR}/src/dwarfs/version.cpp)