summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2017-04-13 12:15:22 +0000
committerKitware Robot <kwrobot@kitware.com>2017-04-13 08:15:25 -0400
commite155fba644d4686ac8b4f43dfe31c749bba30c67 (patch)
tree2a502a6506bfbaeb4dbb7afd0dd7de2d4d1dd083
parent0d928d2fed11472ac1d8cb64e469b3ac86bf4975 (diff)
parent229abfc8f945421c9ad491dff674e41d283ca80f (diff)
downloadcmake-e155fba644d4686ac8b4f43dfe31c749bba30c67.tar.gz
Merge topic 'xcode-remove-UseObjectLibraries'
229abfc8 cmGeneratorTarget: Drop unused UseObjectLibraries method 63fbf587 Xcode: Inline relevant parts of UseObjectLibraries 1afacebe Xcode: Do not add Object Libraries source group on Xcode >= 5 Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !698
-rw-r--r--Source/cmGeneratorTarget.cxx35
-rw-r--r--Source/cmGeneratorTarget.h3
-rw-r--r--Source/cmGlobalXCodeGenerator.cxx51
3 files changed, 32 insertions, 57 deletions
diff --git a/Source/cmGeneratorTarget.cxx b/Source/cmGeneratorTarget.cxx
index b3be1b9f18..5e4259d420 100644
--- a/Source/cmGeneratorTarget.cxx
+++ b/Source/cmGeneratorTarget.cxx
@@ -1937,41 +1937,6 @@ bool cmGeneratorTarget::IsDLLPlatform() const
return this->DLLPlatform;
}
-void cmGeneratorTarget::UseObjectLibraries(std::vector<std::string>& objs,
- const std::string& config) const
-{
- std::vector<cmSourceFile const*> objectFiles;
- this->GetExternalObjects(objectFiles, config);
- std::vector<cmGeneratorTarget*> objectLibraries;
- for (std::vector<cmSourceFile const*>::const_iterator it =
- objectFiles.begin();
- it != objectFiles.end(); ++it) {
- std::string objLib = (*it)->GetObjectLibrary();
- if (cmGeneratorTarget* tgt =
- this->LocalGenerator->FindGeneratorTargetToUse(objLib)) {
- objectLibraries.push_back(tgt);
- }
- }
-
- std::vector<cmGeneratorTarget*>::const_iterator end =
- cmRemoveDuplicates(objectLibraries);
-
- for (std::vector<cmGeneratorTarget*>::const_iterator ti =
- objectLibraries.begin();
- ti != end; ++ti) {
- cmGeneratorTarget* ogt = *ti;
- std::vector<cmSourceFile const*> objectSources;
- ogt->GetObjectSources(objectSources, config);
- for (std::vector<cmSourceFile const*>::const_iterator si =
- objectSources.begin();
- si != objectSources.end(); ++si) {
- std::string obj = ogt->ObjectDirectory;
- obj += ogt->Objects[*si];
- objs.push_back(obj);
- }
- }
-}
-
void cmGeneratorTarget::GetAutoUicOptions(std::vector<std::string>& result,
const std::string& config) const
{
diff --git a/Source/cmGeneratorTarget.h b/Source/cmGeneratorTarget.h
index ab80f59c32..7c86d301a4 100644
--- a/Source/cmGeneratorTarget.h
+++ b/Source/cmGeneratorTarget.h
@@ -347,9 +347,6 @@ public:
time config name placeholder if needed for the generator. */
std::string ObjectDirectory;
- void UseObjectLibraries(std::vector<std::string>& objs,
- const std::string& config) const;
-
void GetAppleArchs(const std::string& config,
std::vector<std::string>& archVec) const;
diff --git a/Source/cmGlobalXCodeGenerator.cxx b/Source/cmGlobalXCodeGenerator.cxx
index ebc874a8ab..10343fdd05 100644
--- a/Source/cmGlobalXCodeGenerator.cxx
+++ b/Source/cmGlobalXCodeGenerator.cxx
@@ -1051,11 +1051,14 @@ bool cmGlobalXCodeGenerator::CreateXCodeTargets(
// Add object library contents as external objects. (Equivalent to
// the externalObjFiles above, except each one is not a cmSourceFile
// within the target.)
- std::vector<std::string> objs;
- gtgt->UseObjectLibraries(objs, "");
- for (std::vector<std::string>::const_iterator oi = objs.begin();
+ std::vector<cmSourceFile const*> objs;
+ gtgt->GetExternalObjects(objs, "");
+ for (std::vector<cmSourceFile const*>::const_iterator oi = objs.begin();
oi != objs.end(); ++oi) {
- std::string obj = *oi;
+ if ((*oi)->GetObjectLibrary().empty()) {
+ continue;
+ }
+ std::string const& obj = (*oi)->GetFullPath();
cmXCodeObject* xsf =
this->CreateXCodeSourceFileFromPath(obj, gtgt, "", 0);
externalObjFiles.push_back(xsf);
@@ -2669,13 +2672,16 @@ void cmGlobalXCodeGenerator::AddDependAndLinkInformation(cmXCodeObject* target)
// Add object library contents as link flags.
std::string linkObjs;
const char* sep = "";
- std::vector<std::string> objs;
- gt->UseObjectLibraries(objs, "");
- for (std::vector<std::string>::const_iterator oi = objs.begin();
+ std::vector<cmSourceFile const*> objs;
+ gt->GetExternalObjects(objs, "");
+ for (std::vector<cmSourceFile const*>::const_iterator oi = objs.begin();
oi != objs.end(); ++oi) {
+ if ((*oi)->GetObjectLibrary().empty()) {
+ continue;
+ }
linkObjs += sep;
sep = " ";
- linkObjs += this->XCodeEscapePath(*oi);
+ linkObjs += this->XCodeEscapePath((*oi)->GetFullPath());
}
this->AppendBuildSettingAttribute(
target, this->GetTargetLinkFlagsVar(gt), linkObjs.c_str(), configName);
@@ -2799,17 +2805,24 @@ bool cmGlobalXCodeGenerator::CreateGroups(
this->GroupMap[key] = pbxgroup;
}
- // Put OBJECT_LIBRARY objects in proper groups:
- std::vector<std::string> objs;
- gtgt->UseObjectLibraries(objs, "");
- for (std::vector<std::string>::const_iterator oi = objs.begin();
- oi != objs.end(); ++oi) {
- std::string const& source = *oi;
- cmSourceGroup* sourceGroup =
- mf->FindSourceGroup(source.c_str(), sourceGroups);
- cmXCodeObject* pbxgroup = this->CreateOrGetPBXGroup(gtgt, sourceGroup);
- std::string key = GetGroupMapKeyFromPath(gtgt, source);
- this->GroupMap[key] = pbxgroup;
+ if (this->XcodeVersion < 50) {
+ // Put OBJECT_LIBRARY objects in proper groups:
+ std::vector<cmSourceFile const*> objs;
+ gtgt->GetExternalObjects(objs, "");
+ for (std::vector<cmSourceFile const*>::const_iterator oi =
+ objs.begin();
+ oi != objs.end(); ++oi) {
+ if ((*oi)->GetObjectLibrary().empty()) {
+ continue;
+ }
+ std::string const& source = (*oi)->GetFullPath();
+ cmSourceGroup* sourceGroup =
+ mf->FindSourceGroup(source.c_str(), sourceGroups);
+ cmXCodeObject* pbxgroup =
+ this->CreateOrGetPBXGroup(gtgt, sourceGroup);
+ std::string key = GetGroupMapKeyFromPath(gtgt, source);
+ this->GroupMap[key] = pbxgroup;
+ }
}
}
}