in lib/pbxProject.js [817:870]
pbxProject.prototype.addTargetDependency = function(target, dependencyTargets) {
if (!target)
return undefined;
var nativeTargets = this.pbxNativeTargetSection();
if (typeof nativeTargets[target] == "undefined")
throw new Error("Invalid target: " + target);
for (var index = 0; index < dependencyTargets.length; index++) {
var dependencyTarget = dependencyTargets[index];
if (typeof nativeTargets[dependencyTarget] == "undefined")
throw new Error("Invalid target: " + dependencyTarget);
}
var pbxTargetDependency = 'PBXTargetDependency',
pbxContainerItemProxy = 'PBXContainerItemProxy',
pbxTargetDependencySection = this.hash.project.objects[pbxTargetDependency],
pbxContainerItemProxySection = this.hash.project.objects[pbxContainerItemProxy];
for (var index = 0; index < dependencyTargets.length; index++) {
var dependencyTargetUuid = dependencyTargets[index],
dependencyTargetCommentKey = f("%s_comment", dependencyTargetUuid),
targetDependencyUuid = this.generateUuid(),
targetDependencyCommentKey = f("%s_comment", targetDependencyUuid),
itemProxyUuid = this.generateUuid(),
itemProxyCommentKey = f("%s_comment", itemProxyUuid),
itemProxy = {
isa: pbxContainerItemProxy,
containerPortal: this.hash.project['rootObject'],
containerPortal_comment: this.hash.project['rootObject_comment'],
proxyType: 1,
remoteGlobalIDString: dependencyTargetUuid,
remoteInfo: nativeTargets[dependencyTargetUuid].name
},
targetDependency = {
isa: pbxTargetDependency,
target: dependencyTargetUuid,
target_comment: nativeTargets[dependencyTargetCommentKey],
targetProxy: itemProxyUuid,
targetProxy_comment: pbxContainerItemProxy
};
if (pbxContainerItemProxySection && pbxTargetDependencySection) {
pbxContainerItemProxySection[itemProxyUuid] = itemProxy;
pbxContainerItemProxySection[itemProxyCommentKey] = pbxContainerItemProxy;
pbxTargetDependencySection[targetDependencyUuid] = targetDependency;
pbxTargetDependencySection[targetDependencyCommentKey] = pbxTargetDependency;
nativeTargets[target].dependencies.push({ value: targetDependencyUuid, comment: pbxTargetDependency })
}
}
return { uuid: target, target: nativeTargets[target] };
}