瀏覽代碼

Merge topic 'makefiles-compiler-deps-optims'

f395caf498 Makefiles dependencies: enhance robustness of deps parser

Acked-by: Kitware Robot <[email protected]>
Merge-request: !5568
Brad King 5 年之前
父節點
當前提交
486ede8064
共有 1 個文件被更改,包括 12 次插入1 次删除
  1. 12 1
      Source/cmDependsCompiler.cxx

+ 12 - 1
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());
         }