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 1f461ac45b

Change-Id: Ie986f47e00fd0c16f2ba04d27f4258a20d61b260
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
This commit is contained in:
aavit 2012-11-26 15:23:20 +01:00 committed by The Qt Project
parent d7ab351cdd
commit ca35995c1b
3 changed files with 17 additions and 5 deletions

View File

@ -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

View File

@ -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")
}

View File

@ -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.