On 05/30/2012 02:45 PM, Brad King wrote:
> Thanks for your patience with so many rounds of review.
> I think the topic is in good shape other than for Xcode.
> I'll try to look at Xcode when I get a chance.
The current implementation can be refactored in a way that
should make Xcode easy. Instead of hard-coding duplicate
code in the Makefile and Ninja generators to call the
cmLocalGenerator::GetShouldUseOldFlags
cmLocalGenerator::AddSharedFlags
cmLocalGenerator::AddPositionIndependentFlags
methods factor that logic out into a new
cmLocalGenerator::AddCMP0018Flags(
std::string& flags,
cmTarget* target,
std::string const& language);
method. Then the above-three methods can be made *private*
inside cmLocalGenerator. Please squash this approach back
into the current commits in the topic.
Then simply use the patch below for Xcode.
Thanks,
-Brad
diff --git a/Source/cmGlobalXCodeGenerator.cxx
b/Source/cmGlobalXCodeGenerator.cxx
index 522f3da..5a5ce01 100644
--- a/Source/cmGlobalXCodeGenerator.cxx
+++ b/Source/cmGlobalXCodeGenerator.cxx
@@ -1594,14 +1594,14 @@ void
cmGlobalXCodeGenerator::CreateBuildSettings(cmTarget& target,
if(strcmp(lang, "CXX") == 0)
{
this->CurrentLocalGenerator->AddLanguageFlags(cflags, "C", configName);
- this->CurrentLocalGenerator->AddSharedFlags(cflags, lang, shared);
+ this->CurrentLocalGenerator->AddCMP0018Flags(flags, &target, "C");
}
// Add language-specific flags.
this->CurrentLocalGenerator->AddLanguageFlags(flags, lang, configName);
// Add shared-library flags if needed.
- this->CurrentLocalGenerator->AddSharedFlags(flags, lang, shared);
+ this->CurrentLocalGenerator->AddCMP0018Flags(flags, &target, lang);
}
else if(binary)
{
--
Powered by www.kitware.com
Visit other Kitware open-source projects at
http://www.kitware.com/opensource/opensource.html
Please keep messages on-topic and check the CMake FAQ at:
http://www.cmake.org/Wiki/CMake_FAQ
Follow this link to subscribe/unsubscribe:
http://public.kitware.com/cgi-bin/mailman/listinfo/cmake-developers