Skip to content

Commit c252c31

Browse files
committed
Refactor most project model objects in XCBCore to be Sendable
1 parent 867c50f commit c252c31

File tree

8 files changed

+139
-126
lines changed

8 files changed

+139
-126
lines changed

Sources/SWBCore/ProjectModel/BuildConfiguration.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ import SWBProtocol
1414
import SWBUtil
1515
public import SWBMacro
1616

17-
public final class BuildConfiguration: ProjectModelItem, Encodable
17+
public final class BuildConfiguration: ProjectModelItem, Encodable, Sendable
1818
{
1919
public let name: String
2020

Sources/SWBCore/ProjectModel/BuildPhase.swift

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ public import SWBMacro
1717
// MARK: Build phase abstract class
1818

1919

20-
public class BuildPhase: ProjectModelItem
20+
public class BuildPhase: ProjectModelItem, @unchecked Sendable
2121
{
2222
/// The name of the build phase, typically for reporting issues.
2323
public var name: String { fatalError("abstract \(type(of: self)) build phase asked for its name") }
@@ -88,7 +88,7 @@ public class BuildPhase: ProjectModelItem
8888
// MARK: Build phase with build files abstract class
8989

9090

91-
public class BuildPhaseWithBuildFiles: BuildPhase
91+
public class BuildPhaseWithBuildFiles: BuildPhase, @unchecked Sendable
9292
{
9393
public let buildFiles: [BuildFile]
9494

@@ -134,7 +134,7 @@ public class BuildPhaseWithBuildFiles: BuildPhase
134134
// MARK: Sources build phase class
135135

136136

137-
public final class SourcesBuildPhase: BuildPhaseWithBuildFiles
137+
public final class SourcesBuildPhase: BuildPhaseWithBuildFiles, @unchecked Sendable
138138
{
139139
public override var name: String { return "Compile Sources" }
140140
}
@@ -143,7 +143,7 @@ public final class SourcesBuildPhase: BuildPhaseWithBuildFiles
143143
// MARK: Frameworks build phase class
144144

145145

146-
public final class FrameworksBuildPhase: BuildPhaseWithBuildFiles
146+
public final class FrameworksBuildPhase: BuildPhaseWithBuildFiles, @unchecked Sendable
147147
{
148148
public override var name: String { return "Link Binary" }
149149
}
@@ -152,7 +152,7 @@ public final class FrameworksBuildPhase: BuildPhaseWithBuildFiles
152152
// MARK: Headers build phase class
153153

154154

155-
public final class HeadersBuildPhase: BuildPhaseWithBuildFiles
155+
public final class HeadersBuildPhase: BuildPhaseWithBuildFiles, @unchecked Sendable
156156
{
157157
public override var name: String { return "Copy Headers" }
158158
}
@@ -161,7 +161,7 @@ public final class HeadersBuildPhase: BuildPhaseWithBuildFiles
161161
// MARK: Resources build phase class
162162

163163

164-
public final class ResourcesBuildPhase: BuildPhaseWithBuildFiles
164+
public final class ResourcesBuildPhase: BuildPhaseWithBuildFiles, @unchecked Sendable
165165
{
166166
public override var name: String { return "Copy Bundle Resources" }
167167
}
@@ -170,7 +170,7 @@ public final class ResourcesBuildPhase: BuildPhaseWithBuildFiles
170170
// MARK: Copy files build phase class
171171

172172

173-
public final class CopyFilesBuildPhase: BuildPhaseWithBuildFiles
173+
public final class CopyFilesBuildPhase: BuildPhaseWithBuildFiles, @unchecked Sendable
174174
{
175175
public override var name: String { return "Copy Files" }
176176

@@ -228,7 +228,7 @@ public final class CopyFilesBuildPhase: BuildPhaseWithBuildFiles
228228
// MARK: Shell script build phase class
229229

230230

231-
public final class ShellScriptBuildPhase: BuildPhase
231+
public final class ShellScriptBuildPhase: BuildPhase, @unchecked Sendable
232232
{
233233
public override var name: String { return _name.isEmpty ? "Run Script" : _name }
234234

@@ -378,7 +378,7 @@ public final class ShellScriptBuildPhase: BuildPhase
378378
// MARK: Rez build phase class
379379

380380

381-
public final class RezBuildPhase: BuildPhaseWithBuildFiles
381+
public final class RezBuildPhase: BuildPhaseWithBuildFiles, @unchecked Sendable
382382
{
383383
public override var name: String { return "Build Carbon Resources" }
384384
}
@@ -387,7 +387,7 @@ public final class RezBuildPhase: BuildPhaseWithBuildFiles
387387
// MARK: AppleScript build phase class
388388

389389

390-
public final class AppleScriptBuildPhase: BuildPhaseWithBuildFiles
390+
public final class AppleScriptBuildPhase: BuildPhaseWithBuildFiles, @unchecked Sendable
391391
{
392392
public override var name: String { return "Compile AppleScript Files" }
393393
}
@@ -396,7 +396,7 @@ public final class AppleScriptBuildPhase: BuildPhaseWithBuildFiles
396396
// MARK: Java archive build phase class
397397

398398

399-
public final class JavaArchiveBuildPhase: BuildPhaseWithBuildFiles
399+
public final class JavaArchiveBuildPhase: BuildPhaseWithBuildFiles, @unchecked Sendable
400400
{
401401
public override var name: String { return "Build Java Resources" }
402402
}

Sources/SWBCore/ProjectModel/Project.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ public final class Project: ProjectModelItem, PIFObject, Hashable, Encodable
9696
self.xcodeprojPath = model.xcodeprojPath
9797
self.sourceRoot = model.sourceRoot
9898
self.targets = try model.targetSignatures.map{ try pifLoader.loadReference(signature: $0, type: Target.self) }
99-
self.groupTree = try Reference.create(model.groupTree, pifLoader) as! FileGroup
99+
self.groupTree = try Reference.create(model.groupTree, pifLoader, isRoot: true) as! FileGroup
100100
self.buildConfigurations = model.buildConfigurations.map{ BuildConfiguration($0, pifLoader) }
101101
self.defaultConfigurationName = model.defaultConfigurationName
102102
self.developmentRegion = model.developmentRegion
@@ -133,7 +133,7 @@ public final class Project: ProjectModelItem, PIFObject, Hashable, Encodable
133133
}
134134

135135
// The top-level file group is required. We load this early because our or our targets' build configurations can refer to files in here.
136-
groupTree = try FileGroup.parsePIFDictAsReference(Self.parseValueForKeyAsPIFDictionary(PIFKey_Project_groupTree, pifDict: pifDict), pifLoader: pifLoader) as! FileGroup
136+
groupTree = try FileGroup.parsePIFDictAsReference(Self.parseValueForKeyAsPIFDictionary(PIFKey_Project_groupTree, pifDict: pifDict), pifLoader: pifLoader, isRoot: true) as! FileGroup
137137

138138
// The list of targets is required.
139139
targets = try Self.parseValueForKeyAsArrayOfIndirectObjects(PIFKey_Project_targets, pifDict: pifDict, pifLoader: pifLoader)

0 commit comments

Comments
 (0)