Selaa lähdekoodia

cmLocalGenerator: Simplify unity source copy-if-different logic

Brad King 4 vuotta sitten
vanhempi
sitoutus
3017b3e7d4
1 muutettua tiedostoa jossa 8 lisäystä ja 13 poistoa
  1. 8 13
      Source/cmLocalGenerator.cxx

+ 8 - 13
Source/cmLocalGenerator.cxx

@@ -2813,20 +2813,15 @@ std::string cmLocalGenerator::WriteUnitySource(
   cmValue beforeInclude, cmValue afterInclude, std::string filename) const
 {
   cmValue uniqueIdName = target->GetProperty("UNITY_BUILD_UNIQUE_ID");
-  const std::string filename_tmp = cmStrCat(filename, ".tmp");
-  {
-    cmGeneratedFileStream file(
-      filename_tmp, false,
-      target->GetGlobalGenerator()->GetMakefileEncoding());
-    file << "/* generated by CMake */\n\n";
-
-    for (cmSourceFile* sf : sources) {
-      RegisterUnitySources(target, sf, filename);
-      IncludeFileInUnitySources(file, sf->ResolveFullPath(), beforeInclude,
-                                afterInclude, uniqueIdName);
-    }
+  cmGeneratedFileStream file(
+    filename, false, target->GetGlobalGenerator()->GetMakefileEncoding());
+  file.SetCopyIfDifferent(true);
+  file << "/* generated by CMake */\n\n";
+  for (cmSourceFile* sf : sources) {
+    RegisterUnitySources(target, sf, filename);
+    IncludeFileInUnitySources(file, sf->ResolveFullPath(), beforeInclude,
+                              afterInclude, uniqueIdName);
   }
-  cmSystemTools::MoveFileIfDifferent(filename_tmp, filename);
   return filename;
 }