summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--mkspecs/features/uic.prf2
-rw-r--r--qmake/doc/src/qmake-manual.qdoc5
-rw-r--r--qmake/generators/makefile.cpp5
3 files changed, 11 insertions, 1 deletions
diff --git a/mkspecs/features/uic.prf b/mkspecs/features/uic.prf
index 1cedce5ae7..a5df0c7e8d 100644
--- a/mkspecs/features/uic.prf
+++ b/mkspecs/features/uic.prf
@@ -9,7 +9,7 @@ uic.depend_command = $$QMAKE_UIC_DEP -d ${QMAKE_FILE_IN}
uic.output = $$UI_DIR/$${QMAKE_MOD_UIC}${QMAKE_FILE_BASE}$${first(QMAKE_EXT_H)}
uic.input = FORMS
uic.variable_out = GENERATED_FILES
-uic.CONFIG += no_link target_predeps dep_lines
+uic.CONFIG += no_link target_predeps dep_lines dep_existing_only
uic.name = UIC ${QMAKE_FILE_IN}
silent:uic.commands = @echo uic ${QMAKE_FILE_IN} && $$uic.commands
QMAKE_EXTRA_COMPILERS += uic
diff --git a/qmake/doc/src/qmake-manual.qdoc b/qmake/doc/src/qmake-manual.qdoc
index 2e2962f86c..9358892ad7 100644
--- a/qmake/doc/src/qmake-manual.qdoc
+++ b/qmake/doc/src/qmake-manual.qdoc
@@ -4729,6 +4729,11 @@
\li The dependencies for the output only get generated from the depends
member and from nowhere else.
\row
+ \li dep_existing_only
+ \li Every dependency that is a result of .depend_command is checked for
+ existence. Non-existing dependencies are ignored.
+ This value was introduced in Qt 5.12.6.
+ \row
\li dep_lines
\li The output from the .depend_command is interpreted to be one file
per line. The default is to split on whitespace and is maintained
diff --git a/qmake/generators/makefile.cpp b/qmake/generators/makefile.cpp
index 11623cd147..fcd0ccd43e 100644
--- a/qmake/generators/makefile.cpp
+++ b/qmake/generators/makefile.cpp
@@ -1984,6 +1984,7 @@ MakefileGenerator::writeExtraCompilerTargets(QTextStream &t)
}
t << endl;
}
+ const bool existingDepsOnly = config.contains("dep_existing_only");
QStringList tmp_dep = project->values(ProKey(*it + ".depends")).toQStringList();
if (config.indexOf("combine") != -1) {
if (tmp_out.contains(QRegExp("(^|[^$])\\$\\{QMAKE_(?!VAR_)"))) {
@@ -2025,6 +2026,8 @@ MakefileGenerator::writeExtraCompilerTargets(QTextStream &t)
warn_msg(WarnDeprecated, ".depend_command for extra compiler %s"
" prints paths relative to source directory",
(*it).toLatin1().constData());
+ else if (existingDepsOnly)
+ file.clear();
else
file = absFile; // fallback for generated resources
} else {
@@ -2110,6 +2113,8 @@ MakefileGenerator::writeExtraCompilerTargets(QTextStream &t)
warn_msg(WarnDeprecated, ".depend_command for extra compiler %s"
" prints paths relative to source directory",
(*it).toLatin1().constData());
+ else if (existingDepsOnly)
+ file.clear();
else
file = absFile; // fallback for generated resources
} else {