summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorOswald Buddenhagen <oswald.buddenhagen@digia.com>2013-06-07 16:23:25 +0200
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-06-10 21:12:29 +0200
commit4fd568fa0633b17b4a8e24736a4766e81afff4f3 (patch)
treef505a0ab4612c2d961455151252cd37c83a4e7a8
parentf3331e14e68089035cc302e11c6e60153f806026 (diff)
redo include path logic for pre-generated headers
make the include dir in the source tree the "main" include path, as that's where the majority of the headers is. then selectively add the shadowed dirs. Change-Id: I03ad13cfcf77175c141b94d41b1221740d851faf Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
-rw-r--r--mkspecs/features/qt_module_pris.prf48
-rw-r--r--src/tools/bootstrap-dbus/bootstrap-dbus.pro3
-rw-r--r--src/tools/bootstrap/bootstrap.pro5
3 files changed, 37 insertions, 19 deletions
diff --git a/mkspecs/features/qt_module_pris.prf b/mkspecs/features/qt_module_pris.prf
index a80b44f2f6..81b37f0e92 100644
--- a/mkspecs/features/qt_module_pris.prf
+++ b/mkspecs/features/qt_module_pris.prf
@@ -10,8 +10,17 @@
#
load(qt_build_paths)
+# Pre-generated headers in the source tree and
+# - shadow build or
+# - non-shadow non-prefix build of a module which is not qtbase (because the build-time
+# generated headers all end up in qtbase).
+!git_build:if(!equals(_PRO_FILE_PWD_, $$OUT_PWD) \
+ |if(!prefix_build:!equals(MODULE_BASE_INDIR, $$[QT_HOST_PREFIX]))): \
+ CONFIG += split_incpath
+force_independent|split_incpath: \
+ CONFIG += need_fwd_pri
MODULE_FWD_PRI = $$MODULE_QMAKE_OUTDIR/mkspecs/modules/qt_lib_$${MODULE}.pri
-force_independent: \
+need_fwd_pri: \
MODULE_PRI = $$MODULE_QMAKE_OUTDIR/mkspecs/modules-inst/qt_lib_$${MODULE}.pri
else: \
MODULE_PRI = $$MODULE_FWD_PRI
@@ -56,20 +65,22 @@ else: \
MODULE_PRIVATE_INCLUDES = \$\$QT_MODULE_INCLUDE_BASE/$$MODULE_INCNAME/$$VERSION \
\$\$QT_MODULE_INCLUDE_BASE/$$MODULE_INCNAME/$$VERSION/$$MODULE_INCNAME
}
+ split_incpath: \
+ MODULE_SHADOW_INCLUDES = $$replace(MODULE_INCLUDES, ^\\\$\\\$QT_MODULE_INCLUDE_BASE, \
+ $$MODULE_BASE_OUTDIR/include)
MODULE_INCLUDES += $$MODULE_AUX_INCLUDES
MODULE_PRIVATE_INCLUDES += $$MODULE_PRIVATE_AUX_INCLUDES
- !git_build:if(!equals(_PRO_FILE_PWD_, $$OUT_PWD) \
- |if(!prefix_build:!equals(MODULE_BASE_DIR, $$[QT_HOST_PREFIX]))) {
- pub_inc = $$replace(MODULE_INCLUDES, ^\\\$\\\$QT_MODULE_INCLUDE_BASE, $$MODULE_BASE_DIR/include)
- priv_inc = $$replace(MODULE_PRIVATE_INCLUDES, ^\\\$\\\$QT_MODULE_INCLUDE_BASE, $$MODULE_BASE_DIR/include)
- force_independent {
- MODULE_FWD_PRI_CONT_SUFFIX = \
- "QT.$${MODULE}.includes += $$pub_inc" \
- "QT.$${MODULE}.private_includes = $$priv_inc"
- } else {
- MODULE_INCLUDES += $$pub_inc
- MODULE_PRIVATE_INCLUDES = $$priv_inc
- }
+ internal_module {
+ MODULE_PRIVATE_INCLUDES = $$MODULE_INCLUDES $$MODULE_PRIVATE_INCLUDES
+ MODULE_INCLUDES =
+ MODULE_PRIVATE_SHADOW_INCLUDES = $$MODULE_SHADOW_INCLUDES
+ MODULE_SHADOW_INCLUDES =
+ }
+ split_incpath {
+ !isEmpty(MODULE_SHADOW_INCLUDES): \
+ MODULE_FWD_PRI_CONT_SUFFIX += "QT.$${MODULE}.includes += $$MODULE_SHADOW_INCLUDES"
+ !isEmpty(MODULE_PRIVATE_SHADOW_INCLUDES): \
+ MODULE_FWD_PRI_CONT_SUFFIX += "QT.$${MODULE}.private_includes += $$MODULE_PRIVATE_SHADOW_INCLUDES"
}
MODULE_PRI_CONT = \
"QT.$${MODULE}.VERSION = $${VERSION}" \
@@ -100,12 +111,17 @@ else: \
write_file($$MODULE_PRI, MODULE_PRI_CONT)|error("Aborting.")
MODULE_PRI_FILES = $$MODULE_PRI
- force_independent {
+ need_fwd_pri {
+
+ split_incpath: \
+ MODULE_BASE_INCDIR = $$MODULE_BASE_INDIR
+ else: \
+ MODULE_BASE_INCDIR = $$MODULE_BASE_OUTDIR
# Create a forwarding module .pri file
MODULE_FWD_PRI_CONT = \
"QT_MODULE_BIN_BASE = $$MODULE_BASE_OUTDIR/bin" \
- "QT_MODULE_INCLUDE_BASE = $$MODULE_BASE_OUTDIR/include" \
+ "QT_MODULE_INCLUDE_BASE = $$MODULE_BASE_INCDIR/include" \
"QT_MODULE_IMPORT_BASE = $$MODULE_BASE_OUTDIR/imports" \
"QT_MODULE_QML_BASE = $$MODULE_BASE_OUTDIR/qml" \
"QT_MODULE_LIB_BASE = $$MODULE_BASE_OUTDIR/lib" \
@@ -118,7 +134,7 @@ else: \
touch($$MODULE_FWD_PRI, $$MODULE_PRI)
MODULE_PRI_FILES += $$MODULE_FWD_PRI
- } else { # prefix_build
+ } else {
# This is needed for the direct include() below. Mirrors qt_config.prf
QT_MODULE_BIN_BASE = $$[QT_INSTALL_BINS]
diff --git a/src/tools/bootstrap-dbus/bootstrap-dbus.pro b/src/tools/bootstrap-dbus/bootstrap-dbus.pro
index 6af70efda7..62f9f96a9b 100644
--- a/src/tools/bootstrap-dbus/bootstrap-dbus.pro
+++ b/src/tools/bootstrap-dbus/bootstrap-dbus.pro
@@ -7,8 +7,9 @@ CONFIG += no_module_headers internal_module force_bootstrap
DEFINES += \
QT_NO_CAST_FROM_ASCII
+MODULE_INCLUDES = \
+ \$\$QT_MODULE_INCLUDE_BASE/QtDBus
MODULE_PRIVATE_INCLUDES = \
- \$\$QT_MODULE_INCLUDE_BASE/QtDBus \
\$\$QT_MODULE_INCLUDE_BASE/QtDBus/$$QT_VERSION \
\$\$QT_MODULE_INCLUDE_BASE/QtDBus/$$QT_VERSION/QtDBus
diff --git a/src/tools/bootstrap/bootstrap.pro b/src/tools/bootstrap/bootstrap.pro
index 972f57260e..bf19828634 100644
--- a/src/tools/bootstrap/bootstrap.pro
+++ b/src/tools/bootstrap/bootstrap.pro
@@ -30,12 +30,13 @@ DEFINES += \
DEFINES -= QT_EVAL
-MODULE_PRIVATE_INCLUDES = \
+MODULE_INCLUDES = \
\$\$QT_MODULE_INCLUDE_BASE \
\$\$QT_MODULE_INCLUDE_BASE/QtCore \
+ \$\$QT_MODULE_INCLUDE_BASE/QtXml
+MODULE_PRIVATE_INCLUDES = \
\$\$QT_MODULE_INCLUDE_BASE/QtCore/$$QT_VERSION \
\$\$QT_MODULE_INCLUDE_BASE/QtCore/$$QT_VERSION/QtCore \
- \$\$QT_MODULE_INCLUDE_BASE/QtXml \
\$\$QT_MODULE_INCLUDE_BASE/QtXml/$$QT_VERSION \
\$\$QT_MODULE_INCLUDE_BASE/QtXml/$$QT_VERSION/QtXml