Merge topic 'ninja-regen-metadata' into release-3.19

73d1c78bf4 ci: update to use ninja 1.10.2
11f4259362 Ninja: Clean metadata after regen during build on Windows with 1.10.2+

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5555
This commit is contained in:
Brad King
2020-12-01 14:26:39 +00:00
committed by Kitware Robot
4 changed files with 16 additions and 7 deletions
+6 -2
View File
@@ -539,10 +539,11 @@ void cmGlobalNinjaGenerator::Generate()
this->CloseBuildFileStreams();
#ifdef _WIN32
// The ninja tools will not be able to update metadata on Windows
// Older ninja tools will not be able to update metadata on Windows
// when we are re-generating inside an existing 'ninja' invocation
// because the outer tool has the files open for write.
if (!this->GetCMakeInstance()->GetRegenerateDuringBuild())
if (this->NinjaSupportsMetadataOnRegeneration ||
!this->GetCMakeInstance()->GetRegenerateDuringBuild())
#endif
{
this->CleanMetaData();
@@ -691,6 +692,9 @@ void cmGlobalNinjaGenerator::CheckNinjaFeatures()
this->NinjaSupportsMultipleOutputs = !cmSystemTools::VersionCompare(
cmSystemTools::OP_LESS, this->NinjaVersion.c_str(),
RequiredNinjaVersionForMultipleOutputs().c_str());
this->NinjaSupportsMetadataOnRegeneration = !cmSystemTools::VersionCompare(
cmSystemTools::OP_LESS, this->NinjaVersion.c_str(),
RequiredNinjaVersionForMetadataOnRegeneration().c_str());
}
bool cmGlobalNinjaGenerator::CheckLanguages(
+5
View File
@@ -373,6 +373,10 @@ public:
{
return "1.10";
}
static std::string RequiredNinjaVersionForMetadataOnRegeneration()
{
return "1.10.2";
}
bool SupportsConsolePool() const;
bool SupportsImplicitOuts() const;
bool SupportsManifestRestat() const;
@@ -538,6 +542,7 @@ private:
bool NinjaSupportsUnconditionalRecompactTool = false;
bool NinjaSupportsCleanDeadTool = false;
bool NinjaSupportsMultipleOutputs = false;
bool NinjaSupportsMetadataOnRegeneration = false;
private:
void InitOutputPathPrefix();