Skip to content

Commit

Permalink
validate qconfig-*.h against qfeatures.txt
Browse files Browse the repository at this point in the history
Change-Id: I59b7e30cfaa2b1bf2c5d4a3e04b5169f3c9439b5
Reviewed-by: Joerg Bornemann <[email protected]>
  • Loading branch information
ossilator authored and The Qt Project committed Oct 29, 2013
1 parent f37ed85 commit d7a0d24
Show file tree
Hide file tree
Showing 3 changed files with 17 additions and 0 deletions.
1 change: 1 addition & 0 deletions configure
Original file line number Diff line number Diff line change
Expand Up @@ -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 {
Expand Down
11 changes: 11 additions & 0 deletions qtbase.pro
Original file line number Diff line number Diff line change
Expand Up @@ -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 = \
Expand Down
5 changes: 5 additions & 0 deletions tools/configure/configureapp.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down

0 comments on commit d7a0d24

Please sign in to comment.