summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorOswald Buddenhagen <oswald.buddenhagen@digia.com>2013-10-25 21:04:35 +0200
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-10-29 15:38:06 +0100
commitd7a0d243a984f032a8f838e7b44297eac81ef190 (patch)
tree7c1013364658b76275a07e53f4e2b919aa14ebd9
parentf37ed85a55f977159ea79d6ecbefd857d7d6cb63 (diff)
validate qconfig-*.h against qfeatures.txt
Change-Id: I59b7e30cfaa2b1bf2c5d4a3e04b5169f3c9439b5 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
-rwxr-xr-xconfigure1
-rw-r--r--qtbase.pro11
-rw-r--r--tools/configure/configureapp.cpp5
3 files changed, 17 insertions, 0 deletions
diff --git a/configure b/configure
index 6f56d42d36..36f3bb522f 100755
--- a/configure
+++ b/configure
@@ -6670,6 +6670,7 @@ echo "QT_BUILD_PARTS += $CFG_BUILD_PARTS" >> "$QTMODULE.tmp"
if [ -n "$CFG_SKIP_MODULES" ]; then
echo "QT_SKIP_MODULES += $CFG_SKIP_MODULES" >> "$QTMODULE.tmp"
fi
+echo "QT_QCONFIG_PATH = ${CFG_QCONFIG_PATH#$relpath/src/corelib/global/}" >> "$QTMODULE.tmp"
cat >>"$QTMODULE.tmp" <<EOF
host_build {
diff --git a/qtbase.pro b/qtbase.pro
index 3fc759615b..d608695970 100644
--- a/qtbase.pro
+++ b/qtbase.pro
@@ -145,6 +145,17 @@ FWD_FEATURES_H = \
'$${LITERAL_HASH}include "../../src/corelib/global/qfeatures.h"'
write_file($$OUT_PWD/include/QtCore/qfeatures.h, FWD_FEATURES_H)|error("Aborting.")
+lines = $$cat($$absolute_path($$QT_QCONFIG_PATH, $$PWD/src/corelib/global), lines)
+for (line, lines) {
+ # We ignore all defines that don't follow the #ifndef + indent pattern.
+ # This makes it possible to have unchecked defines which are no features.
+ t = $$replace(line, "^$${LITERAL_HASH} define QT_NO_(\\S+)\\s*$", "\\1")
+ !isEqual(t, $$line) {
+ isEmpty(features.$${t}.name): \
+ error("$$QT_QCONFIG_PATH disables unknown feature $$t")
+ }
+}
+
#mkspecs
mkspecs.path = $$[QT_HOST_DATA]/mkspecs
mkspecs.files = \
diff --git a/tools/configure/configureapp.cpp b/tools/configure/configureapp.cpp
index cc35b425a6..0fd35dd2fa 100644
--- a/tools/configure/configureapp.cpp
+++ b/tools/configure/configureapp.cpp
@@ -2860,6 +2860,11 @@ void Configure::generateCachefile()
moduleStream << "QT_BUILD_PARTS += " << buildParts.join(' ') << endl;
if (!skipModules.isEmpty())
moduleStream << "QT_SKIP_MODULES += " << skipModules.join(' ') << endl;
+ QString qcpath = dictionary["QCONFIG_PATH"];
+ QString qlpath = sourcePath + "/src/corelib/global/";
+ if (qcpath.startsWith(qlpath))
+ qcpath.remove(0, qlpath.length());
+ moduleStream << "QT_QCONFIG_PATH = " << qcpath << endl;
moduleStream << endl;
moduleStream << "host_build {" << endl;