Move private headers into versioned subdirectory
authorMarius Storm-Olsen <marius.storm-olsen@nokia.com>
Wed, 20 Apr 2011 18:57:51 +0000 (13:57 -0500)
committerOlivier Goffart <olivier.goffart@nokia.com>
Mon, 2 May 2011 13:30:08 +0000 (15:30 +0200)
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.

44 files changed:
bin/syncqt
configure
demos/shared/shared.pro
mkspecs/features/designer.prf
mkspecs/features/help.prf
mkspecs/features/qt.prf
mkspecs/features/qt_functions.prf
qmake/Makefile.unix
qmake/Makefile.win32
qmake/Makefile.win32-g++
qmake/Makefile.win32-g++-sh
qmake/qmake.pro
src/dbus/dbus.pro
src/gui/gui.pro
src/modules/qt_core.pri
src/modules/qt_dbus.pri
src/modules/qt_gui.pri
src/modules/qt_network.pri
src/modules/qt_opengl.pri
src/modules/qt_openvg.pri
src/modules/qt_sql.pri
src/modules/qt_testlib.pri
src/modules/qt_uilib.pri
src/modules/qt_uitools.pri
src/modules/qt_xml.pri
src/network/network.pro
src/opengl/opengl.pro
src/plugins/accessible/widgets/widgets.pro
src/plugins/bearer/connman/connman.pro
src/plugins/bearer/generic/generic.pro
src/plugins/bearer/nativewifi/nativewifi.pro
src/plugins/bearer/networkmanager/networkmanager.pro
src/plugins/graphicssystems/opengl/opengl.pro
src/plugins/graphicssystems/trace/trace.pro
src/plugins/imageformats/jpeg/jpeg.pro
src/plugins/sqldrivers/qsqldriverbase.pri
src/qbase.pri
src/qt_install.pri
src/sql/sql.pro
src/tools/bootstrap/bootstrap.pri
src/tools/bootstrap/bootstrap.pro
src/xml/xml.pro
tools/configure/configure.pro
tools/configure/configureapp.cpp

index 8fa253a..3d25ecc 100755 (executable)
@@ -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));
index 60e1ec1..293f642 100755 (executable)
--- 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
 
index b2a338e..88d7fbe 100644 (file)
@@ -11,6 +11,7 @@ build_all:!build_pass {
     CONFIG += release
 }
 TARGET = demo_shared
+QT += gui-private
 
 SOURCES += \
        arthurstyle.cpp\
index fa40caa..63a7e76 100644 (file)
@@ -4,4 +4,4 @@ qt:load(qt)
 
 plugin:DEFINES += QDESIGNER_EXPORT_WIDGETS
 
-qtAddLibrary(QtDesigner)
+qtAddLibrary(QtDesigner, true)
index d8ba8c3..c96ecae 100644 (file)
@@ -1,3 +1,3 @@
 QT += xml sql
 
-qtAddModule(help)
+qtAddModule(help, true)
index 21fdd38..61e1d57 100644 (file)
@@ -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
index b16c848..50a85d8 100644 (file)
@@ -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)
index 9dbe035..c522779 100644 (file)
@@ -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 \
index 6fd3939..56ccf3d 100644 (file)
@@ -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)  \
index d40dc29..05d7a15 100644 (file)
@@ -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++  \
index 49ccfbc..b691470 100644 (file)
@@ -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++  \
index b602afa..ac52bd8 100644 (file)
@@ -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
index 4f2aa7e..e73fa05 100644 (file)
@@ -1,6 +1,6 @@
 TARGET = QtDBus
 QPRO_PWD = $$PWD
-QT = core \
+QT = core-private \
     xml
 
 CONFIG += link_pkgconfig module
index 878a384..072553a 100644 (file)
@@ -1,6 +1,6 @@
 TARGET     = QtGui
 QPRO_PWD   = $$PWD
-QT = core
+QT = core-private
 
 CONFIG += module
 MODULE_PRI = ../modules/qt_gui.pri
index 9636fb2..bf01343 100644 (file)
@@ -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
index 13c9914..9aefab9 100644 (file)
@@ -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
index 444f5c4..1ef3697 100644 (file)
@@ -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
index f54afd2..44326c2 100644 (file)
@@ -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
index 4d9a702..b767a3c 100644 (file)
@@ -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
index 1261fd9..2ff477c 100644 (file)
@@ -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
index e7ca42a..14d2422 100644 (file)
@@ -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
index 6ef7939..9fd9b2e 100644 (file)
@@ -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
index 7e1dc7c..5973216 100644 (file)
@@ -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
index d221007..d30c8b8 100644 (file)
@@ -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
index 0ede3d2..e7db636 100644 (file)
@@ -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
index 1539617..fc5d08d 100644 (file)
@@ -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
index 24dbb7a..849bd9e 100644 (file)
@@ -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
index 092f3ca..8329bce 100644 (file)
@@ -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)"
index 3ac54c3..f57a0c9 100644 (file)
@@ -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 \
index 94ab36c..94fefaf 100644 (file)
@@ -1,7 +1,7 @@
 TARGET = qgenericbearer
 include(../../qpluginbase.pri)
 
-QT = core network
+QT = core-private network-private
 
 HEADERS += qgenericengine.h \
            ../qnetworksession_impl.h \
index 6df346c..ba02f37 100644 (file)
@@ -1,7 +1,7 @@
 TARGET = qnativewifibearer
 include(../../qpluginbase.pri)
 
-QT = core network
+QT = core-private network-private
 
 HEADERS += qnativewifiengine.h \
            platformdefs.h \
index b3e0883..a9de156 100644 (file)
@@ -1,7 +1,7 @@
 TARGET = qnmbearer
 include(../../qpluginbase.pri)
 
-QT = core network dbus
+QT = core network-private dbus
 
 HEADERS += qnmdbushelper.h \
            qnetworkmanagerservice.h \
index fb3cb53..30c8827 100644 (file)
@@ -1,7 +1,7 @@
 TARGET = qglgraphicssystem
 include(../../qpluginbase.pri)
 
-QT += opengl
+QT += core-private gui-private opengl-private
 
 DESTDIR = $$QT.gui.plugins/graphicssystems
 
index 0958a86..b31beb3 100644 (file)
@@ -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
index 3a0e875..1e6c24d 100644 (file)
@@ -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)
index 64f55fd..7399c65 100644 (file)
@@ -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
index 4ff1763..6336aa9 100644 (file)
@@ -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
index 268bb86..17b41af 100644 (file)
@@ -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) {
index 550b24b..f1bdd6b 100644 (file)
@@ -1,6 +1,6 @@
 TARGET    = QtSql
 QPRO_PWD   = $$PWD
-QT         = core
+QT         = core-private
 
 CONFIG += module
 MODULE_PRI = ../modules/qt_sql.pri
index f48c8c1..50c1af1 100644 (file)
@@ -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 \
index 50ae2cf..6ff948c 100644 (file)
@@ -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 \
index e6fce60..68bb20b 100644 (file)
@@ -1,6 +1,6 @@
 TARGET     = QtXml
 QPRO_PWD   = $$PWD
-QT         = core
+QT         = core-private
 
 CONFIG += module
 MODULE_PRI = ../modules/qt_xml.pri
index 1245646..81458fc 100644 (file)
@@ -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\
index 9c2ce2c..3f9d97c 100644 (file)
@@ -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"))