1
0
mirror of https://github.com/Kitware/CMake.git synced 2025-10-17 07:11:52 +08:00

Ninja: Remove cleandead on regeneration

Remove the `cleandead` tool invocation added by commit fb18215904
(Ninja: clean ninja metadata once generated, 2019-05-13,
v3.17.0-rc1~207^2).  The tool deletes files that were not previously
deleted by regenerating the build system.  Also, there are use cases
where no-longer-generated files should not be removed, such as Qt's TS
files.

Fixes: #21549
This commit is contained in:
Brad King
2020-12-14 10:06:26 -05:00
parent 566e96d42d
commit 73a961eaba
2 changed files with 1 additions and 15 deletions

View File

@@ -573,18 +573,9 @@ void cmGlobalNinjaGenerator::CleanMetaData()
// Skip some ninja tools if they need 'build.ninja' but it is missing. // Skip some ninja tools if they need 'build.ninja' but it is missing.
bool const missingBuildManifest = expectBuildManifest && bool const missingBuildManifest = expectBuildManifest &&
(this->NinjaSupportsCleanDeadTool || this->NinjaSupportsUnconditionalRecompactTool &&
this->NinjaSupportsUnconditionalRecompactTool) &&
!cmSystemTools::FileExists("build.ninja"); !cmSystemTools::FileExists("build.ninja");
// The `cleandead` tool needs to know about all outputs in the build we just
// wrote out. Ninja-Multi doesn't have a single `build.ninja` we can use that
// is the union of all generated configurations, so we can't run it reliably
// in that case.
if (this->NinjaSupportsCleanDeadTool && expectBuildManifest &&
!missingBuildManifest) {
run_ninja_tool({ "cleandead" });
}
// The `recompact` tool loads the manifest. As above, we don't have a single // The `recompact` tool loads the manifest. As above, we don't have a single
// `build.ninja` to load for this in Ninja-Multi. This may be relaxed in the // `build.ninja` to load for this in Ninja-Multi. This may be relaxed in the
// future pending further investigation into how Ninja works upstream // future pending further investigation into how Ninja works upstream
@@ -671,9 +662,6 @@ void cmGlobalNinjaGenerator::CheckNinjaFeatures()
} }
} }
} }
this->NinjaSupportsCleanDeadTool = !cmSystemTools::VersionCompare(
cmSystemTools::OP_LESS, this->NinjaVersion.c_str(),
RequiredNinjaVersionForCleanDeadTool().c_str());
this->NinjaSupportsUnconditionalRecompactTool = this->NinjaSupportsUnconditionalRecompactTool =
!cmSystemTools::VersionCompare( !cmSystemTools::VersionCompare(
cmSystemTools::OP_LESS, this->NinjaVersion.c_str(), cmSystemTools::OP_LESS, this->NinjaVersion.c_str(),

View File

@@ -370,7 +370,6 @@ public:
{ {
return "1.10"; return "1.10";
} }
static std::string RequiredNinjaVersionForCleanDeadTool() { return "1.10"; }
bool SupportsConsolePool() const; bool SupportsConsolePool() const;
bool SupportsImplicitOuts() const; bool SupportsImplicitOuts() const;
bool SupportsManifestRestat() const; bool SupportsManifestRestat() const;
@@ -533,7 +532,6 @@ private:
bool NinjaSupportsDyndeps = false; bool NinjaSupportsDyndeps = false;
bool NinjaSupportsRestatTool = false; bool NinjaSupportsRestatTool = false;
bool NinjaSupportsUnconditionalRecompactTool = false; bool NinjaSupportsUnconditionalRecompactTool = false;
bool NinjaSupportsCleanDeadTool = false;
private: private:
void InitOutputPathPrefix(); void InitOutputPathPrefix();