summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarius Storm-Olsen <[email protected]>2011-04-20 13:57:51 -0500
committerOlivier Goffart <[email protected]>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 8fa253a733e..3d25ecc817b 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 60e1ec12163..293f642d356 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 b2a338e7f3b..88d7fbedaba 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 fa40caab3f8..63a7e76a346 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 d8ba8c3537b..c96ecae8fed 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 21fdd38e702..61e1d575bca 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 b16c84864fe..50a85d86ce9 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 9dbe035fc26..c522779981f 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 6fd393993e9..56ccf3d5655 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 d40dc29a9b8..05d7a154d68 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 49ccfbcc77b..b691470cca8 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 b602afa1981..ac52bd8dd0e 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 4f2aa7e9b58..e73fa05a748 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 878a3846963..072553a05cf 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 9636fb25000..bf013432a5c 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 13c9914f0db..9aefab9b82a 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 444f5c48047..1ef3697db6c 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 f54afd21a0d..44326c2b2db 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 4d9a7029eff..b767a3ce124 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 1261fd99c27..2ff477c013e 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 e7ca42a5134..14d2422989f 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 6ef7939164a..9fd9b2e446f 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 7e1dc7ccd23..5973216921e 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 d2210076841..d30c8b845b2 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 0ede3d2ddf0..e7db6365eb8 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 153961762ae..fc5d08d936e 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 24dbb7aa3e7..849bd9ebc7d 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 092f3ca32ce..8329bce963d 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 3ac54c37699..f57a0c930bd 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 94ab36ce59a..94fefaf6c29 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 6df346cd46d..ba02f37d23f 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 b3e088344df..a9de1561fdc 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 fb3cb5331ad..30c88271b69 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 0958a86973d..b31beb35f82 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 3a0e8754c06..1e6c24d061c 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 64f55fda785..7399c659da1 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 4ff17630c5e..6336aa9f5c1 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 268bb864f6a..17b41af1ce5 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 550b24b754f..f1bdd6bda1a 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 f48c8c12fff..50c1af1775e 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 50ae2cff161..6ff948c8e8e 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 e6fce60371d..68bb20b0098 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 124564667c5..81458fc1bda 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 9c2ce2cfb40..3f9d97c1ac6 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"))