summaryrefslogtreecommitdiffstats
path: root/Source/cmGlobalGenerator.cxx
diff options
context:
space:
mode:
authorJustin Goshi <jgoshi@microsoft.com>2020-06-11 20:06:02 (GMT)
committerJustin Goshi <jgoshi@microsoft.com>2020-06-16 23:32:34 (GMT)
commit742ff97f809410055b22405a6b5728e72c458683 (patch)
tree3587f801e2f0801ea42b45ba3a7bdc0624cf6d5c /Source/cmGlobalGenerator.cxx
parent0892c798f795c6072ce882552384187db86797f0 (diff)
downloadCMake-742ff97f809410055b22405a6b5728e72c458683.zip
CMake-742ff97f809410055b22405a6b5728e72c458683.tar.gz
CMake-742ff97f809410055b22405a6b5728e72c458683.tar.bz2
Refactor language standard computation
Instead of mutating the configure-time cmTarget's properties at generate time, compute and store it in a cmGeneratorTarget field.
Diffstat (limited to 'Source/cmGlobalGenerator.cxx')
-rw-r--r--Source/cmGlobalGenerator.cxx10
1 files changed, 4 insertions, 6 deletions
diff --git a/Source/cmGlobalGenerator.cxx b/Source/cmGlobalGenerator.cxx
index 1ed5e8b..4b4ffda 100644
--- a/Source/cmGlobalGenerator.cxx
+++ b/Source/cmGlobalGenerator.cxx
@@ -1442,12 +1442,10 @@ bool cmGlobalGenerator::Compute()
localGen->AddHelperCommands();
}
- // Finalize the set of compile features for each target.
- // FIXME: This turns into calls to cmMakefile::AddRequiredTargetFeature
- // which actually modifies the <lang>_STANDARD target property
- // on the original cmTarget instance. It accumulates features
- // across all configurations. Some refactoring is needed to
- // compute a per-config resulta purely during generation.
+ // Perform up-front computation in order to handle errors (such as unknown
+ // features) at this point. While processing the compile features we also
+ // calculate and cache the language standard required by the compile
+ // features.
for (const auto& localGen : this->LocalGenerators) {
if (!localGen->ComputeTargetCompileFeatures()) {
return false;