mirror of
https://github.com/Kitware/CMake.git
synced 2026-04-28 09:59:20 -05:00
Xcode: Refactor loop over all sources
Switch from `GetConfigCommonSourceFiles` to `GetAllConfigSources`. This will allow us to drop object library files from the former.
This commit is contained in:
@@ -651,11 +651,6 @@ std::string GetGroupMapKeyFromPath(cmGeneratorTarget* target,
|
||||
return key;
|
||||
}
|
||||
|
||||
std::string GetGroupMapKey(cmGeneratorTarget* target, cmSourceFile* sf)
|
||||
{
|
||||
return GetGroupMapKeyFromPath(target, sf->GetFullPath());
|
||||
}
|
||||
|
||||
cmXCodeObject* cmGlobalXCodeGenerator::CreateXCodeSourceFileFromPath(
|
||||
const std::string& fullpath, cmGeneratorTarget* target,
|
||||
const std::string& lang, cmSourceFile* sf)
|
||||
@@ -2788,42 +2783,26 @@ bool cmGlobalXCodeGenerator::CreateGroups(
|
||||
gtgt->AddSource(plist);
|
||||
}
|
||||
|
||||
std::vector<cmSourceFile*> classes;
|
||||
if (!gtgt->GetConfigCommonSourceFiles(classes)) {
|
||||
return false;
|
||||
}
|
||||
std::vector<cmGeneratorTarget::AllConfigSource> const& sources =
|
||||
gtgt->GetAllConfigSources();
|
||||
|
||||
// Put cmSourceFile instances in proper groups:
|
||||
for (std::vector<cmSourceFile*>::const_iterator s = classes.begin();
|
||||
s != classes.end(); s++) {
|
||||
cmSourceFile* sf = *s;
|
||||
for (std::vector<cmGeneratorTarget::AllConfigSource>::const_iterator si =
|
||||
sources.begin();
|
||||
si != sources.end(); ++si) {
|
||||
cmSourceFile const* sf = si->Source;
|
||||
if (this->XcodeVersion >= 50 && !sf->GetObjectLibrary().empty()) {
|
||||
// Object library files go on the link line instead.
|
||||
continue;
|
||||
}
|
||||
// Add the file to the list of sources.
|
||||
std::string const& source = sf->GetFullPath();
|
||||
cmSourceGroup* sourceGroup =
|
||||
mf->FindSourceGroup(source.c_str(), sourceGroups);
|
||||
cmXCodeObject* pbxgroup = this->CreateOrGetPBXGroup(gtgt, sourceGroup);
|
||||
std::string key = GetGroupMapKey(gtgt, sf);
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return true;
|
||||
|
||||
Reference in New Issue
Block a user