From 930293a899825ae552370a060dd04117ebc5fdae Mon Sep 17 00:00:00 2001 From: James Le Cuirot Date: Thu, 7 Jul 2022 21:52:54 +0100 Subject: [PATCH] rbutil: Add USE_SYSTEM_QUAZIP option to use system-wide QuaZIP QuaZIP is included in several major Linux distributions and packaging policies strongly oppose bundling of libraries. Change-Id: I8d454784dc4b244f4dd8aa18deb3350a29aaab77 --- docs/CREDITS | 1 + utils/rbutilqt/CMakeLists.txt | 65 ++++++++++++++++++--------------- utils/rbutilqt/base/ziputil.cpp | 6 +-- utils/rbutilqt/base/ziputil.h | 6 +-- 4 files changed, 43 insertions(+), 35 deletions(-) diff --git a/docs/CREDITS b/docs/CREDITS index 6f7c23fc7e..3a6fcb83b9 100644 --- a/docs/CREDITS +++ b/docs/CREDITS @@ -710,6 +710,7 @@ Marc Aarts Fabrice Bellard Selami Dinçer Matej Golian +James Le Cuirot The libmad team The wavpack team diff --git a/utils/rbutilqt/CMakeLists.txt b/utils/rbutilqt/CMakeLists.txt index 41954cb9ee..350790109b 100644 --- a/utils/rbutilqt/CMakeLists.txt +++ b/utils/rbutilqt/CMakeLists.txt @@ -255,9 +255,43 @@ if(APPLE) ${CMAKE_CURRENT_LIST_DIR}/base/ttscarbon.h) endif() +option(USE_SYSTEM_QUAZIP "Use system QuaZIP library" OFF) +if(USE_SYSTEM_QUAZIP) + find_package(QuaZip-Qt5 REQUIRED) + set(QUAZIP_LIBRARY QuaZip::QuaZip) +else() + # TODO: Upstream has cmake support, use that instead. + add_library(quazip + ${CMAKE_CURRENT_LIST_DIR}/quazip/ioapi.h + ${CMAKE_CURRENT_LIST_DIR}/quazip/minizip_crypt.h + ${CMAKE_CURRENT_LIST_DIR}/quazip/qioapi.cpp + ${CMAKE_CURRENT_LIST_DIR}/quazip/quazip.cpp + ${CMAKE_CURRENT_LIST_DIR}/quazip/quazipfile.cpp + ${CMAKE_CURRENT_LIST_DIR}/quazip/quazipfile.h + ${CMAKE_CURRENT_LIST_DIR}/quazip/quazipfileinfo.cpp + ${CMAKE_CURRENT_LIST_DIR}/quazip/quazipfileinfo.h + ${CMAKE_CURRENT_LIST_DIR}/quazip/quazip_global.h + ${CMAKE_CURRENT_LIST_DIR}/quazip/quazip.h + ${CMAKE_CURRENT_LIST_DIR}/quazip/quazipnewinfo.cpp + ${CMAKE_CURRENT_LIST_DIR}/quazip/quazipnewinfo.h + ${CMAKE_CURRENT_LIST_DIR}/quazip/unzip.c + ${CMAKE_CURRENT_LIST_DIR}/quazip/unzip.h + ${CMAKE_CURRENT_LIST_DIR}/quazip/zip.c + ${CMAKE_CURRENT_LIST_DIR}/quazip/zip.h + ) + target_include_directories(quazip PUBLIC ${CMAKE_CURRENT_LIST_DIR}/quazip) + target_link_libraries(quazip z Qt${QT_VERSION_MAJOR}::Core) + if(QT_VERSION_MAJOR EQUAL 6) + target_link_libraries(quazip Qt${QT_VERSION_MAJOR}::Core5Compat) + endif() + target_compile_definitions(quazip PUBLIC QUAZIP_STATIC) + set_property(TARGET quazip PROPERTY AUTOMOC ON) + set(QUAZIP_LIBRARY quazip) +endif() + target_link_libraries(rbbase - cutelogger quazip mspack bspatch rbspeex voicefont - sansapatcher ipodpatcher chinachippatcher + cutelogger ${QUAZIP_LIBRARY} mspack bspatch rbspeex + voicefont sansapatcher ipodpatcher chinachippatcher mkamsboot mkimxboot mkmpioboot mktccboot mks5lboot Qt${QT_VERSION_MAJOR}::Core Qt${QT_VERSION_MAJOR}::Network) target_include_directories(rbbase PUBLIC ${CMAKE_CURRENT_LIST_DIR}/base) @@ -298,33 +332,6 @@ target_link_libraries(cutelogger PUBLIC Qt${QT_VERSION_MAJOR}::Core) target_compile_definitions(cutelogger PUBLIC CUTELOGGER_STATIC) set_property(TARGET cutelogger PROPERTY AUTOMOC ON) -# TODO: Upstream has cmake support, use that instead. -add_library(quazip - ${CMAKE_CURRENT_LIST_DIR}/quazip/ioapi.h - ${CMAKE_CURRENT_LIST_DIR}/quazip/minizip_crypt.h - ${CMAKE_CURRENT_LIST_DIR}/quazip/qioapi.cpp - ${CMAKE_CURRENT_LIST_DIR}/quazip/quazip.cpp - ${CMAKE_CURRENT_LIST_DIR}/quazip/quazipfile.cpp - ${CMAKE_CURRENT_LIST_DIR}/quazip/quazipfile.h - ${CMAKE_CURRENT_LIST_DIR}/quazip/quazipfileinfo.cpp - ${CMAKE_CURRENT_LIST_DIR}/quazip/quazipfileinfo.h - ${CMAKE_CURRENT_LIST_DIR}/quazip/quazip_global.h - ${CMAKE_CURRENT_LIST_DIR}/quazip/quazip.h - ${CMAKE_CURRENT_LIST_DIR}/quazip/quazipnewinfo.cpp - ${CMAKE_CURRENT_LIST_DIR}/quazip/quazipnewinfo.h - ${CMAKE_CURRENT_LIST_DIR}/quazip/unzip.c - ${CMAKE_CURRENT_LIST_DIR}/quazip/unzip.h - ${CMAKE_CURRENT_LIST_DIR}/quazip/zip.c - ${CMAKE_CURRENT_LIST_DIR}/quazip/zip.h - ) -target_include_directories(quazip PUBLIC ${CMAKE_CURRENT_LIST_DIR}/quazip) -target_link_libraries(quazip z Qt${QT_VERSION_MAJOR}::Core) -if(QT_VERSION_MAJOR EQUAL 6) - target_link_libraries(quazip Qt${QT_VERSION_MAJOR}::Core5Compat) -endif() -target_compile_definitions(quazip PUBLIC QUAZIP_STATIC) -set_property(TARGET quazip PROPERTY AUTOMOC ON) - add_library(mspack #mspack/cabc.c mspack/cabd.c diff --git a/utils/rbutilqt/base/ziputil.cpp b/utils/rbutilqt/base/ziputil.cpp index e285446711..877a861253 100644 --- a/utils/rbutilqt/base/ziputil.cpp +++ b/utils/rbutilqt/base/ziputil.cpp @@ -22,9 +22,9 @@ #include "progressloglevels.h" #include "Logger.h" -#include "quazip/quazip.h" -#include "quazip/quazipfile.h" -#include "quazip/quazipfileinfo.h" +#include +#include +#include ZipUtil::ZipUtil(QObject* parent) : ArchiveUtil(parent) diff --git a/utils/rbutilqt/base/ziputil.h b/utils/rbutilqt/base/ziputil.h index 73a87a820a..ea32ca42c3 100644 --- a/utils/rbutilqt/base/ziputil.h +++ b/utils/rbutilqt/base/ziputil.h @@ -21,9 +21,9 @@ #include #include "archiveutil.h" -#include "quazip/quazip.h" -#include "quazip/quazipfile.h" -#include "quazip/quazipfileinfo.h" +#include +#include +#include class ZipUtil : public ArchiveUtil { -- 2.35.1