diff options
Diffstat (limited to 'Source/cmDependsCompiler.cxx')
-rw-r--r-- | Source/cmDependsCompiler.cxx | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/Source/cmDependsCompiler.cxx b/Source/cmDependsCompiler.cxx index eb0f1d5b8a..0f695c8ce8 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()); } |