Xcode: Generate per-target file references (#15111)
Xcode requires a separate PBXFileReference for each target source group that references a source file. Xcode 6 now diagnoses re-use of the same PBXFileReference from multiple source groups. Add the referencing target name to our internal map key so we use a per-target reference.
This commit is contained in:
parent
76acc128a2
commit
e7114226e6
|
@ -837,16 +837,14 @@ cmGlobalXCodeGenerator::CreateXCodeFileReferenceFromPath(
|
|||
cmTarget& cmtarget,
|
||||
const std::string &lang)
|
||||
{
|
||||
std::string fname = fullpath;
|
||||
cmXCodeObject* fileRef = this->FileRefs[fname];
|
||||
cmStdString key = GetGroupMapKeyFromPath(cmtarget, fullpath);
|
||||
cmXCodeObject* fileRef = this->FileRefs[key];
|
||||
if(!fileRef)
|
||||
{
|
||||
fileRef = this->CreateObject(cmXCodeObject::PBXFileReference);
|
||||
std::string comment = fname;
|
||||
fileRef->SetComment(fname.c_str());
|
||||
this->FileRefs[fname] = fileRef;
|
||||
fileRef->SetComment(fullpath.c_str());
|
||||
this->FileRefs[key] = fileRef;
|
||||
}
|
||||
cmStdString key = GetGroupMapKeyFromPath(cmtarget, fullpath);
|
||||
cmXCodeObject* group = this->GroupMap[key];
|
||||
cmXCodeObject* children = group->GetObject("children");
|
||||
if (!children->HasObject(fileRef))
|
||||
|
|
Loading…
Reference in New Issue