summaryrefslogtreecommitdiffstats
path: root/Source/cmGeneratorTarget.cxx
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2017-04-28 18:17:13 (GMT)
committerBrad King <brad.king@kitware.com>2017-05-01 14:33:05 (GMT)
commitb115bc49ff26da9db3e9238a98030fd94847d0d0 (patch)
tree2de3c200b335c48a9bb8d96e7fa994e7d93943d4 /Source/cmGeneratorTarget.cxx
parente80e8eb609cc7dd8c4dca46b9c2819afd2293229 (diff)
downloadCMake-b115bc49ff26da9db3e9238a98030fd94847d0d0.zip
CMake-b115bc49ff26da9db3e9238a98030fd94847d0d0.tar.gz
CMake-b115bc49ff26da9db3e9238a98030fd94847d0d0.tar.bz2
Features: Refactor <LANG>_STANDARD update
In order to support generator expressions in target COMPILE_FEATURES we apply them at generate time. Move this step to the beginning of generation instead of doing it on demand while collecting flags. This avoids repeating the process unnecessarily, and will then allow `cmLocalGenerator::AddCompilerRequirementFlag` to be used any time during generation.
Diffstat (limited to 'Source/cmGeneratorTarget.cxx')
-rw-r--r--Source/cmGeneratorTarget.cxx13
1 files changed, 13 insertions, 0 deletions
diff --git a/Source/cmGeneratorTarget.cxx b/Source/cmGeneratorTarget.cxx
index a0f677b..3f50e32 100644
--- a/Source/cmGeneratorTarget.cxx
+++ b/Source/cmGeneratorTarget.cxx
@@ -2919,6 +2919,19 @@ void cmGeneratorTarget::ComputeTargetManifest(const std::string& config) const
}
}
+bool cmGeneratorTarget::ComputeCompileFeatures(std::string const& config) const
+{
+ std::vector<std::string> features;
+ this->GetCompileFeatures(features, config);
+ for (std::vector<std::string>::const_iterator it = features.begin();
+ it != features.end(); ++it) {
+ if (!this->Makefile->AddRequiredTargetFeature(this->Target, *it)) {
+ return false;
+ }
+ }
+ return true;
+}
+
std::string cmGeneratorTarget::GetImportedLibName(
std::string const& config) const
{