From f395caf49845dc233c31dd92eaaacaa4f16a1241 Mon Sep 17 00:00:00 2001 From: Marc Chevrier Date: Wed, 2 Dec 2020 12:29:31 +0100 Subject: Makefiles dependencies: enhance robustness of deps parser --- Source/cmDependsCompiler.cxx | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) 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()); } -- cgit v0.12