From 21a0beacc1d8c452f13453b22f36c91fbbd0a182 Mon Sep 17 00:00:00 2001 From: Brad King Date: Tue, 4 Jun 2013 09:49:40 -0400 Subject: [PATCH] Xcode: Fix framework search paths in STATIC library targets (#14191) In commit 2bc22bda (Xcode: Add frameworks search paths from link dependeny closure, 2012-12-07) we made framework search paths from the link closure conditional on target type, skipping it on STATIC and OBJECT library targets that do not actually link. However, the framework search paths also influence the compile lines (-F options) so we need them for all target types. The Makefile generator already does this, as did the Xcode generator prior to the above-mentioned commit. --- Source/cmGlobalXCodeGenerator.cxx | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/Source/cmGlobalXCodeGenerator.cxx b/Source/cmGlobalXCodeGenerator.cxx index b2d325c8a..0f59c027c 100644 --- a/Source/cmGlobalXCodeGenerator.cxx +++ b/Source/cmGlobalXCodeGenerator.cxx @@ -1997,20 +1997,16 @@ void cmGlobalXCodeGenerator::CreateBuildSettings(cmTarget& target, dirs.Add(incpath.c_str()); } } - if(target.GetType() != cmTarget::OBJECT_LIBRARY && - target.GetType() != cmTarget::STATIC_LIBRARY) + // Add framework search paths needed for linking. + if(cmComputeLinkInformation* cli = target.GetLinkInformation(configName)) { - // Add framework search paths needed for linking. - if(cmComputeLinkInformation* cli = target.GetLinkInformation(configName)) + std::vector const& fwDirs = cli->GetFrameworkPaths(); + for(std::vector::const_iterator fdi = fwDirs.begin(); + fdi != fwDirs.end(); ++fdi) { - std::vector const& fwDirs = cli->GetFrameworkPaths(); - for(std::vector::const_iterator fdi = fwDirs.begin(); - fdi != fwDirs.end(); ++fdi) + if(emitted.insert(*fdi).second) { - if(emitted.insert(*fdi).second) - { - fdirs.Add(this->XCodeEscapePath(fdi->c_str()).c_str()); - } + fdirs.Add(this->XCodeEscapePath(fdi->c_str()).c_str()); } } }