summaryrefslogtreecommitdiffstats
path: root/Source/cmLocalGenerator.cxx
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2009-10-02 17:52:01 (GMT)
committerBrad King <brad.king@kitware.com>2009-10-02 17:52:01 (GMT)
commit1e482435912f44e05b5e67f19b1bc14ff58a3169 (patch)
treec317a934a8bfba0b942f2e0041c8e2cd8de50040 /Source/cmLocalGenerator.cxx
parent57df2abca804dd8e98d000441fc0035eef9d4829 (diff)
downloadCMake-1e482435912f44e05b5e67f19b1bc14ff58a3169.zip
CMake-1e482435912f44e05b5e67f19b1bc14ff58a3169.tar.gz
CMake-1e482435912f44e05b5e67f19b1bc14ff58a3169.tar.bz2
Introduce "build feature" lookup framework
This creates cmTarget::GetFeature and cmMakefile::GetFeature methods to query "build feature" properties. These methods handle local-to-global scope and per-configuration property lookup. Specific build features will be defined later.
Diffstat (limited to 'Source/cmLocalGenerator.cxx')
-rw-r--r--Source/cmLocalGenerator.cxx20
1 files changed, 20 insertions, 0 deletions
diff --git a/Source/cmLocalGenerator.cxx b/Source/cmLocalGenerator.cxx
index ee55957..1d5aba4 100644
--- a/Source/cmLocalGenerator.cxx
+++ b/Source/cmLocalGenerator.cxx
@@ -2083,6 +2083,26 @@ void cmLocalGenerator::AppendDefines(std::string& defines,
}
//----------------------------------------------------------------------------
+void cmLocalGenerator::AppendFeatureOptions(
+ std::string& flags, const char* lang, const char* feature)
+{
+ std::string optVar = "CMAKE_";
+ optVar += lang;
+ optVar += "_COMPILE_OPTIONS_";
+ optVar += feature;
+ if(const char* optionList = this->Makefile->GetDefinition(optVar.c_str()))
+ {
+ std::vector<std::string> options;
+ cmSystemTools::ExpandListArgument(optionList, options);
+ for(std::vector<std::string>::const_iterator oi = options.begin();
+ oi != options.end(); ++oi)
+ {
+ this->AppendFlags(flags, this->EscapeForShell(oi->c_str()).c_str());
+ }
+ }
+}
+
+//----------------------------------------------------------------------------
std::string
cmLocalGenerator::ConstructComment(const cmCustomCommand& cc,
const char* default_comment)