summaryrefslogtreecommitdiffstats
path: root/qmake
diff options
context:
space:
mode:
authorTor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>2014-12-01 16:36:13 +0100
committerTor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>2014-12-03 22:06:15 +0100
commit0f88c5c1b99336a328f9a7123903fbc006251ea1 (patch)
treeb1ecf04d0f5deb121e0c0fabb4797a646a3e2e6d /qmake
parentb1652b869765896958ad85843d3eb5b0fc1e6ac4 (diff)
qmake: Add .qmake.stash/super to QMAKE_DISTCLEAN when owned by project
Running 'make distclean' should remove all files generated by qmake, including .qmake.stash/super. These files are considered owned by a particular project (and hence a candidate for distclean), if it lives in the same directory as the output dir of the project. Task-number: QTBUG-42678 Change-Id: I224e9bac039eeacb6561e18acc7f8e867da5dab8 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
Diffstat (limited to 'qmake')
-rw-r--r--qmake/generators/makefile.cpp16
1 files changed, 16 insertions, 0 deletions
diff --git a/qmake/generators/makefile.cpp b/qmake/generators/makefile.cpp
index bf9a9d8343..4c501983d8 100644
--- a/qmake/generators/makefile.cpp
+++ b/qmake/generators/makefile.cpp
@@ -444,6 +444,22 @@ MakefileGenerator::init()
setSystemIncludes(v["QMAKE_DEFAULT_INCDIRS"]);
+ const char * const cacheKeys[] = { "_QMAKE_STASH_", "_QMAKE_SUPER_CACHE_", 0 };
+ for (int i = 0; cacheKeys[i]; ++i) {
+ if (v[cacheKeys[i]].isEmpty())
+ continue;
+ const ProString &file = v[cacheKeys[i]].first();
+ if (file.isEmpty())
+ continue;
+
+ QFileInfo fi(fileInfo(file.toQString()));
+
+ // If the file lives in the output dir we treat it as 'owned' by
+ // the current project, so it should be distcleaned by it as well.
+ if (fi.path() == Option::output_dir)
+ v["QMAKE_DISTCLEAN"].append(fi.fileName());
+ }
+
ProStringList &quc = v["QMAKE_EXTRA_COMPILERS"];
//make sure the COMPILERS are in the correct input/output chain order