From 4787d0d1661e76ac6869179a090273da95fca254 Mon Sep 17 00:00:00 2001 From: Thiago Macieira Date: Wed, 5 Mar 2025 11:23:52 -0800 Subject: [PATCH] Zip: Allow usage of system zlib (default if found) Set QTC_USE_SYSTEM_ZLIB to override the default (which is already done for our prebuilt binaries in build.py) Fixes: QTCREATORBUG-32584 Change-Id: Ib893ee9daa24a831308dfffd6e33d6e79aac2356 Reviewed-by: Eike Ziller Reviewed-by: Marcus Tillmanns --- src/libs/solutions/zip/CMakeLists.txt | 87 ++++++++++++++++----------- 1 file changed, 51 insertions(+), 36 deletions(-) diff --git a/src/libs/solutions/zip/CMakeLists.txt b/src/libs/solutions/zip/CMakeLists.txt index af0fca6d316..670dfb6d01f 100644 --- a/src/libs/solutions/zip/CMakeLists.txt +++ b/src/libs/solutions/zip/CMakeLists.txt @@ -6,42 +6,57 @@ add_qtc_library(Zip zipreader.h zipwriter.h zip_global.h +) + +find_package(ZLIB QUIET) +if(ZLIB_FOUND) + set(QTC_USE_SYSTEM_ZLIB_DEFAULT ON) +else() + set(QTC_USE_SYSTEM_ZLIB_DEFAULT OFF) +endif() +option(QTC_USE_SYSTEM_ZLIB "Use system zlib for Zip" ${QTC_USE_SYSTEM_ZLIB_DEFAULT}) + +if (QTC_USE_SYSTEM_ZLIB) + extend_qtc_library(Zip + FEATURE_INFO "System zlib" + DEPENDS ZLIB::ZLIB + ) +else() + extend_qtc_library(Zip + FEATURE_INFO "Integrated zlib" + SOURCES_PREFIX ${CMAKE_CURRENT_LIST_DIR}/../../3rdparty/zlib/src INCLUDES ${CMAKE_CURRENT_LIST_DIR}/../../3rdparty/zlib/src -) - -extend_qtc_library(Zip - SOURCES_PREFIX ${CMAKE_CURRENT_LIST_DIR}/../../3rdparty/zlib/src - SKIP_AUTOMOC - SOURCES - adler32.c - compress.c - crc32.c - crc32.h - deflate.c - deflate.h - gzclose.c - gzguts.h - gzlib.c - gzread.c - gzwrite.c - infback.c - inffast.c - inffast.h - inffixed.h - inflate.c - inflate.h - inftrees.c - inftrees.h - trees.c - trees.h - uncompr.c - zconf.h - zlib.h - zutil.c - zutil.h -) - -if(MSVC) - target_compile_options(Zip PUBLIC /wd4996) + SKIP_AUTOMOC + SOURCES + adler32.c + compress.c + crc32.c + crc32.h + deflate.c + deflate.h + gzclose.c + gzguts.h + gzlib.c + gzread.c + gzwrite.c + infback.c + inffast.c + inffast.h + inffixed.h + inflate.c + inflate.h + inftrees.c + inftrees.h + trees.c + trees.h + uncompr.c + zconf.h + zlib.h + zutil.c + zutil.h + ) + if(MSVC) + target_compile_options(Zip PUBLIC /wd4996) + endif() endif()