From f2ac53bb10889ea27c511634512414bb31cfb4ea Mon Sep 17 00:00:00 2001 From: Brad King Date: Mon, 10 Sep 2007 10:22:19 -0400 Subject: [PATCH] ENH: Added XCODE_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. --- Source/cmGlobalXCodeGenerator.cxx | 15 +++++++++++++++ Source/cmTarget.cxx | 6 ++++++ 2 files changed, 21 insertions(+) diff --git a/Source/cmGlobalXCodeGenerator.cxx b/Source/cmGlobalXCodeGenerator.cxx index 2f81f097ce..6b019e97ca 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 1f3250b10a..0a2cda4bf5 100644 --- a/Source/cmTarget.cxx +++ b/Source/cmTarget.cxx @@ -276,6 +276,12 @@ void cmTarget::DefineProperties(cmake *cm) "exported symbols and then used for linking. " "All Windows-based systems including Cygwin are DLL platforms."); + cm->DefineProperty + ("XCODE_ATTRIBUTE_", cmProperty::TARGET, + "Set Xcode target attributes directly.", + "Tell the Xcode generator to set '' 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.",