1*eeffdb10STomasz Sapeta// More detailed spec schema available here: 2*eeffdb10STomasz Sapeta// https://github.com/yonaskolb/XcodeGen/blob/master/Docs/ProjectSpec.md 3*eeffdb10STomasz Sapetaexport type ProjectSpec = { 4*eeffdb10STomasz Sapeta name: string; 5*eeffdb10STomasz Sapeta projectReferences?: { 6*eeffdb10STomasz Sapeta [key: string]: { 7*eeffdb10STomasz Sapeta path: string; 8*eeffdb10STomasz Sapeta }; 9*eeffdb10STomasz Sapeta }; 10*eeffdb10STomasz Sapeta targets?: { 11*eeffdb10STomasz Sapeta [targetName: string]: { 12*eeffdb10STomasz Sapeta type: string; 13*eeffdb10STomasz Sapeta platform: ProjectSpecPlatform[]; 14*eeffdb10STomasz Sapeta sources?: ProjectSpecSource[]; 15*eeffdb10STomasz Sapeta dependencies?: ProjectSpecDependency[]; 16*eeffdb10STomasz Sapeta settings?: ProjectSpecSettings; 17*eeffdb10STomasz Sapeta info?: { 18*eeffdb10STomasz Sapeta path: string; 19*eeffdb10STomasz Sapeta properties: Record<string, string>; 20*eeffdb10STomasz Sapeta }; 21*eeffdb10STomasz Sapeta }; 22*eeffdb10STomasz Sapeta }; 23*eeffdb10STomasz Sapeta options?: ProjectSpecOptions; 24*eeffdb10STomasz Sapeta settings?: ProjectSpecSettings; 25*eeffdb10STomasz Sapeta}; 26*eeffdb10STomasz Sapeta 27*eeffdb10STomasz Sapetaexport type ProjectSpecPlatform = 'iOS' | 'macOS' | 'tvOS' | 'watchOS'; 28*eeffdb10STomasz Sapeta 29*eeffdb10STomasz Sapetaexport type ProjectSpecSource = { 30*eeffdb10STomasz Sapeta path: string; 31*eeffdb10STomasz Sapeta name?: string; 32*eeffdb10STomasz Sapeta createIntermediateGroups?: boolean; 33*eeffdb10STomasz Sapeta includes?: string[]; 34*eeffdb10STomasz Sapeta excludes?: string[]; 35*eeffdb10STomasz Sapeta compilerFlags?: string; 36*eeffdb10STomasz Sapeta}; 37*eeffdb10STomasz Sapeta 38*eeffdb10STomasz Sapetaexport type ProjectSpecDependency = { 39*eeffdb10STomasz Sapeta // framework type 40*eeffdb10STomasz Sapeta framework?: string; 41*eeffdb10STomasz Sapeta implicit?: boolean; 42*eeffdb10STomasz Sapeta 43*eeffdb10STomasz Sapeta // target/project type 44*eeffdb10STomasz Sapeta target?: string; 45*eeffdb10STomasz Sapeta 46*eeffdb10STomasz Sapeta // SDK framework 47*eeffdb10STomasz Sapeta sdk?: string; 48*eeffdb10STomasz Sapeta 49*eeffdb10STomasz Sapeta // shared options 50*eeffdb10STomasz Sapeta embed?: boolean; 51*eeffdb10STomasz Sapeta link?: boolean; 52*eeffdb10STomasz Sapeta codeSign?: boolean; 53*eeffdb10STomasz Sapeta removeHeaders?: boolean; 54*eeffdb10STomasz Sapeta weak?: boolean; 55*eeffdb10STomasz Sapeta}; 56*eeffdb10STomasz Sapeta 57*eeffdb10STomasz Sapetaexport type ProjectSpecOptions = { 58*eeffdb10STomasz Sapeta minimumXcodeGenVersion: string; 59*eeffdb10STomasz Sapeta deploymentTarget: Record<ProjectSpecPlatform, string>; 60*eeffdb10STomasz Sapeta}; 61*eeffdb10STomasz Sapeta 62*eeffdb10STomasz Sapetaexport type ProjectSpecSettings = { 63*eeffdb10STomasz Sapeta base: XcodeConfig; 64*eeffdb10STomasz Sapeta}; 65*eeffdb10STomasz Sapeta 66*eeffdb10STomasz Sapetaexport type XcodeConfig = Record<string, string>; 67