Xcode: Archives use STATIC_LIBRARY_FLAGS, not LINK_FLAGS

The LINK_FLAGS property is defined only for targets that really link.
These include executables and shared libraries.  For static libraries we
define the STATIC_LIBRARY_FLAGS property.  Teach the Xcode generator to
make this distinction.
This commit is contained in:
Brad King 2010-05-28 13:23:31 -04:00
parent fe971d97ca
commit 5c49aa0c86
1 changed files with 9 additions and 3 deletions

View File

@ -1514,8 +1514,13 @@ void cmGlobalXCodeGenerator::CreateBuildSettings(cmTarget& target,
extraLinkOptions = this->CurrentMakefile->
GetRequiredDefinition("CMAKE_MODULE_LINKER_FLAGS");
}
const char* targetLinkFlags = target.GetProperty("LINK_FLAGS");
const char* linkFlagsProp = "LINK_FLAGS";
if(target.GetType() == cmTarget::STATIC_LIBRARY)
{
linkFlagsProp = "STATIC_LIBRARY_FLAGS";
}
const char* targetLinkFlags = target.GetProperty(linkFlagsProp);
if(targetLinkFlags)
{
extraLinkOptions += " ";
@ -1523,7 +1528,8 @@ void cmGlobalXCodeGenerator::CreateBuildSettings(cmTarget& target,
}
if(configName && *configName)
{
std::string linkFlagsVar = "LINK_FLAGS_";
std::string linkFlagsVar = linkFlagsProp;
linkFlagsVar += "_";
linkFlagsVar += cmSystemTools::UpperCase(configName);
if(const char* linkFlags = target.GetProperty(linkFlagsVar.c_str()))
{