From 60ce3b15ecee1f015fe625737c7865cd9a26b6ea Mon Sep 17 00:00:00 2001 From: Marcus Holland-Moritz Date: Thu, 1 Aug 2024 15:30:04 +0200 Subject: [PATCH] refactor: clean up libarchive dependency --- CMakeLists.txt | 7 ++----- include/dwarfs/filesystem_extractor.h | 3 +++ src/dwarfs/filesystem_extractor.cpp | 6 ++++++ src/dwarfsextract_main.cpp | 4 +--- 4 files changed, 12 insertions(+), 8 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index e25dbbff..04dfb437 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1224,10 +1224,7 @@ if(LIBBROTLIDEC_FOUND AND LIBBROTLIENC_FOUND) target_link_libraries(dwarfs_common PRIVATE PkgConfig::LIBBROTLIDEC PkgConfig::LIBBROTLIENC) endif() -if(NOT STATIC_BUILD_DO_NOT_USE) - target_link_libraries(dwarfs_extractor PUBLIC PkgConfig::LIBARCHIVE) - # target_link_libraries(dwarfs_writer PkgConfig::LIBMAGIC) -endif(NOT STATIC_BUILD_DO_NOT_USE) +target_link_libraries(dwarfs_extractor PRIVATE PkgConfig::LIBARCHIVE) if(DWARFS_USE_EXCEPTION_TRACER) add_library( @@ -1257,7 +1254,7 @@ endforeach() target_link_libraries(mkdwarfs_main PRIVATE dwarfs_reader dwarfs_writer) target_link_libraries(dwarfsck_main PRIVATE dwarfs_reader) -target_link_libraries(dwarfsextract_main PRIVATE dwarfs_extractor PkgConfig::LIBARCHIVE) +target_link_libraries(dwarfsextract_main PRIVATE dwarfs_extractor) target_link_libraries(dwarfsbench_main PRIVATE dwarfs_extractor) target_link_libraries(mkdwarfs PRIVATE mkdwarfs_main) diff --git a/include/dwarfs/filesystem_extractor.h b/include/dwarfs/filesystem_extractor.h index 06181ed0..a5f2a01b 100644 --- a/include/dwarfs/filesystem_extractor.h +++ b/include/dwarfs/filesystem_extractor.h @@ -31,6 +31,7 @@ namespace dwarfs { class filesystem_v2; +class library_dependencies; class logger; class os_access; @@ -44,6 +45,8 @@ class filesystem_extractor { public: filesystem_extractor(logger& lgr, os_access const& os); + static void add_library_dependencies(library_dependencies& deps); + void open_archive(std::filesystem::path const& output, std::string const& format) { return impl_->open_archive(output, format); diff --git a/src/dwarfs/filesystem_extractor.cpp b/src/dwarfs/filesystem_extractor.cpp index 532dfc7e..91973eef 100644 --- a/src/dwarfs/filesystem_extractor.cpp +++ b/src/dwarfs/filesystem_extractor.cpp @@ -44,6 +44,7 @@ #include #include #include +#include #include #include #include @@ -430,4 +431,9 @@ filesystem_extractor::filesystem_extractor(logger& lgr, os_access const& os) internal::filesystem_extractor_, logger_policies>(lgr, os)) {} +void filesystem_extractor::add_library_dependencies( + library_dependencies& deps) { + deps.add_library(::archive_version_string()); +} + } // namespace dwarfs diff --git a/src/dwarfsextract_main.cpp b/src/dwarfsextract_main.cpp index 79adb581..afa15a6a 100644 --- a/src/dwarfsextract_main.cpp +++ b/src/dwarfsextract_main.cpp @@ -26,8 +26,6 @@ #include -#include - #include #include @@ -134,7 +132,7 @@ int dwarfsextract_main(int argc, sys_char** argv, iolayer const& iol) { if (vm.count("help") or !vm.count("input")) { library_dependencies deps; deps.add_common_libraries(); - deps.add_library(::archive_version_string()); + filesystem_extractor::add_library_dependencies(deps); iol.out << tool_header("dwarfsextract") << deps.as_string() << "\n\n" << usage << "\n"