From ca35995c1b46f1ede83cbaf64c3351336de7c4f2 Mon Sep 17 00:00:00 2001 From: aavit Date: Mon, 26 Nov 2012 15:23:20 +0100 Subject: [PATCH] Provide the bundled zlib headers for external access (Currently, the Qt5 windows packages lack the tiff and mng plugins from qtimageformats because of this issue.) If Qt is configured to use its bundled zlib, it is compiled into QtCore, and the public symbols are exported so that it can be used by other Qt libraries. However, after modularization, this did not work for libraries outside qtbase, since they did not have access to the headers of the bundled zlib. This commit fixes that. Ref. also 1f461ac45bfa8887261510a95fb33a346d68eaba Change-Id: Ie986f47e00fd0c16f2ba04d27f4258a20d61b260 Reviewed-by: Lars Knoll Reviewed-by: Oswald Buddenhagen --- src/corelib/tools/tools.pri | 11 +++++++++-- src/tools/bootstrap/bootstrap.pro | 1 + sync.profile | 10 +++++++--- 3 files changed, 17 insertions(+), 5 deletions(-) diff --git a/src/corelib/tools/tools.pri b/src/corelib/tools/tools.pri index f23968d5042..62eaf5a3bbb 100644 --- a/src/corelib/tools/tools.pri +++ b/src/corelib/tools/tools.pri @@ -109,8 +109,15 @@ else:win32:SOURCES += tools/qelapsedtimer_win.cpp tools/qlocale_win.cpp else:integrity:SOURCES += tools/qelapsedtimer_unix.cpp tools/qlocale_unix.cpp else:SOURCES += tools/qelapsedtimer_generic.cpp -contains(QT_CONFIG, zlib):include($$PWD/../../3rdparty/zlib.pri) -else:include($$PWD/../../3rdparty/zlib_dependency.pri) +contains(QT_CONFIG, zlib) { + include($$PWD/../../3rdparty/zlib.pri) + corelib_zlib_headers.files = $$PWD/../../3rdparty/zlib/zconf.h\ + $$PWD/../../3rdparty/zlib/zlib.h + corelib_zlib_headers.path = $$[QT_INSTALL_HEADERS]/QtZlib + INSTALLS += corelib_zlib_headers +} else { + include($$PWD/../../3rdparty/zlib_dependency.pri) +} contains(QT_CONFIG,icu) { SOURCES += tools/qlocale_icu.cpp diff --git a/src/tools/bootstrap/bootstrap.pro b/src/tools/bootstrap/bootstrap.pro index 1f630e3f680..f2f041b7047 100644 --- a/src/tools/bootstrap/bootstrap.pro +++ b/src/tools/bootstrap/bootstrap.pro @@ -160,6 +160,7 @@ QMAKE_EXTRA_TARGETS += freeze_target mod_component_base = $$dirname(_QMAKE_CACHE_) QMAKE_SYNCQT += -minimal -module QtCore -module QtDBus -module QtXml \ -mkspecsdir $$[QT_HOST_DATA/get]/mkspecs -outdir $$mod_component_base $$dirname(_QMAKE_CONF_) + contains(QT_CONFIG, zlib):QMAKE_SYNCQT += -module QtZlib !silent:message($$QMAKE_SYNCQT) system($$QMAKE_SYNCQT)|error("Failed to run: $$QMAKE_SYNCQT") } diff --git a/sync.profile b/sync.profile index 2c27d33e132..0e1608a748e 100644 --- a/sync.profile +++ b/sync.profile @@ -14,6 +14,7 @@ "KHR" => "$basedir/src/3rdparty/angle/include/KHR", "GLES2" => "$basedir/src/3rdparty/angle/include/GLES2", "EGL" => "$basedir/src/3rdparty/angle/include/EGL", + "QtZlib" => "$basedir/src/3rdparty/zlib", ); %moduleheaders = ( # restrict the module headers to those found in relative path ); @@ -71,9 +72,12 @@ @qpa_headers = ( qr/^qplatform/, qr/^qwindowsystem/ ); my @angle_headers = ('egl.h', 'eglext.h', 'eglplatform.h', 'gl2.h', 'gl2ext.h', 'gl2platform.h', 'ShaderLang.h', 'khrplatform.h'); -@ignore_for_include_check = ( "qsystemdetection.h", "qcompilerdetection.h", "qprocessordetection.h", @angle_headers); -@ignore_for_qt_begin_header_check = ( "qiconset.h", "qconfig.h", "qconfig-dist.h", "qconfig-large.h", "qconfig-medium.h", "qconfig-minimal.h", "qconfig-small.h", "qfeatures.h", "qt_windows.h", @angle_headers); -@ignore_for_qt_begin_namespace_check = ( "qconfig.h", "qconfig-dist.h", "qconfig-large.h", "qconfig-medium.h", "qconfig-minimal.h", "qconfig-small.h", "qfeatures.h", "qatomic_arch.h", "qatomic_windowsce.h", "qt_windows.h", "qatomic_macosx.h", @angle_headers); +my @internal_zlib_headers = ( "crc32.h", "deflate.h", "gzguts.h", "inffast.h", "inffixed.h", "inflate.h", "inftrees.h", "trees.h", "zutil.h" ); +my @zlib_headers = ( "zconf.h", "zlib.h" ); +@ignore_headers = ( @internal_zlib_headers ); +@ignore_for_include_check = ( "qsystemdetection.h", "qcompilerdetection.h", "qprocessordetection.h", @zlib_headers, @angle_headers); +@ignore_for_qt_begin_header_check = ( "qiconset.h", "qconfig.h", "qconfig-dist.h", "qconfig-large.h", "qconfig-medium.h", "qconfig-minimal.h", "qconfig-small.h", "qfeatures.h", "qt_windows.h", @zlib_headers, @angle_headers); +@ignore_for_qt_begin_namespace_check = ( "qconfig.h", "qconfig-dist.h", "qconfig-large.h", "qconfig-medium.h", "qconfig-minimal.h", "qconfig-small.h", "qfeatures.h", "qatomic_arch.h", "qatomic_windowsce.h", "qt_windows.h", "qatomic_macosx.h", @zlib_headers, @angle_headers); @ignore_for_qt_module_check = ( "$modules{QtCore}/arch", "$modules{QtCore}/global", "$modules{QtTest}", "$modules{QtDBus}" ); %inject_headers = ( "$basedir/src/corelib/global" => [ "qconfig.h" ] ); # Module dependencies.