summaryrefslogtreecommitdiffstats
path: root/Source
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2007-09-10 14:22:19 (GMT)
committerBrad King <brad.king@kitware.com>2007-09-10 14:22:19 (GMT)
commitf2ac53bb10889ea27c511634512414bb31cfb4ea (patch)
tree4e6c342fc9550908f84036a84ed2335415cb4197 /Source
parent5dade94eeca771b333465d17ebeb3ec54dfe15c7 (diff)
downloadCMake-f2ac53bb10889ea27c511634512414bb31cfb4ea.zip
CMake-f2ac53bb10889ea27c511634512414bb31cfb4ea.tar.gz
CMake-f2ac53bb10889ea27c511634512414bb31cfb4ea.tar.bz2
ENH: Added XCODE_ATTRIBUTE_<an-attribute> property to allow direct setting of Xcode target attributes in generated projects. For example, one may set the prefix header property and the corresponding precompiled option to do precompiled headers.
Diffstat (limited to 'Source')
-rw-r--r--Source/cmGlobalXCodeGenerator.cxx15
-rw-r--r--Source/cmTarget.cxx6
2 files changed, 21 insertions, 0 deletions
diff --git a/Source/cmGlobalXCodeGenerator.cxx b/Source/cmGlobalXCodeGenerator.cxx
index 2f81f09..6b019e9 100644
--- a/Source/cmGlobalXCodeGenerator.cxx
+++ b/Source/cmGlobalXCodeGenerator.cxx
@@ -1576,6 +1576,21 @@ void cmGlobalXCodeGenerator::CreateBuildSettings(cmTarget& target,
{
debugStr = "NO";
}
+
+ // Convert "XCODE_ATTRIBUTE_*" properties directly.
+ {
+ cmPropertyMap const& props = target.GetProperties();
+ for(cmPropertyMap::const_iterator i = props.begin();
+ i != props.end(); ++i)
+ {
+ if(i->first.find("XCODE_ATTRIBUTE_") == 0)
+ {
+ buildSettings->AddAttribute(i->first.substr(16).c_str(),
+ this->CreateString(i->second.GetValue()));
+ }
+ }
+ }
+
buildSettings->AddAttribute("GCC_GENERATE_DEBUGGING_SYMBOLS",
this->CreateString(debugStr));
buildSettings->AddAttribute("GCC_OPTIMIZATION_LEVEL",
diff --git a/Source/cmTarget.cxx b/Source/cmTarget.cxx
index 1f3250b..0a2cda4 100644
--- a/Source/cmTarget.cxx
+++ b/Source/cmTarget.cxx
@@ -277,6 +277,12 @@ void cmTarget::DefineProperties(cmake *cm)
"All Windows-based systems including Cygwin are DLL platforms.");
cm->DefineProperty
+ ("XCODE_ATTRIBUTE_<an-attribute>", cmProperty::TARGET,
+ "Set Xcode target attributes directly.",
+ "Tell the Xcode generator to set '<an-attribute>' to a given value "
+ "in the generated Xcode project. Ignored on other generators.");
+
+ cm->DefineProperty
("GENERATOR_FILE_NAME", cmProperty::TARGET,
"Generator's file for this target.",
"An internal property used by some generators to record the name of "