summaryrefslogtreecommitdiffstats
path: root/qmake
diff options
context:
space:
mode:
authorLiang Qi <liang.qi@qt.io>2019-05-09 13:06:22 +0000
committerThe Qt Project <gerrit-noreply@qt-project.org>2019-05-09 13:06:22 +0000
commit591116490cf313808e8ba05ddd066656a1d1a566 (patch)
tree7aead440549b9052d1a53f4dbea08eb2b87c8be4 /qmake
parent3d8ed3ba969ba958401dbf5e6760cf0788f1888e (diff)
parente56d3b03ed92743f33eb7ca1a5aa61dbdedaf19b (diff)
Merge "Merge remote-tracking branch 'origin/5.12' into 5.13" into refs/staging/5.13
Diffstat (limited to 'qmake')
-rw-r--r--qmake/doc/src/qmake-manual.qdoc4
-rw-r--r--qmake/generators/makefiledeps.cpp10
2 files changed, 12 insertions, 2 deletions
diff --git a/qmake/doc/src/qmake-manual.qdoc b/qmake/doc/src/qmake-manual.qdoc
index e669ca77a7..27f45089d1 100644
--- a/qmake/doc/src/qmake-manual.qdoc
+++ b/qmake/doc/src/qmake-manual.qdoc
@@ -1163,6 +1163,10 @@
\snippet code/doc_src_qmake-manual.pro 30
+ \note The list of supported characters can depend on
+ the used build tool. In particular, parentheses do not
+ work with \c{make}.
+
\target DISTFILES
\section1 DISTFILES
diff --git a/qmake/generators/makefiledeps.cpp b/qmake/generators/makefiledeps.cpp
index decc1d980c..1aab1987d2 100644
--- a/qmake/generators/makefiledeps.cpp
+++ b/qmake/generators/makefiledeps.cpp
@@ -837,7 +837,9 @@ bool QMakeSourceFileInfo::findDeps(SourceFile *file)
if(inc) {
if(!includes)
includes = new SourceFiles;
- SourceFile *dep = includes->lookupFile(inc);
+ /* QTBUG-72383: Local includes "foo.h" must first be resolved relative to the
+ * sourceDir, only global includes <bar.h> are unique. */
+ SourceFile *dep = try_local ? nullptr : includes->lookupFile(inc);
if(!dep) {
bool exists = false;
QMakeLocalFileName lfn(inc);
@@ -876,7 +878,11 @@ bool QMakeSourceFileInfo::findDeps(SourceFile *file)
dep->file = lfn;
dep->type = QMakeSourceFileInfo::TYPE_C;
files->addFile(dep);
- includes->addFile(dep, inc, false);
+ /* QTBUG-72383: Local includes "foo.h" are keyed by the resolved
+ * path (stored in dep itself), only global includes <bar.h> are
+ * unique keys immediately. */
+ const char *key = try_local ? nullptr : inc;
+ includes->addFile(dep, key, false);
}
dep->exists = exists;
}