summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarius Storm-Olsen <marius.storm-olsen@nokia.com>2011-04-20 13:57:51 -0500
committerOlivier Goffart <olivier.goffart@nokia.com>2011-05-02 15:30:08 +0200
commit1287361f64c6d429535e65c8dd248a94dfc633d1 (patch)
treeb53e7cc3d3efb44513c97f257316bba9e69abbef
parent2e8b6dcb4a6fa8ff42e967eb5dc27a461e721858 (diff)
Move private headers into versioned subdirectory
This will allow us to expose private headers in a controlled manner, and ensure that they are not used by accident. This also means that we internally will have to enable the private headers for the modules we wish to use in the project.
-rwxr-xr-xbin/syncqt22
-rwxr-xr-xconfigure4
-rw-r--r--demos/shared/shared.pro1
-rw-r--r--mkspecs/features/designer.prf2
-rw-r--r--mkspecs/features/help.prf2
-rw-r--r--mkspecs/features/qt.prf18
-rw-r--r--mkspecs/features/qt_functions.prf24
-rw-r--r--qmake/Makefile.unix2
-rw-r--r--qmake/Makefile.win324
-rw-r--r--qmake/Makefile.win32-g++4
-rw-r--r--qmake/Makefile.win32-g++-sh4
-rw-r--r--qmake/qmake.pro2
-rw-r--r--src/dbus/dbus.pro2
-rw-r--r--src/gui/gui.pro2
-rw-r--r--src/modules/qt_core.pri10
-rw-r--r--src/modules/qt_dbus.pri10
-rw-r--r--src/modules/qt_gui.pri10
-rw-r--r--src/modules/qt_network.pri10
-rw-r--r--src/modules/qt_opengl.pri10
-rw-r--r--src/modules/qt_openvg.pri10
-rw-r--r--src/modules/qt_sql.pri10
-rw-r--r--src/modules/qt_testlib.pri10
-rw-r--r--src/modules/qt_uilib.pri13
-rw-r--r--src/modules/qt_uitools.pri10
-rw-r--r--src/modules/qt_xml.pri10
-rw-r--r--src/network/network.pro2
-rw-r--r--src/opengl/opengl.pro2
-rw-r--r--src/plugins/accessible/widgets/widgets.pro1
-rw-r--r--src/plugins/bearer/connman/connman.pro2
-rw-r--r--src/plugins/bearer/generic/generic.pro2
-rw-r--r--src/plugins/bearer/nativewifi/nativewifi.pro2
-rw-r--r--src/plugins/bearer/networkmanager/networkmanager.pro2
-rw-r--r--src/plugins/graphicssystems/opengl/opengl.pro2
-rw-r--r--src/plugins/graphicssystems/trace/trace.pro2
-rw-r--r--src/plugins/imageformats/jpeg/jpeg.pro2
-rw-r--r--src/plugins/sqldrivers/qsqldriverbase.pri2
-rw-r--r--src/qbase.pri3
-rw-r--r--src/qt_install.pri8
-rw-r--r--src/sql/sql.pro2
-rw-r--r--src/tools/bootstrap/bootstrap.pri4
-rw-r--r--src/tools/bootstrap/bootstrap.pro6
-rw-r--r--src/xml/xml.pro2
-rw-r--r--tools/configure/configure.pro2
-rw-r--r--tools/configure/configureapp.cpp5
44 files changed, 164 insertions, 95 deletions
diff --git a/bin/syncqt b/bin/syncqt
index 8fa253a733..3d25ecc817 100755
--- a/bin/syncqt
+++ b/bin/syncqt
@@ -747,6 +747,21 @@ mkpath "$out_basedir/include/Qt", !$quiet;
foreach my $lib (@modules_to_sync) {
#iteration info
my $dir = $modules{$lib};
+ my $module_version = "";
+
+ if (-e "$modulepris{$lib}") {
+ my $content = fileContents($modulepris{$lib});
+ my @version_rows = grep(/QT\..*\.VERSION/, split('\n', $content));
+ if(@version_rows) {
+ # We only pick the first one, since each module need a separate .pri file
+ $module_version = $version_rows[0];
+ chomp $module_version;
+ $module_version =~ s/^\s*QT\..*\.VERSION\s*=\s*([^#]+).*$/$1/;
+ $module_version =~ s/\s+$//;
+ }
+ }
+ print "WARNING: Module $lib\'s pri missing QT.<module>.VERSION variable! Private headers not versioned!\n" if (!$module_version);
+
my $pathtoheaders = "";
$pathtoheaders = $moduleheaders{$lib} if ($moduleheaders{$lib});
@@ -766,6 +781,7 @@ foreach my $lib (@modules_to_sync) {
chomp $line;
if($line =~ /^ *QT *\+?= *([^\r\n]*)/) {
foreach(split(/ /, $1)) {
+ $_ =~ s/-private$//;
my $content = $mastercontent{$_};
$master_contents .= $content if ($content);
}
@@ -913,7 +929,11 @@ foreach my $lib (@modules_to_sync) {
}
}
} elsif ($create_private_headers) {
- @headers = ( "$out_basedir/include/$lib/private/$header" );
+ if ($module_version) {
+ @headers = ( "$out_basedir/include/$lib/$module_version/$lib/private/$header" );
+ } else {
+ @headers = ( "$out_basedir/include/$lib/private/$header" );
+ }
}
foreach(@headers) { #sync them
$header_copies++ if(syncHeader($_, $iheader, $copy_headers && !$shadow, $ts));
diff --git a/configure b/configure
index 60e1ec1216..293f642d35 100755
--- a/configure
+++ b/configure
@@ -4921,7 +4921,7 @@ if true; then ###[ '!' -f "$outpath/bin/qmake" ];
-e "s,@QT_INSTALL_BINS@,\$(INSTALL_ROOT)$QMAKE_BIN_DIR,g" \
-e "s,@QT_INSTALL_DATA@,\$(INSTALL_ROOT)$QMAKE_DATA_DIR,g" \
-e "s,@QMAKE_QTOBJS@,$EXTRA_OBJS,g" -e "s,@QMAKE_QTSRCS@,$EXTRA_SRCS,g" \
- -e "s,@QMAKESPEC@,$adjqmakespec,g" "$in_mkfile" >>"$mkfile"
+ -e "s,@QMAKESPEC@,$adjqmakespec,g" -e "s,@QT_VERSION@,$QT_VERSION,g" "$in_mkfile" >>"$mkfile"
if "$WHICH" makedepend >/dev/null 2>&1 && grep 'depend:' "$mkfile" >/dev/null 2>&1; then
(cd "$outpath/qmake" && "$MAKE" -f "$mkfile" depend) >/dev/null 2>&1
@@ -8500,7 +8500,7 @@ CACHEFILE="$outpath/.qmake.cache"
[ -f "$CACHEFILE.tmp" ] && rm -f "$CACHEFILE.tmp"
cat >>"$CACHEFILE.tmp" <<EOF
include(\$\$PWD/mkspecs/qmodule.pri)
-CONFIG += $QMAKE_CONFIG dylib create_prl link_prl depend_includepath fix_output_dirs QTDIR_build
+CONFIG += $QMAKE_CONFIG dylib create_prl link_prl depend_includepath fix_output_dirs no_private_qt_headers_warning QTDIR_build
QMAKE_ABSOLUTE_SOURCE_ROOT = \$\$QT_SOURCE_TREE
QMAKE_MOC_SRC = \$\$QT_BUILD_TREE/src/moc
diff --git a/demos/shared/shared.pro b/demos/shared/shared.pro
index b2a338e7f3..88d7fbedab 100644
--- a/demos/shared/shared.pro
+++ b/demos/shared/shared.pro
@@ -11,6 +11,7 @@ build_all:!build_pass {
CONFIG += release
}
TARGET = demo_shared
+QT += gui-private
SOURCES += \
arthurstyle.cpp\
diff --git a/mkspecs/features/designer.prf b/mkspecs/features/designer.prf
index fa40caab3f..63a7e76a34 100644
--- a/mkspecs/features/designer.prf
+++ b/mkspecs/features/designer.prf
@@ -4,4 +4,4 @@ qt:load(qt)
plugin:DEFINES += QDESIGNER_EXPORT_WIDGETS
-qtAddLibrary(QtDesigner)
+qtAddLibrary(QtDesigner, true)
diff --git a/mkspecs/features/help.prf b/mkspecs/features/help.prf
index d8ba8c3537..c96ecae8fe 100644
--- a/mkspecs/features/help.prf
+++ b/mkspecs/features/help.prf
@@ -1,3 +1,3 @@
QT += xml sql
-qtAddModule(help)
+qtAddModule(help, true)
diff --git a/mkspecs/features/qt.prf b/mkspecs/features/qt.prf
index 21fdd38e70..61e1d575bc 100644
--- a/mkspecs/features/qt.prf
+++ b/mkspecs/features/qt.prf
@@ -131,7 +131,16 @@ QMAKE_LIBDIR += $$QMAKE_LIBDIR_QT
QT = $$resolve_depends($$QT, "QT.")
QT_DEPENDS=
+unset(using_privates)
for(QTLIB, $$list($$lower($$unique(QT)))) {
+ # Figure out if we're wanting to use the private headers of a module
+ contains(QTLIB, .*-private) {
+ QTLIB ~= s/-private//
+ use_private = UsePrivate
+ } else {
+ use_private = NoPrivate
+ }
+
isEmpty(QT.$${QTLIB}.name) {
message("Warning: unknown QT module: $$QTLIB")
next()
@@ -141,14 +150,21 @@ for(QTLIB, $$list($$lower($$unique(QT)))) {
warning($$TARGET cannot have a QT of $$QTLIB)
next()
}
- qtAddModule($$QTLIB)
+ qtAddModule($$QTLIB, $$use_private)
QT_DEPENDS += $$eval(QT.$${QTLIB}.depends)
+ isEqual(use_private, UsePrivate):using_privates = true
}
# add include paths for all .depends, since module/application might need f.ex. template specializations etc.
QT_DEPENDS -= $$QT
for(QTLIB, $$list($$lower($$unique(QT_DEPENDS)))):INCLUDEPATH += $$INCLUDEPATH $$eval(QT.$${QTLIB}.includes)
+!isEmpty(using_privates):!no_private_qt_headers_warning:if(!debug_and_release|!build_pass) {
+ message("This project is using private headers and will therefore be tied to this specific Qt module build version.")
+ message("Running this project against other versions of the Qt modules may crash at any arbitrary point.")
+ message("This is not a bug, but a result of using Qt internals. You have been warned!")
+}
+
qt_compat {
!qt_compat_no_warning:QTDIR_build:warning(***USE of COMPAT inside of QTDIR!**) #just for us
INCLUDEPATH *= $$QMAKE_INCDIR_QT/Qt
diff --git a/mkspecs/features/qt_functions.prf b/mkspecs/features/qt_functions.prf
index b16c84864f..50a85d86ce 100644
--- a/mkspecs/features/qt_functions.prf
+++ b/mkspecs/features/qt_functions.prf
@@ -102,6 +102,16 @@ defineTest(qtAddModule) {
INCLUDEPATH -= $$MODULE_INCLUDES
INCLUDEPATH = $$MODULE_INCLUDES $$INCLUDEPATH
+ isEqual(2, UsePrivate) { # Tests function parameter 2 ($$2) being equal to 'UsePrivate'
+ # This adds both
+ # <module privates include path>/
+ # and <module privates include path>/<module name>
+ # since we have code using both #include <QtCore/private/foo> and #include <private/foo>
+ # Both need to be supported with the new private includes structure
+ MODULE_INCLUDES_PRIVATES = $$eval(QT.$${1}.private_includes)
+ INCLUDEPATH -= $$MODULE_INCLUDES_PRIVATES $$MODULE_INCLUDES_PRIVATES/$$MODULE_NAME
+ INCLUDEPATH = $$MODULE_INCLUDES_PRIVATES $$MODULE_INCLUDES_PRIVATES/$$MODULE_NAME $$INCLUDEPATH
+ }
unset(LINKAGE)
mac {
@@ -140,12 +150,16 @@ defineTest(qtAddModule) {
}
isEmpty(LINKAGE):LINKAGE = -l$${MODULE_NAME}$${QT_LIBINFIX}
}
- !isEmpty(QMAKE_LSB) {
- QMAKE_LFLAGS *= --lsb-libpath=$$$$QMAKE_LIBDIR_QT
- QMAKE_LFLAGS *= -L/opt/lsb/lib
- QMAKE_LFLAGS *= --lsb-shared-libs=$${MODULE_NAME}$${QT_LIBINFIX}
+ # Only link to this module if a libs directory is set, else this is just a module
+ # to give access to sources or include files, and not for linking.
+ !isEmpty(MODULE_LIBS) {
+ !isEmpty(QMAKE_LSB) {
+ QMAKE_LFLAGS *= --lsb-libpath=$$$$QMAKE_LIBDIR_QT
+ QMAKE_LFLAGS *= -L/opt/lsb/lib
+ QMAKE_LFLAGS *= --lsb-shared-libs=$${MODULE_NAME}$${QT_LIBINFIX}
+ }
+ LIBS += $$LINKAGE
}
- LIBS += $$LINKAGE
export(CONFIG)
export(DEFINES)
export(LIBS)
diff --git a/qmake/Makefile.unix b/qmake/Makefile.unix
index 9dbe035fc2..c522779981 100644
--- a/qmake/Makefile.unix
+++ b/qmake/Makefile.unix
@@ -1,5 +1,6 @@
SOURCE_PATH = @SOURCE_PATH@
BUILD_PATH = @BUILD_PATH@
+QT_VERSION = @QT_VERSION@
QTOBJS = @QMAKE_QTOBJS@
QTSRCS = @QMAKE_QTSRCS@
QMAKESPEC = @QMAKESPEC@
@@ -76,6 +77,7 @@ DEPEND_SRC=project.cpp property.cpp meta.cpp main.cpp generators/makefile.cpp ge
CPPFLAGS = -g -I. -Igenerators -Igenerators/unix -Igenerators/win32 \
-Igenerators/mac -Igenerators/symbian -Igenerators/integrity \
-I$(BUILD_PATH)/include -I$(BUILD_PATH)/include/QtCore \
+ -I$(BUILD_PATH)/include/QtCore/$(QT_VERSION) -I$(BUILD_PATH)/include/QtCore/$(QT_VERSION)/QtCore \
-I$(BUILD_PATH)/src/corelib/global -I$(BUILD_PATH)/src/corelib/xml \
-I$(SOURCE_PATH)/tools/shared \
-DQT_NO_PCRE \
diff --git a/qmake/Makefile.win32 b/qmake/Makefile.win32
index 6fd393993e..56ccf3d565 100644
--- a/qmake/Makefile.win32
+++ b/qmake/Makefile.win32
@@ -32,8 +32,8 @@ CFLAGS_BARE = -c -Fo./ \
-W3 -nologo -O2 \
$(CFLAGS_EXTRA) \
-I. -Igenerators -Igenerators\unix -Igenerators\win32 -Igenerators\mac -Igenerators\symbian -Igenerators\integrity \
- -I$(BUILD_PATH)\include -I$(BUILD_PATH)\include\QtCore \
- -I$(SOURCE_PATH)\include -I$(SOURCE_PATH)\include\QtCore \
+ -I$(BUILD_PATH)\include -I$(BUILD_PATH)\include\QtCore -I$(BUILD_PATH)\include\QtCore\$(QT_VERSION) -I$(BUILD_PATH)\include\QtCore\$(QT_VERSION)\QtCore \
+ -I$(SOURCE_PATH)\include -I$(SOURCE_PATH)\include\QtCore -I$(SOURCE_PATH)\include\QtCore\$(QT_VERSION) -I$(SOURCE_PATH)\include\QtCore\$(QT_VERSION)\QtCore \
-I$(BUILD_PATH)\src\corelib\global \
-I$(BUILD_PATH)\src\corelib\xml \
-I$(SOURCE_PATH)\mkspecs\$(QMAKESPEC) \
diff --git a/qmake/Makefile.win32-g++ b/qmake/Makefile.win32-g++
index d40dc29a9b..05d7a154d6 100644
--- a/qmake/Makefile.win32-g++
+++ b/qmake/Makefile.win32-g++
@@ -16,8 +16,8 @@ CFLAGS = -c -o$@ -O \
-I. -Igenerators -Igenerators/unix \
-Igenerators/win32 -Igenerators/mac \
-Igenerators/symbian -Igenerators/integrity \
- -I$(BUILD_PATH)/include -I$(BUILD_PATH)/include/QtCore \
- -I$(SOURCE_PATH)/include -I$(SOURCE_PATH)/include/QtCore \
+ -I$(BUILD_PATH)/include -I$(BUILD_PATH)/include/QtCore -I$(BUILD_PATH)/include/QtCore/$(QT_VERSION) -I$(BUILD_PATH)/include/QtCore/$(QT_VERSION)/QtCore \
+ -I$(SOURCE_PATH)/include -I$(SOURCE_PATH)/include/QtCore -I$(SOURCE_PATH)/include/QtCore/$(QT_VERSION) -I$(SOURCE_PATH)/include/QtCore/$(QT_VERSION)/QtCore \
-I$(BUILD_PATH)/src/corelib/global \
-I$(BUILD_PATH)/src/corelib/xml \
-I$(SOURCE_PATH)/mkspecs/win32-g++ \
diff --git a/qmake/Makefile.win32-g++-sh b/qmake/Makefile.win32-g++-sh
index 49ccfbcc77..b691470cca 100644
--- a/qmake/Makefile.win32-g++-sh
+++ b/qmake/Makefile.win32-g++-sh
@@ -16,8 +16,8 @@ CFLAGS = -c -o$@ -O \
-I. -Igenerators -Igenerators/unix \
-Igenerators/win32 -Igenerators/mac \
-Igenerators/symbian -Igenerators/integrity \
- -I$(BUILD_PATH)/include -I$(BUILD_PATH)/include/QtCore \
- -I$(SOURCE_PATH)/include -I$(SOURCE_PATH)/include/QtCore \
+ -I$(BUILD_PATH)/include -I$(BUILD_PATH)/include/QtCore -I$(BUILD_PATH)/include/QtCore/$(QT_VERSION) -I$(BUILD_PATH)/include/QtCore/$(QT_VERSION)/QtCore \
+ -I$(SOURCE_PATH)/include -I$(SOURCE_PATH)/include/QtCore -I$(SOURCE_PATH)/include/QtCore/$(QT_VERSION) -I$(SOURCE_PATH)/include/QtCore/$(QT_VERSION)/QtCore \
-I$(BUILD_PATH)/src/corelib/global \
-I$(BUILD_PATH)/src/corelib/xml \
-I$(SOURCE_PATH)/mkspecs/win32-g++ \
diff --git a/qmake/qmake.pro b/qmake/qmake.pro
index b602afa198..ac52bd8dd0 100644
--- a/qmake/qmake.pro
+++ b/qmake/qmake.pro
@@ -27,6 +27,8 @@ INCLUDEPATH += . \
generators/symbian \
$$QT_SOURCE_TREE/include \
$$QT_SOURCE_TREE/include/QtCore \
+ $$QT_SOURCE_TREE/include/QtCore/$$QT_VERSION \
+ $$QT_SOURCE_TREE/include/QtCore/$$QT_VERSION/QtCore \
$$QT_SOURCE_TREE/qmake
VPATH += $$QT_SOURCE_TREE/tools/shared
diff --git a/src/dbus/dbus.pro b/src/dbus/dbus.pro
index 4f2aa7e9b5..e73fa05a74 100644
--- a/src/dbus/dbus.pro
+++ b/src/dbus/dbus.pro
@@ -1,6 +1,6 @@
TARGET = QtDBus
QPRO_PWD = $$PWD
-QT = core \
+QT = core-private \
xml
CONFIG += link_pkgconfig module
diff --git a/src/gui/gui.pro b/src/gui/gui.pro
index 878a384696..072553a05c 100644
--- a/src/gui/gui.pro
+++ b/src/gui/gui.pro
@@ -1,6 +1,6 @@
TARGET = QtGui
QPRO_PWD = $$PWD
-QT = core
+QT = core-private
CONFIG += module
MODULE_PRI = ../modules/qt_gui.pri
diff --git a/src/modules/qt_core.pri b/src/modules/qt_core.pri
index 9636fb2500..bf013432a5 100644
--- a/src/modules/qt_core.pri
+++ b/src/modules/qt_core.pri
@@ -1,12 +1,12 @@
-QT_CORE_VERSION = $$QT_VERSION
-QT_CORE_MAJOR_VERSION = $$QT_MAJOR_VERSION
-QT_CORE_MINOR_VERSION = $$QT_MINOR_VERSION
-QT_CORE_PATCH_VERSION = $$QT_PATCH_VERSION
+QT.core.VERSION = 4.8.0
+QT.core.MAJOR_VERSION = 4
+QT.core.MINOR_VERSION = 8
+QT.core.PATCH_VERSION = 0
QT.core.name = QtCore
QT.core.bins = $$QT_MODULE_BIN_BASE
QT.core.includes = $$QT_MODULE_INCLUDE_BASE/QtCore
-QT.core.private_includes = $$QT_MODULE_INCLUDE_BASE/QtCore/private
+QT.core.private_includes = $$QT_MODULE_INCLUDE_BASE/QtCore/$$QT.core.VERSION
QT.core.sources = $$QT_MODULE_BASE/src/corelib
QT.core.libs = $$QT_MODULE_LIB_BASE
QT.core.plugins = $$QT_MODULE_PLUGIN_BASE
diff --git a/src/modules/qt_dbus.pri b/src/modules/qt_dbus.pri
index 13c9914f0d..9aefab9b82 100644
--- a/src/modules/qt_dbus.pri
+++ b/src/modules/qt_dbus.pri
@@ -1,12 +1,12 @@
-QT_DBUS_VERSION = $$QT_VERSION
-QT_DBUS_MAJOR_VERSION = $$QT_MAJOR_VERSION
-QT_DBUS_MINOR_VERSION = $$QT_MINOR_VERSION
-QT_DBUS_PATCH_VERSION = $$QT_PATCH_VERSION
+QT.dbus.VERSION = 4.8.0
+QT.dbus.MAJOR_VERSION = 4
+QT.dbus.MINOR_VERSION = 8
+QT.dbus.PATCH_VERSION = 0
QT.dbus.name = QtDBus
QT.dbus.bins = $$QT_MODULE_BIN_BASE
QT.dbus.includes = $$QT_MODULE_INCLUDE_BASE/QtDBus
-QT.dbus.private_includes = $$QT_MODULE_INCLUDE_BASE/QtDBus/private
+QT.dbus.private_includes = $$QT_MODULE_INCLUDE_BASE/QtDBus/$$QT.dbus.VERSION
QT.dbus.sources = $$QT_MODULE_BASE/src/dbus
QT.dbus.libs = $$QT_MODULE_LIB_BASE
QT.dbus.plugins = $$QT_MODULE_PLUGIN_BASE
diff --git a/src/modules/qt_gui.pri b/src/modules/qt_gui.pri
index 444f5c4804..1ef3697db6 100644
--- a/src/modules/qt_gui.pri
+++ b/src/modules/qt_gui.pri
@@ -1,11 +1,11 @@
-QT_GUI_VERSION = $$QT_VERSION
-QT_GUI_MAJOR_VERSION = $$QT_MAJOR_VERSION
-QT_GUI_MINOR_VERSION = $$QT_MINOR_VERSION
-QT_GUI_PATCH_VERSION = $$QT_PATCH_VERSION
+QT.gui.VERSION = 4.8.0
+QT.gui.MAJOR_VERSION = 4
+QT.gui.MINOR_VERSION = 8
+QT.gui.PATCH_VERSION = 0
QT.gui.name = QtGui
QT.gui.includes = $$QT_MODULE_INCLUDE_BASE/QtGui
-QT.gui.private_includes = $$QT_MODULE_INCLUDE_BASE/QtGui/private
+QT.gui.private_includes = $$QT_MODULE_INCLUDE_BASE/QtGui/$$QT.gui.VERSION
QT.gui.sources = $$QT_MODULE_BASE/src/gui
QT.gui.libs = $$QT_MODULE_LIB_BASE
QT.gui.plugins = $$QT_MODULE_PLUGIN_BASE
diff --git a/src/modules/qt_network.pri b/src/modules/qt_network.pri
index f54afd21a0..44326c2b2d 100644
--- a/src/modules/qt_network.pri
+++ b/src/modules/qt_network.pri
@@ -1,12 +1,12 @@
-QT_CORE_VERSION = $$QT_VERSION
-QT_NETWORK_MAJOR_VERSION = $$QT_MAJOR_VERSION
-QT_NETWORK_MINOR_VERSION = $$QT_MINOR_VERSION
-QT_NETWORK_PATCH_VERSION = $$QT_PATCH_VERSION
+QT.network.VERSION = 4.8.0
+QT.network.MAJOR_VERSION = 4
+QT.network.MINOR_VERSION = 8
+QT.network.PATCH_VERSION = 0
QT.network.name = QtNetwork
QT.network.bins = $$QT_MODULE_BIN_BASE
QT.network.includes = $$QT_MODULE_INCLUDE_BASE/QtNetwork
-QT.network.private_includes = $$QT_MODULE_INCLUDE_BASE/QtNetwork/private
+QT.network.private_includes = $$QT_MODULE_INCLUDE_BASE/QtNetwork/$$QT.network.VERSION
QT.network.sources = $$QT_MODULE_BASE/src/network
QT.network.libs = $$QT_MODULE_LIB_BASE
QT.network.plugins = $$QT_MODULE_PLUGIN_BASE
diff --git a/src/modules/qt_opengl.pri b/src/modules/qt_opengl.pri
index 4d9a7029ef..b767a3ce12 100644
--- a/src/modules/qt_opengl.pri
+++ b/src/modules/qt_opengl.pri
@@ -1,12 +1,12 @@
-QT_OPENGL_VERSION = $$QT_VERSION
-QT_OPENGL_MAJOR_VERSION = $$QT_MAJOR_VERSION
-QT_OPENGL_MINOR_VERSION = $$QT_MINOR_VERSION
-QT_OPENGL_PATCH_VERSION = $$QT_PATCH_VERSION
+QT.opengl.VERSION = 4.8.0
+QT.opengl.MAJOR_VERSION = 4
+QT.opengl.MINOR_VERSION = 8
+QT.opengl.PATCH_VERSION = 0
QT.opengl.name = QtOpenGL
QT.opengl.bins = $$QT_MODULE_BIN_BASE
QT.opengl.includes = $$QT_MODULE_INCLUDE_BASE/QtOpenGL
-QT.opengl.private_includes = $$QT_MODULE_INCLUDE_BASE/QtOpenGL/private
+QT.opengl.private_includes = $$QT_MODULE_INCLUDE_BASE/QtOpenGL/$$QT.opengl.VERSION
QT.opengl.sources = $$QT_MODULE_BASE/src/opengl
QT.opengl.libs = $$QT_MODULE_LIB_BASE
QT.opengl.plugins = $$QT_MODULE_PLUGIN_BASE
diff --git a/src/modules/qt_openvg.pri b/src/modules/qt_openvg.pri
index 1261fd99c2..2ff477c013 100644
--- a/src/modules/qt_openvg.pri
+++ b/src/modules/qt_openvg.pri
@@ -1,12 +1,12 @@
-QT_OPENVG_VERSION = $$QT_VERSION
-QT_OPENVG_MAJOR_VERSION = $$QT_MAJOR_VERSION
-QT_OPENVG_MINOR_VERSION = $$QT_MINOR_VERSION
-QT_OPENVG_PATCH_VERSION = $$QT_PATCH_VERSION
+QT.openvg.VERSION = 4.8.0
+QT.openvg.MAJOR_VERSION = 4
+QT.openvg.MINOR_VERSION = 8
+QT.openvg.PATCH_VERSION = 0
QT.openvg.name = QtOpenVG
QT.openvg.bins = $$QT_MODULE_BIN_BASE
QT.openvg.includes = $$QT_MODULE_INCLUDE_BASE/QtOpenVG
-QT.openvg.private_includes = $$QT_MODULE_INCLUDE_BASE/QtOpenVG/private
+QT.openvg.private_includes = $$QT_MODULE_INCLUDE_BASE/QtOpenVG/$$QT.openvg.VERSION
QT.openvg.sources = $$QT_MODULE_BASE/src/openvg
QT.openvg.libs = $$QT_MODULE_LIB_BASE
QT.openvg.plugins = $$QT_MODULE_PLUGIN_BASE
diff --git a/src/modules/qt_sql.pri b/src/modules/qt_sql.pri
index e7ca42a513..14d2422989 100644
--- a/src/modules/qt_sql.pri
+++ b/src/modules/qt_sql.pri
@@ -1,12 +1,12 @@
-QT_SQL_VERSION = $$QT_VERSION
-QT_SQL_MAJOR_VERSION = $$QT_MAJOR_VERSION
-QT_SQL_MINOR_VERSION = $$QT_MINOR_VERSION
-QT_SQL_PATCH_VERSION = $$QT_PATCH_VERSION
+QT.sql.VERSION = 4.8.0
+QT.sql.MAJOR_VERSION = 4
+QT.sql.MINOR_VERSION = 8
+QT.sql.PATCH_VERSION = 0
QT.sql.name = QtSql
QT.sql.bins = $$QT_MODULE_BIN_BASE
QT.sql.includes = $$QT_MODULE_INCLUDE_BASE/QtSql
-QT.sql.private_includes = $$QT_MODULE_INCLUDE_BASE/QtSql/private
+QT.sql.private_includes = $$QT_MODULE_INCLUDE_BASE/QtSql/$$QT.sql.VERSION
QT.sql.sources = $$QT_MODULE_BASE/src/sql
QT.sql.libs = $$QT_MODULE_LIB_BASE
QT.sql.plugins = $$QT_MODULE_PLUGIN_BASE
diff --git a/src/modules/qt_testlib.pri b/src/modules/qt_testlib.pri
index 6ef7939164..9fd9b2e446 100644
--- a/src/modules/qt_testlib.pri
+++ b/src/modules/qt_testlib.pri
@@ -1,12 +1,12 @@
-QT_TEST_VERSION = $$QT_VERSION
-QT_TEST_MAJOR_VERSION = $$QT_MAJOR_VERSION
-QT_TEST_MINOR_VERSION = $$QT_MINOR_VERSION
-QT_TEST_PATCH_VERSION = $$QT_PATCH_VERSION
+QT.testlib.VERSION = 4.8.0
+QT.testlib.MAJOR_VERSION = 4
+QT.testlib.MINOR_VERSION = 8
+QT.testlib.PATCH_VERSION = 0
QT.testlib.name = QtTest
QT.testlib.bins = $$QT_MODULE_BIN_BASE
QT.testlib.includes = $$QT_MODULE_INCLUDE_BASE/QtTest
-QT.testlib.private_includes = $$QT_MODULE_INCLUDE_BASE/QtTest/private
+QT.testlib.private_includes = $$QT_MODULE_INCLUDE_BASE/QtTest/$$QT.testlib.VERSION
QT.testlib.sources = $$QT_MODULE_BASE/src/testlib
QT.testlib.libs = $$QT_MODULE_LIB_BASE
QT.testlib.plugins = $$QT_MODULE_PLUGIN_BASE
diff --git a/src/modules/qt_uilib.pri b/src/modules/qt_uilib.pri
index 7e1dc7ccd2..5973216921 100644
--- a/src/modules/qt_uilib.pri
+++ b/src/modules/qt_uilib.pri
@@ -1,14 +1,13 @@
-QT_UILIB_VERSION = $$QT_VERSION
-QT_UILIB_MAJOR_VERSION = $$QT_MAJOR_VERSION
-QT_UILIB_MINOR_VERSION = $$QT_MINOR_VERSION
-QT_UILIB_PATCH_VERSION = $$QT_PATCH_VERSION
+QT.uilib.VERSION = 4.8.0
+QT.uilib.MAJOR_VERSION = 4
+QT.uilib.MINOR_VERSION = 8
+QT.uilib.PATCH_VERSION = 0
-QT.uilib.name =
+QT.uilib.name = QtUiLib
QT.uilib.bins = $$QT_MODULE_BIN_BASE
QT.uilib.includes = $$QT_MODULE_INCLUDE_BASE/QtDesigner
-QT.uilib.private_includes = $$QT_MODULE_INCLUDE_BASE/QtDesigner/private
+QT.uilib.private_includes = $$QT_MODULE_INCLUDE_BASE/QtDesigner/$$QT.uilib.VERSION
QT.uilib.sources = $$QT_MODULE_BASE/tools/uilib
-QT.uilib.libs = $$QT_MODULE_LIB_BASE
QT.uilib.plugins = $$QT_MODULE_PLUGIN_BASE
QT.uilib.imports = $$QT_MODULE_IMPORT_BASE
QT.uilib.depends = xml
diff --git a/src/modules/qt_uitools.pri b/src/modules/qt_uitools.pri
index d221007684..d30c8b845b 100644
--- a/src/modules/qt_uitools.pri
+++ b/src/modules/qt_uitools.pri
@@ -1,12 +1,12 @@
-QT_UITOOLS_VERSION = $$QT_VERSION
-QT_UITOOLS_MAJOR_VERSION = $$QT_MAJOR_VERSION
-QT_UITOOLS_MINOR_VERSION = $$QT_MINOR_VERSION
-QT_UITOOLS_PATCH_VERSION = $$QT_PATCH_VERSION
+QT.uitools.VERSION = 4.8.0
+QT.uitools.MAJOR_VERSION = 4
+QT.uitools.MINOR_VERSION = 8
+QT.uitools.PATCH_VERSION = 0
QT.uitools.name = QtUiTools
QT.uitools.bins = $$QT_MODULE_BIN_BASE
QT.uitools.includes = $$QT_MODULE_INCLUDE_BASE/QtUiTools
-QT.uitools.private_includes = $$QT_MODULE_INCLUDE_BASE/QtUiTools/private
+QT.uitools.private_includes = $$QT_MODULE_INCLUDE_BASE/QtUiTools/$$QT.uitools.VERSION
QT.uitools.sources = $$QT_MODULE_BASE/src/uitools
QT.uitools.libs = $$QT_MODULE_LIB_BASE
QT.uitools.plugins = $$QT_MODULE_PLUGIN_BASE
diff --git a/src/modules/qt_xml.pri b/src/modules/qt_xml.pri
index 0ede3d2ddf..e7db6365eb 100644
--- a/src/modules/qt_xml.pri
+++ b/src/modules/qt_xml.pri
@@ -1,12 +1,12 @@
-QT_XML_VERSION = $$QT_VERSION
-QT_XML_MAJOR_VERSION = $$QT_MAJOR_VERSION
-QT_XML_MINOR_VERSION = $$QT_MINOR_VERSION
-QT_XML_PATCH_VERSION = $$QT_PATCH_VERSION
+QT.xml.VERSION = 4.8.0
+QT.xml.MAJOR_VERSION = 4
+QT.xml.MINOR_VERSION = 8
+QT.xml.PATCH_VERSION = 0
QT.xml.name = QtXml
QT.xml.bins = $$QT_MODULE_BIN_BASE
QT.xml.includes = $$QT_MODULE_INCLUDE_BASE/QtXml
-QT.xml.private_includes = $$QT_MODULE_INCLUDE_BASE/QtXml/private
+QT.xml.private_includes = $$QT_MODULE_INCLUDE_BASE/QtXml/$$QT.xml.VERSION
QT.xml.sources = $$QT_MODULE_BASE/src/xml
QT.xml.libs = $$QT_MODULE_LIB_BASE
QT.xml.plugins = $$QT_MODULE_PLUGIN_BASE
diff --git a/src/network/network.pro b/src/network/network.pro
index 153961762a..fc5d08d936 100644
--- a/src/network/network.pro
+++ b/src/network/network.pro
@@ -13,7 +13,7 @@ DEFINES += QT_BUILD_NETWORK_LIB QT_NO_USING_NAMESPACE
#DEFINES += QABSTRACTSOCKET_DEBUG QNATIVESOCKETENGINE_DEBUG
#DEFINES += QTCPSOCKETENGINE_DEBUG QTCPSOCKET_DEBUG QTCPSERVER_DEBUG QSSLSOCKET_DEBUG
#DEFINES += QUDPSOCKET_DEBUG QUDPSERVER_DEBUG
-QT = core
+QT = core-private
win32-msvc*|win32-icc:QMAKE_LFLAGS += /BASE:0x64000000
unix|win32-g++*:QMAKE_PKGCONFIG_REQUIRES = QtCore
diff --git a/src/opengl/opengl.pro b/src/opengl/opengl.pro
index 24dbb7aa3e..849bd9ebc7 100644
--- a/src/opengl/opengl.pro
+++ b/src/opengl/opengl.pro
@@ -1,6 +1,6 @@
TARGET = QtOpenGL
QPRO_PWD = $$PWD
-QT = core gui
+QT = core-private gui-private
CONFIG += module
MODULE_PRI = ../modules/qt_opengl.pri
diff --git a/src/plugins/accessible/widgets/widgets.pro b/src/plugins/accessible/widgets/widgets.pro
index 092f3ca32c..8329bce963 100644
--- a/src/plugins/accessible/widgets/widgets.pro
+++ b/src/plugins/accessible/widgets/widgets.pro
@@ -2,6 +2,7 @@ TARGET = qtaccessiblewidgets
include(../../qpluginbase.pri)
include (../qaccessiblebase.pri)
+QT += core-private gui-private
DESTDIR = $$QT.gui.plugins/accessible
QTDIR_build:REQUIRES += "contains(QT_CONFIG, accessibility)"
diff --git a/src/plugins/bearer/connman/connman.pro b/src/plugins/bearer/connman/connman.pro
index 3ac54c3769..f57a0c930b 100644
--- a/src/plugins/bearer/connman/connman.pro
+++ b/src/plugins/bearer/connman/connman.pro
@@ -1,7 +1,7 @@
TARGET = qconnmanbearer
include(../../qpluginbase.pri)
-QT = core network dbus
+QT = core network-private dbus
HEADERS += qconnmanservice_linux_p.h \
qofonoservice_linux_p.h \
diff --git a/src/plugins/bearer/generic/generic.pro b/src/plugins/bearer/generic/generic.pro
index 94ab36ce59..94fefaf6c2 100644
--- a/src/plugins/bearer/generic/generic.pro
+++ b/src/plugins/bearer/generic/generic.pro
@@ -1,7 +1,7 @@
TARGET = qgenericbearer
include(../../qpluginbase.pri)
-QT = core network
+QT = core-private network-private
HEADERS += qgenericengine.h \
../qnetworksession_impl.h \
diff --git a/src/plugins/bearer/nativewifi/nativewifi.pro b/src/plugins/bearer/nativewifi/nativewifi.pro
index 6df346cd46..ba02f37d23 100644
--- a/src/plugins/bearer/nativewifi/nativewifi.pro
+++ b/src/plugins/bearer/nativewifi/nativewifi.pro
@@ -1,7 +1,7 @@
TARGET = qnativewifibearer
include(../../qpluginbase.pri)
-QT = core network
+QT = core-private network-private
HEADERS += qnativewifiengine.h \
platformdefs.h \
diff --git a/src/plugins/bearer/networkmanager/networkmanager.pro b/src/plugins/bearer/networkmanager/networkmanager.pro
index b3e088344d..a9de1561fd 100644
--- a/src/plugins/bearer/networkmanager/networkmanager.pro
+++ b/src/plugins/bearer/networkmanager/networkmanager.pro
@@ -1,7 +1,7 @@
TARGET = qnmbearer
include(../../qpluginbase.pri)
-QT = core network dbus
+QT = core network-private dbus
HEADERS += qnmdbushelper.h \
qnetworkmanagerservice.h \
diff --git a/src/plugins/graphicssystems/opengl/opengl.pro b/src/plugins/graphicssystems/opengl/opengl.pro
index fb3cb5331a..30c88271b6 100644
--- a/src/plugins/graphicssystems/opengl/opengl.pro
+++ b/src/plugins/graphicssystems/opengl/opengl.pro
@@ -1,7 +1,7 @@
TARGET = qglgraphicssystem
include(../../qpluginbase.pri)
-QT += opengl
+QT += core-private gui-private opengl-private
DESTDIR = $$QT.gui.plugins/graphicssystems
diff --git a/src/plugins/graphicssystems/trace/trace.pro b/src/plugins/graphicssystems/trace/trace.pro
index 0958a86973..b31beb35f8 100644
--- a/src/plugins/graphicssystems/trace/trace.pro
+++ b/src/plugins/graphicssystems/trace/trace.pro
@@ -1,7 +1,7 @@
TARGET = qtracegraphicssystem
include(../../qpluginbase.pri)
-QT += network
+QT += core-private gui-private network
DESTDIR = $$QT.gui.plugins/graphicssystems
symbian:TARGET.UID3 = 0x2002130E
diff --git a/src/plugins/imageformats/jpeg/jpeg.pro b/src/plugins/imageformats/jpeg/jpeg.pro
index 3a0e8754c0..1e6c24d061 100644
--- a/src/plugins/imageformats/jpeg/jpeg.pro
+++ b/src/plugins/imageformats/jpeg/jpeg.pro
@@ -1,6 +1,8 @@
TARGET = qjpeg
include(../../qpluginbase.pri)
+QT += core-private
+
QTDIR_build:REQUIRES = "!contains(QT_CONFIG, no-jpeg)"
include(../../../gui/image/qjpeghandler.pri)
diff --git a/src/plugins/sqldrivers/qsqldriverbase.pri b/src/plugins/sqldrivers/qsqldriverbase.pri
index 64f55fda78..7399c659da 100644
--- a/src/plugins/sqldrivers/qsqldriverbase.pri
+++ b/src/plugins/sqldrivers/qsqldriverbase.pri
@@ -1,5 +1,5 @@
include(../qpluginbase.pri)
-QT = core sql
+QT = core sql-private
DESTDIR = $$QT.sql.plugins/sqldrivers
target.path += $$[QT_INSTALL_PLUGINS]/sqldrivers
diff --git a/src/qbase.pri b/src/qbase.pri
index 4ff17630c5..6336aa9f5c 100644
--- a/src/qbase.pri
+++ b/src/qbase.pri
@@ -4,6 +4,9 @@ isEmpty(MODULE):MODULE = $$section($$list($$basename(_PRO_FILE_)), ., 0, 0)
isEmpty(TARGET):error("You must set TARGET before include()'ing $${_FILE_}")
MODULE_INCLUDES = $$eval(QT.$${MODULE}.includes)
+MODULE_PRIVATE_INCLUDES = $$eval(QT.$${MODULE}.private_includes)
+INCLUDEPATH *= $$MODULE_PRIVATE_INCLUDES
+INCLUDEPATH *= $$MODULE_PRIVATE_INCLUDES/$$TARGET
INCLUDEPATH *= $$MODULE_INCLUDES $$MODULE_INCLUDES/.. #just for today to have some compat
!isEmpty(RCC_DIR): INCLUDEPATH += $$RCC_DIR
isEmpty(QT_ARCH):!isEmpty(ARCH):QT_ARCH=$$ARCH #another compat that will rot for change #215700
diff --git a/src/qt_install.pri b/src/qt_install.pri
index 268bb864f6..17b41af1ce 100644
--- a/src/qt_install.pri
+++ b/src/qt_install.pri
@@ -31,11 +31,9 @@ qt_install_headers {
targ_headers.path = $$[QT_INSTALL_HEADERS]/$$TARGET
INSTALLS += targ_headers
- contains(QT_CONFIG,private_tests) {
- private_headers.files = $$SYNCQT.PRIVATE_HEADER_FILES
- private_headers.path = $$[QT_INSTALL_HEADERS]/$$TARGET/private
- INSTALLS += private_headers
- }
+ private_headers.files = $$SYNCQT.PRIVATE_HEADER_FILES
+ private_headers.path = $$[QT_INSTALL_HEADERS]/$$TARGET/$$eval(QT.$${MODULE}.VERSION)/private
+ INSTALLS += private_headers
}
embedded|qpa: equals(TARGET, QtGui) {
diff --git a/src/sql/sql.pro b/src/sql/sql.pro
index 550b24b754..f1bdd6bda1 100644
--- a/src/sql/sql.pro
+++ b/src/sql/sql.pro
@@ -1,6 +1,6 @@
TARGET = QtSql
QPRO_PWD = $$PWD
-QT = core
+QT = core-private
CONFIG += module
MODULE_PRI = ../modules/qt_sql.pri
diff --git a/src/tools/bootstrap/bootstrap.pri b/src/tools/bootstrap/bootstrap.pri
index f48c8c12ff..50c1af1775 100644
--- a/src/tools/bootstrap/bootstrap.pri
+++ b/src/tools/bootstrap/bootstrap.pri
@@ -29,7 +29,11 @@ win32:DEFINES += QT_NODLL
INCLUDEPATH += $$QT_BUILD_TREE/include \
$$QT_BUILD_TREE/include/QtCore \
+ $$QT_BUILD_TREE/include/QtCore/$$QT.core.VERSION \
+ $$QT_BUILD_TREE/include/QtCore/$$QT.core.VERSION/QtCore \
$$QT_BUILD_TREE/include/QtXml \
+ $$QT_BUILD_TREE/include/QtXml/$$QT.xml.VERSION \
+ $$QT_BUILD_TREE/include/QtXml/$$QT.xml.VERSION/QtXml \
$$QT_SOURCE_TREE/src/xml
DEPENDPATH += $$INCLUDEPATH \
$$QT_SOURCE_TREE/src/corelib/global \
diff --git a/src/tools/bootstrap/bootstrap.pro b/src/tools/bootstrap/bootstrap.pro
index 50ae2cff16..6ff948c8e8 100644
--- a/src/tools/bootstrap/bootstrap.pro
+++ b/src/tools/bootstrap/bootstrap.pro
@@ -32,7 +32,11 @@ win32:DEFINES += QT_NODLL
INCLUDEPATH += $$QT_BUILD_TREE/include \
$$QT_BUILD_TREE/include/QtCore \
- $$QT_BUILD_TREE/include/QtXml
+ $$QT_BUILD_TREE/include/QtCore/$$QT.core.VERSION \
+ $$QT_BUILD_TREE/include/QtCore/$$QT.core.VERSION/QtCore \
+ $$QT_BUILD_TREE/include/QtXml \
+ $$QT_BUILD_TREE/include/QtXml/$$QT.xml.VERSION \
+ $$QT_BUILD_TREE/include/QtXml/$$QT.xml.VERSION/QtXml \
DEPENDPATH += $$INCLUDEPATH \
../../corelib/global \
diff --git a/src/xml/xml.pro b/src/xml/xml.pro
index e6fce60371..68bb20b009 100644
--- a/src/xml/xml.pro
+++ b/src/xml/xml.pro
@@ -1,6 +1,6 @@
TARGET = QtXml
QPRO_PWD = $$PWD
-QT = core
+QT = core-private
CONFIG += module
MODULE_PRI = ../modules/qt_xml.pri
diff --git a/tools/configure/configure.pro b/tools/configure/configure.pro
index 124564667c..81458fc1bd 100644
--- a/tools/configure/configure.pro
+++ b/tools/configure/configure.pro
@@ -28,6 +28,8 @@ INCLUDEPATH += \
$$QT_SOURCE_TREE/src/corelib/global \
$$QT_BUILD_TREE/include \
$$QT_BUILD_TREE/include/QtCore \
+ $$QT_BUILD_TREE/include/QtCore/$$QT.core.VERSION \
+ $$QT_BUILD_TREE/include/QtCore/$$QT.core.VERSION/QtCore \
$$QT_SOURCE_TREE/tools/shared
HEADERS = configureapp.h environment.h tools.h\
diff --git a/tools/configure/configureapp.cpp b/tools/configure/configureapp.cpp
index 9c2ce2cfb4..3f9d97c1ac 100644
--- a/tools/configure/configureapp.cpp
+++ b/tools/configure/configureapp.cpp
@@ -2913,7 +2913,7 @@ void Configure::generateCachefile()
for (QStringList::Iterator var = qmakeVars.begin(); var != qmakeVars.end(); ++var) {
cacheStream << (*var) << endl;
}
- cacheStream << "CONFIG += " << qmakeConfig.join(" ") << " incremental msvc_mp create_prl link_prl depend_includepath QTDIR_build" << endl;
+ cacheStream << "CONFIG += " << qmakeConfig.join(" ") << " incremental msvc_mp create_prl link_prl depend_includepath no_private_qt_headers_warning QTDIR_build" << endl;
cacheStream.flush();
cacheFile.close();
@@ -3648,7 +3648,8 @@ void Configure::buildQmake()
stream << "#AutoGenerated by configure.exe" << endl
<< "BUILD_PATH = " << QDir::convertSeparators(buildPath) << endl
<< "SOURCE_PATH = " << QDir::convertSeparators(sourcePath) << endl;
- stream << "QMAKESPEC = " << dictionary["QMAKESPEC"] << endl;
+ stream << "QMAKESPEC = " << dictionary["QMAKESPEC"] << endl
+ << "QT_VERSION = " << QT_VERSION_STR << endl;
if (dictionary["EDITION"] == "OpenSource" ||
dictionary["QT_EDITION"].contains("OPENSOURCE"))