diff options
-rw-r--r-- | Source/cmGlobalXCodeGenerator.cxx | 45 | ||||
-rw-r--r-- | Source/cmMakefileLibraryTargetGenerator.cxx | 6 | ||||
-rw-r--r-- | Source/cmTarget.cxx | 3 |
3 files changed, 33 insertions, 21 deletions
diff --git a/Source/cmGlobalXCodeGenerator.cxx b/Source/cmGlobalXCodeGenerator.cxx index ed1af64..c2b0558 100644 --- a/Source/cmGlobalXCodeGenerator.cxx +++ b/Source/cmGlobalXCodeGenerator.cxx @@ -2092,6 +2092,12 @@ void cmGlobalXCodeGenerator } } + // Skip link information for static libraries. + if(cmtarget->GetType() == cmTarget::STATIC_LIBRARY) + { + return; + } + // Loop over configuration types and set per-configuration info. for(std::vector<std::string>::iterator i = this->CurrentConfigurationTypes.begin(); @@ -2166,29 +2172,28 @@ void cmGlobalXCodeGenerator } // now add the link libraries - if(cmtarget->GetType() != cmTarget::STATIC_LIBRARY) - { - std::string linkLibs; - const char* sep = ""; - typedef cmComputeLinkInformation::ItemVector ItemVector; - ItemVector const& libNames = cli.GetItems(); - for(ItemVector::const_iterator li = libNames.begin(); - li != libNames.end(); ++li) + { + std::string linkLibs; + const char* sep = ""; + typedef cmComputeLinkInformation::ItemVector ItemVector; + ItemVector const& libNames = cli.GetItems(); + for(ItemVector::const_iterator li = libNames.begin(); + li != libNames.end(); ++li) + { + linkLibs += sep; + sep = " "; + if(li->IsPath) { - linkLibs += sep; - sep = " "; - if(li->IsPath) - { - linkLibs += this->XCodeEscapePath(li->Value.c_str()); - } - else - { - linkLibs += li->Value; - } + linkLibs += this->XCodeEscapePath(li->Value.c_str()); + } + else + { + linkLibs += li->Value; } - this->AppendBuildSettingAttribute(target, "OTHER_LDFLAGS", - linkLibs.c_str(), configName); } + this->AppendBuildSettingAttribute(target, "OTHER_LDFLAGS", + linkLibs.c_str(), configName); + } } } diff --git a/Source/cmMakefileLibraryTargetGenerator.cxx b/Source/cmMakefileLibraryTargetGenerator.cxx index 8e96fd6..d0e2fcb 100644 --- a/Source/cmMakefileLibraryTargetGenerator.cxx +++ b/Source/cmMakefileLibraryTargetGenerator.cxx @@ -720,7 +720,11 @@ void cmMakefileLibraryTargetGenerator::WriteLibraryRules // Collect up flags to link in needed libraries. cmOStringStream linklibs; - this->LocalGenerator->OutputLinkLibraries(linklibs, *this->Target, relink); + if(this->Target->GetType() != cmTarget::STATIC_LIBRARY) + { + this->LocalGenerator + ->OutputLinkLibraries(linklibs, *this->Target, relink); + } // Construct object file lists that may be needed to expand the // rule. diff --git a/Source/cmTarget.cxx b/Source/cmTarget.cxx index a9c5b53..ace3d6f 100644 --- a/Source/cmTarget.cxx +++ b/Source/cmTarget.cxx @@ -3299,6 +3299,9 @@ cmTargetLinkInterface* cmTarget::ComputeLinkInterface(const char* config) cmComputeLinkInformation* cmTarget::GetLinkInformation(const char* config) { + // Link information does not make sense for static libraries. + assert(this->GetType() != cmTarget::STATIC_LIBRARY); + // Lookup any existing information for this configuration. std::map<cmStdString, cmComputeLinkInformation*>::iterator i = this->LinkInformation.find(config?config:""); |