Skip to content

Commit e53bb51

Browse files
committed
[PackageModel] SwiftTarget: Rename swiftVersion into toolsSwiftVersion
The value of this field is computed based on the tools version of the manifest and is intended to be used as a fallback if there is no swift language version specified in the build settings for a swift target.
1 parent 213844c commit e53bb51

File tree

7 files changed

+19
-19
lines changed

7 files changed

+19
-19
lines changed

Sources/Build/BuildDescription/SwiftTargetBuildDescription.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,7 @@ package final class SwiftTargetBuildDescription {
148148

149149
/// The swift version for this target.
150150
var swiftVersion: SwiftLanguageVersion {
151-
self.swiftTarget.swiftVersion
151+
self.swiftTarget.toolSwiftVersion
152152
}
153153

154154
/// Describes the purpose of a test target, including any special roles such as containing a list of discovered

Sources/Build/BuildPlan/BuildPlan+Test.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -268,7 +268,7 @@ private extension PackageModel.SwiftTarget {
268268
sources: sources,
269269
dependencies: dependencies,
270270
packageAccess: packageAccess,
271-
swiftVersion: .v5,
271+
toolsSwiftVersion: .v5,
272272
usesUnsafeFlags: false
273273
)
274274
}

Sources/PackageLoading/PackageBuilder.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -997,7 +997,7 @@ public final class PackageBuilder {
997997
others: others,
998998
dependencies: dependencies,
999999
packageAccess: potentialModule.packageAccess,
1000-
swiftVersion: self.swiftVersion(),
1000+
toolsSwiftVersion: self.toolsSwiftVersion(),
10011001
declaredSwiftVersions: self.declaredSwiftVersions(),
10021002
buildSettings: buildSettings,
10031003
buildSettingsDescription: manifestTarget.settings,
@@ -1237,7 +1237,7 @@ public final class PackageBuilder {
12371237
}
12381238

12391239
/// Computes the swift version to use for this manifest.
1240-
private func swiftVersion() throws -> SwiftLanguageVersion {
1240+
private func toolsSwiftVersion() throws -> SwiftLanguageVersion {
12411241
if let swiftVersion = self.swiftVersionCache {
12421242
return swiftVersion
12431243
}
@@ -1738,7 +1738,7 @@ extension PackageBuilder {
17381738
sources: sources,
17391739
dependencies: dependencies,
17401740
packageAccess: false,
1741-
swiftVersion: self.swiftVersion(),
1741+
toolsSwiftVersion: self.toolsSwiftVersion(),
17421742
buildSettings: buildSettings,
17431743
buildSettingsDescription: targetDescription.settings,
17441744
usesUnsafeFlags: false

Sources/PackageModel/Target/SwiftTarget.swift

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ public final class SwiftTarget: Target {
2323
}
2424

2525
public init(name: String, dependencies: [Target.Dependency], packageAccess: Bool, testDiscoverySrc: Sources) {
26-
self.swiftVersion = .v5
26+
self.toolSwiftVersion = .v5
2727
self.declaredSwiftVersions = []
2828

2929
super.init(
@@ -40,8 +40,8 @@ public final class SwiftTarget: Target {
4040
)
4141
}
4242

43-
/// The swift version of this target.
44-
public let swiftVersion: SwiftLanguageVersion
43+
/// The swift language version that is computed for this target based on tools version of the manifest.
44+
public let toolSwiftVersion: SwiftLanguageVersion
4545

4646
/// The list of swift versions declared by the manifest.
4747
public let declaredSwiftVersions: [SwiftLanguageVersion]
@@ -57,14 +57,14 @@ public final class SwiftTarget: Target {
5757
others: [AbsolutePath] = [],
5858
dependencies: [Target.Dependency] = [],
5959
packageAccess: Bool,
60-
swiftVersion: SwiftLanguageVersion,
60+
toolsSwiftVersion: SwiftLanguageVersion,
6161
declaredSwiftVersions: [SwiftLanguageVersion] = [],
6262
buildSettings: BuildSettings.AssignmentTable = .init(),
6363
buildSettingsDescription: [TargetBuildSettingDescription.Setting] = [],
6464
pluginUsages: [PluginUsage] = [],
6565
usesUnsafeFlags: Bool
6666
) {
67-
self.swiftVersion = swiftVersion
67+
self.toolSwiftVersion = toolsSwiftVersion
6868
self.declaredSwiftVersions = declaredSwiftVersions
6969
super.init(
7070
name: name,
@@ -103,8 +103,8 @@ public final class SwiftTarget: Target {
103103
// We need to select the latest Swift language version that can
104104
// satisfy the current tools version but there is not a good way to
105105
// do that currently.
106-
self.swiftVersion = swiftTestTarget?
107-
.swiftVersion ?? SwiftLanguageVersion(string: String(SwiftVersion.current.major)) ?? .v4
106+
self.toolSwiftVersion = swiftTestTarget?
107+
.toolSwiftVersion ?? SwiftLanguageVersion(string: String(SwiftVersion.current.major)) ?? .v4
108108
self.declaredSwiftVersions = []
109109
let sources = Sources(paths: [testEntryPointPath], root: testEntryPointPath.parentDirectory)
110110

@@ -129,14 +129,14 @@ public final class SwiftTarget: Target {
129129

130130
override public func encode(to encoder: Encoder) throws {
131131
var container = encoder.container(keyedBy: CodingKeys.self)
132-
try container.encode(self.swiftVersion, forKey: .swiftVersion)
132+
try container.encode(self.toolSwiftVersion, forKey: .swiftVersion)
133133
try container.encode(self.declaredSwiftVersions, forKey: .declaredSwiftVersions)
134134
try super.encode(to: encoder)
135135
}
136136

137137
public required init(from decoder: Decoder) throws {
138138
let container = try decoder.container(keyedBy: CodingKeys.self)
139-
self.swiftVersion = try container.decode(SwiftLanguageVersion.self, forKey: .swiftVersion)
139+
self.toolSwiftVersion = try container.decode(SwiftLanguageVersion.self, forKey: .swiftVersion)
140140
self.declaredSwiftVersions = try container.decode([SwiftLanguageVersion].self, forKey: .declaredSwiftVersions)
141141
try super.init(from: decoder)
142142
}

Sources/SPMTestSupport/ResolvedTarget+Mock.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ extension ResolvedModule {
2929
sources: Sources(paths: [], root: "/"),
3030
dependencies: [],
3131
packageAccess: false,
32-
swiftVersion: .v4,
32+
toolsSwiftVersion: .v4,
3333
usesUnsafeFlags: false
3434
),
3535
dependencies: deps.map { .target($0, conditions: conditions) },

Sources/XCBuildSupport/PIFBuilder.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1584,19 +1584,19 @@ extension SwiftTarget {
15841584
})
15851585
// If we were able to determine the list of versions supported by XCBuild, cross-reference with the package's
15861586
// Swift versions in case the preferred version isn't available.
1587-
if !supportedSwiftVersions.isEmpty, !supportedSwiftVersions.contains(self.swiftVersion) {
1587+
if !supportedSwiftVersions.isEmpty, !supportedSwiftVersions.contains(self.toolSwiftVersion) {
15881588
let declaredVersions = Array(normalizedDeclaredVersions.intersection(supportedSwiftVersions)).sorted(by: >)
15891589
if let swiftVersion = declaredVersions.first {
15901590
return swiftVersion
15911591
} else {
15921592
throw PIFGenerationError.unsupportedSwiftLanguageVersion(
15931593
targetName: self.name,
1594-
version: self.swiftVersion,
1594+
version: self.toolSwiftVersion,
15951595
supportedVersions: supportedSwiftVersions
15961596
)
15971597
}
15981598
}
1599-
return self.swiftVersion
1599+
return self.toolSwiftVersion
16001600
}
16011601
}
16021602

Tests/PackageLoadingTests/PackageBuilderTests.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3303,7 +3303,7 @@ final class PackageBuilderTester {
33033303
guard case let swiftTarget as SwiftTarget = target else {
33043304
return XCTFail("\(target) is not a swift target", file: file, line: line)
33053305
}
3306-
XCTAssertEqual(SwiftLanguageVersion(string: swiftVersion)!, swiftTarget.swiftVersion, file: file, line: line)
3306+
XCTAssertEqual(SwiftLanguageVersion(string: swiftVersion)!, swiftTarget.toolSwiftVersion, file: file, line: line)
33073307
}
33083308

33093309
func check(pluginCapability: PluginCapability, file: StaticString = #file, line: UInt = #line) {

0 commit comments

Comments
 (0)