From 3017b3e7d4da702c8b1e2dbfb9657b7517e108b8 Mon Sep 17 00:00:00 2001 From: Brad King Date: Wed, 10 Nov 2021 11:25:12 -0500 Subject: cmLocalGenerator: Simplify unity source copy-if-different logic --- Source/cmLocalGenerator.cxx | 21 ++++++++------------- 1 file changed, 8 insertions(+), 13 deletions(-) diff --git a/Source/cmLocalGenerator.cxx b/Source/cmLocalGenerator.cxx index 66b49e0..2b5b711 100644 --- a/Source/cmLocalGenerator.cxx +++ b/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; } -- cgit v0.12