summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2020-12-04 13:31:03 (GMT)
committerKitware Robot <kwrobot@kitware.com>2020-12-04 13:31:58 (GMT)
commit486ede806404442f71adb0911b3bbfd3044df427 (patch)
treef628296f1ac07fa34828210a2c181e43ce5a5ff5
parentbb4d70c1650ce4300631c535df4914bda35cd66c (diff)
parentf395caf49845dc233c31dd92eaaacaa4f16a1241 (diff)
downloadCMake-486ede806404442f71adb0911b3bbfd3044df427.zip
CMake-486ede806404442f71adb0911b3bbfd3044df427.tar.gz
CMake-486ede806404442f71adb0911b3bbfd3044df427.tar.bz2
Merge topic 'makefiles-compiler-deps-optims'
f395caf498 Makefiles dependencies: enhance robustness of deps parser Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !5568
-rw-r--r--Source/cmDependsCompiler.cxx13
1 files changed, 12 insertions, 1 deletions
diff --git a/Source/cmDependsCompiler.cxx b/Source/cmDependsCompiler.cxx
index eb0f1d5..0f695c8 100644
--- a/Source/cmDependsCompiler.cxx
+++ b/Source/cmDependsCompiler.cxx
@@ -182,6 +182,11 @@ bool cmDependsCompiler::CheckDependencies(
ParseLine(line, depends);
}
+ if (depends.empty()) {
+ // unexpectedly empty, ignore it and continue
+ continue;
+ }
+
// depending of the effective format of the dependencies file generated
// by the compiler, the target can be wrongly identified as a
// dependency so remove it from the list
@@ -189,7 +194,13 @@ bool cmDependsCompiler::CheckDependencies(
depends.erase(depends.begin());
}
- if (isValidPath) {
+ // ensure source file is the first dependency
+ if (depends.front() != source) {
+ cm::erase(depends, source);
+ if (!isValidPath) {
+ depends.insert(depends.begin(), source);
+ }
+ } else if (isValidPath) {
// remove first dependency because it must not be filtered out
depends.erase(depends.begin());
}