Skip to content

Commit d8478ff

Browse files
Generate XCScheme files
1 parent ec339da commit d8478ff

File tree

2 files changed

+114
-0
lines changed

2 files changed

+114
-0
lines changed

Sources/AtCoderLibrary/Command/New.swift

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,9 @@ public struct New: ParsableCommand {
3636
try Test(problem: $0).codeGenerate()
3737
}
3838
try TestLibrary().codeGenerate()
39+
try problems.forEach {
40+
try XCScheme(problem: $0).codeGenerate()
41+
}
3942

4043
if open {
4144
SwiftShell.run("cd", contestName)
Lines changed: 111 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,111 @@
1+
struct XCScheme: CodeTemplate {
2+
let problem: Problem
3+
var fileName: String { "\(problem.context.alphabet).xcscheme" }
4+
let directory: String? = ".swiftpm/xcode/xcshareddata/xcschemes"
5+
var source: String {
6+
"""
7+
<?xml version="1.0" encoding="UTF-8"?>
8+
<Scheme
9+
LastUpgradeVersion = "1250"
10+
version = "1.3">
11+
<BuildAction
12+
parallelizeBuildables = "YES"
13+
buildImplicitDependencies = "YES">
14+
<BuildActionEntries>
15+
<BuildActionEntry
16+
buildForTesting = "YES"
17+
buildForRunning = "YES"
18+
buildForProfiling = "YES"
19+
buildForArchiving = "YES"
20+
buildForAnalyzing = "YES">
21+
<BuildableReference
22+
BuildableIdentifier = "primary"
23+
BlueprintIdentifier = "\(problem.context.alphabet)"
24+
BuildableName = "\(problem.context.alphabet)"
25+
BlueprintName = "\(problem.context.alphabet)"
26+
ReferencedContainer = "container:">
27+
</BuildableReference>
28+
</BuildActionEntry>
29+
<BuildActionEntry
30+
buildForTesting = "YES"
31+
buildForRunning = "YES"
32+
buildForProfiling = "NO"
33+
buildForArchiving = "NO"
34+
buildForAnalyzing = "YES">
35+
<BuildableReference
36+
BuildableIdentifier = "primary"
37+
BlueprintIdentifier = "\(problem.context.alphabet)Tests"
38+
BuildableName = "\(problem.context.alphabet)Tests"
39+
BlueprintName = "\(problem.context.alphabet)Tests"
40+
ReferencedContainer = "container:">
41+
</BuildableReference>
42+
</BuildActionEntry>
43+
</BuildActionEntries>
44+
</BuildAction>
45+
<TestAction
46+
buildConfiguration = "Release"
47+
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
48+
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
49+
shouldUseLaunchSchemeArgsEnv = "YES">
50+
<Testables>
51+
<TestableReference
52+
skipped = "NO">
53+
<BuildableReference
54+
BuildableIdentifier = "primary"
55+
BlueprintIdentifier = "\(problem.context.alphabet)Tests"
56+
BuildableName = "\(problem.context.alphabet)Tests"
57+
BlueprintName = "\(problem.context.alphabet)Tests"
58+
ReferencedContainer = "container:">
59+
</BuildableReference>
60+
</TestableReference>
61+
</Testables>
62+
</TestAction>
63+
<LaunchAction
64+
buildConfiguration = "Debug"
65+
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
66+
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
67+
launchStyle = "0"
68+
useCustomWorkingDirectory = "NO"
69+
ignoresPersistentStateOnLaunch = "NO"
70+
debugDocumentVersioning = "YES"
71+
debugServiceExtension = "internal"
72+
allowLocationSimulation = "YES">
73+
<BuildableProductRunnable
74+
runnableDebuggingMode = "0">
75+
<BuildableReference
76+
BuildableIdentifier = "primary"
77+
BlueprintIdentifier = "\(problem.context.alphabet)"
78+
BuildableName = "\(problem.context.alphabet)"
79+
BlueprintName = "\(problem.context.alphabet)"
80+
ReferencedContainer = "container:">
81+
</BuildableReference>
82+
</BuildableProductRunnable>
83+
</LaunchAction>
84+
<ProfileAction
85+
buildConfiguration = "Release"
86+
shouldUseLaunchSchemeArgsEnv = "YES"
87+
savedToolIdentifier = ""
88+
useCustomWorkingDirectory = "NO"
89+
debugDocumentVersioning = "YES">
90+
<BuildableProductRunnable
91+
runnableDebuggingMode = "0">
92+
<BuildableReference
93+
BuildableIdentifier = "primary"
94+
BlueprintIdentifier = "\(problem.context.alphabet)"
95+
BuildableName = "\(problem.context.alphabet)"
96+
BlueprintName = "\(problem.context.alphabet)"
97+
ReferencedContainer = "container:">
98+
</BuildableReference>
99+
</BuildableProductRunnable>
100+
</ProfileAction>
101+
<AnalyzeAction
102+
buildConfiguration = "Debug">
103+
</AnalyzeAction>
104+
<ArchiveAction
105+
buildConfiguration = "Release"
106+
revealArchiveInOrganizer = "YES">
107+
</ArchiveAction>
108+
</Scheme>
109+
"""
110+
}
111+
}

0 commit comments

Comments
 (0)