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

Reply via email to