diff options
author | Mike Fitzgerald <michaeljohnfitzgerald@gmail.com> | 2016-01-08 22:33:28 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2016-01-11 18:04:34 (GMT) |
commit | af39f11521af7fc2ec037103df1ad5a616dd7f19 (patch) | |
tree | 9525ac5a65b7388987b765cc98e9ea40d904048c /Source/cmVisualStudio10TargetGenerator.cxx | |
parent | cedbb7994dddce2c3fdf846bf4563c846adf4632 (diff) | |
download | CMake-af39f11521af7fc2ec037103df1ad5a616dd7f19.zip CMake-af39f11521af7fc2ec037103df1ad5a616dd7f19.tar.gz CMake-af39f11521af7fc2ec037103df1ad5a616dd7f19.tar.bz2 |
VS: Implement VS_GLOBAL_* target properties in VS 2010+ (#13666)
These have been documented but previously only implemented for VS 2008
and below.
Diffstat (limited to 'Source/cmVisualStudio10TargetGenerator.cxx')
-rw-r--r-- | Source/cmVisualStudio10TargetGenerator.cxx | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/Source/cmVisualStudio10TargetGenerator.cxx b/Source/cmVisualStudio10TargetGenerator.cxx index 669c785..c9705ac 100644 --- a/Source/cmVisualStudio10TargetGenerator.cxx +++ b/Source/cmVisualStudio10TargetGenerator.cxx @@ -448,6 +448,32 @@ void cmVisualStudio10TargetGenerator::Generate() (*this->BuildFileStream) << cmVS10EscapeXML(targetFrameworkVersion) << "</TargetFrameworkVersion>\n"; } + + std::vector<std::string> keys = this->GeneratorTarget->GetPropertyKeys(); + for(std::vector<std::string>::const_iterator keyIt = keys.begin(); + keyIt != keys.end(); ++keyIt) + { + static const char* prefix = "VS_GLOBAL_"; + if(keyIt->find(prefix) != 0) + continue; + std::string globalKey = keyIt->substr(strlen(prefix)); + // Skip invalid or separately-handled properties. + if(globalKey == "" || + globalKey == "PROJECT_TYPES" || + globalKey == "ROOTNAMESPACE" || + globalKey == "KEYWORD") + { + continue; + } + const char* value = this->GeneratorTarget->GetProperty(keyIt->c_str()); + if (!value) + continue; + this->WriteString("<", 2); + (*this->BuildFileStream) << globalKey << ">" + << cmVS10EscapeXML(value) + << "</" << globalKey << ">\n"; + } + this->WriteString("</PropertyGroup>\n", 1); this->WriteString("<Import Project=" "\"$(VCTargetsPath)\\Microsoft.Cpp.Default.props\" />\n", |