XcodeGen/Sources/XcodeGenKit/ProjectGenerator.swift
Yonas Kolb 7c510af3d7
Fix Xcode alert on generation (#1072)
* fix xcode warning alert on regeneration

* commit fixture diffs

* update changelog
2021-05-06 08:33:42 +10:00

41 lines
1.3 KiB
Swift

import Foundation
import JSONUtilities
import PathKit
import ProjectSpec
import XcodeProj
import Yams
public class ProjectGenerator {
let project: Project
public init(project: Project) {
self.project = project
}
public func generateXcodeProject(in projectDirectory: Path? = nil) throws -> XcodeProj {
// generate PBXProj
let pbxProjGenerator = PBXProjGenerator(project: project,
projectDirectory: projectDirectory)
let pbxProj = try pbxProjGenerator.generate()
// generate Schemes
let schemeGenerator = SchemeGenerator(project: project, pbxProj: pbxProj)
let schemes = try schemeGenerator.generateSchemes()
// generate Workspace
let workspace = try generateWorkspace()
let sharedData = XCSharedData(schemes: schemes)
return XcodeProj(workspace: workspace, pbxproj: pbxProj, sharedData: sharedData)
}
func generateWorkspace() throws -> XCWorkspace {
let selfReference = XCWorkspaceDataFileRef(location: .`self`(""))
let dataElement = XCWorkspaceDataElement.file(selfReference)
let workspaceData = XCWorkspaceData(children: [dataElement])
return XCWorkspace(data: workspaceData)
}
}