mirror of
https://github.com/yonaskolb/XcodeGen.git
synced 2026-03-18 20:02:25 +00:00
write targets in order
This commit is contained in:
@@ -204,8 +204,8 @@
|
||||
);
|
||||
mainGroup = OBJECT_53;
|
||||
targets = (
|
||||
OBJECT_8 /* MyFramework */,
|
||||
OBJECT_5 /* TestProject */,
|
||||
OBJECT_8 /* MyFramework */,
|
||||
);
|
||||
};
|
||||
/* End PBXProject section */
|
||||
|
||||
@@ -51,6 +51,7 @@ func generate(spec: String, project: String?) {
|
||||
let projectGenerator = ProjectGenerator(spec: spec)
|
||||
let project = try projectGenerator.generate()
|
||||
print("Generated project")
|
||||
print("Writing project")
|
||||
try project.write(path: projectPath, override: true)
|
||||
print("Wrote project to file \(projectPath.string)")
|
||||
} catch {
|
||||
|
||||
@@ -67,9 +67,7 @@ public class PBXProjGenerator {
|
||||
targetBuildFileReferences[target.name] = buildFile.reference
|
||||
}
|
||||
|
||||
for target in spec.targets {
|
||||
try generateTarget(target)
|
||||
}
|
||||
let targets = try spec.targets.map(generateTarget)
|
||||
|
||||
let productGroup = PBXGroup(reference: id(), children: Set(targetFileReferences.values), sourceTree: .group, name: "Products")
|
||||
objects.append(.pbxGroup(productGroup))
|
||||
@@ -79,7 +77,7 @@ public class PBXProjGenerator {
|
||||
objects.append(.pbxGroup(mainGroup))
|
||||
|
||||
let knownRegions: [String] = ["en", "Base"]
|
||||
let pbxProjectRoot = PBXProject(reference: projectReference, buildConfigurationList: buildConfigList.reference, compatibilityVersion: "Xcode 3.2", mainGroup: mainGroup.reference, developmentRegion: "English", knownRegions: knownRegions, targets: Array(targetNativeReferences.values))
|
||||
let pbxProjectRoot = PBXProject(reference: projectReference, buildConfigurationList: buildConfigList.reference, compatibilityVersion: "Xcode 3.2", mainGroup: mainGroup.reference, developmentRegion: "English", knownRegions: knownRegions, targets: targets.referenceList)
|
||||
objects.append(.pbxProject(pbxProjectRoot))
|
||||
|
||||
return PBXProj(archiveVersion: 1, objectVersion: 46, rootObject: projectReference, objects: objects)
|
||||
@@ -102,7 +100,7 @@ public class PBXProjGenerator {
|
||||
return SourceFile(path: path, fileReference: fileReference, buildFile: buildFile)
|
||||
}
|
||||
|
||||
func generateTarget(_ target: Target) throws {
|
||||
func generateTarget(_ target: Target) throws -> PBXNativeTarget {
|
||||
let source = spec.path.parent() + target.sources.first!
|
||||
//TODO: handle multiple sources
|
||||
//TODO: handle targets with shared sources
|
||||
@@ -190,6 +188,7 @@ public class PBXProjGenerator {
|
||||
productReference: fileReference,
|
||||
productType: target.type)
|
||||
objects.append(.pbxNativeTarget(nativeTarget))
|
||||
return nativeTarget
|
||||
}
|
||||
|
||||
func getBuildPhaseForPath(_ path: Path) -> BuildPhase? {
|
||||
|
||||
Reference in New Issue
Block a user