Skip to content

Commit 20826c2

Browse files
committed
Update Package.swift dependency
We should avoid adding a dependency on Swift Tools Support Core in SwiftPM. If we need to, we ought to use the `swiftTSCBasicsDeps` and `swiftToolsCoreSupportAutoDeps` variables.
1 parent 18f2018 commit 20826c2

File tree

1 file changed

+20
-8
lines changed

1 file changed

+20
-8
lines changed

Package.swift

Lines changed: 20 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -106,11 +106,13 @@ let shoudUseSwiftBuildFramework = (ProcessInfo.processInfo.environment["SWIFTPM_
106106
let swiftDriverDeps: [Target.Dependency]
107107
let swiftTSCBasicsDeps: [Target.Dependency]
108108
let swiftToolsCoreSupportAutoDeps: [Target.Dependency]
109+
let swiftTSCTestSupportDeps: [Target.Dependency]
109110

110111
if shoudUseSwiftBuildFramework {
111112
swiftDriverDeps = []
112113
swiftTSCBasicsDeps = []
113114
swiftToolsCoreSupportAutoDeps = []
115+
swiftTSCTestSupportDeps = []
114116
} else {
115117
swiftDriverDeps = [
116118
.product(name: "SwiftDriver", package: "swift-driver")
@@ -121,6 +123,9 @@ if shoudUseSwiftBuildFramework {
121123
swiftToolsCoreSupportAutoDeps = [
122124
.product(name: "SwiftToolsSupport-auto", package: "swift-tools-support-core")
123125
]
126+
swiftTSCTestSupportDeps = [
127+
.product(name: "TSCTestSupport", package: "swift-tools-support-core"),
128+
]
124129
}
125130
let package = Package(
126131
name: "SwiftPM",
@@ -344,8 +349,7 @@ let package = Package(
344349
name: "BinarySymbols",
345350
dependencies: [
346351
"Basics",
347-
.product(name: "TSCBasic", package: "swift-tools-support-core"),
348-
],
352+
] + swiftTSCBasicsDeps,
349353
exclude: ["CMakeLists.txt"],
350354
swiftSettings: commonExperimentalFeatures + [
351355
.unsafeFlags(["-static"]),
@@ -819,10 +823,9 @@ let package = Package(
819823
"PackageRegistry",
820824
"PackageSigning",
821825
"SourceControl",
822-
.product(name: "TSCTestSupport", package: "swift-tools-support-core"),
823826
.product(name: "OrderedCollections", package: "swift-collections"),
824827
"Workspace",
825-
],
828+
] + swiftTSCTestSupportDeps,
826829
swiftSettings: [
827830
.unsafeFlags(["-static"]),
828831
]
@@ -1096,12 +1099,10 @@ if ProcessInfo.processInfo.environment["SWIFTPM_LLBUILD_FWK"] == nil {
10961099

10971100
if ProcessInfo.processInfo.environment["SWIFTCI_USE_LOCAL_DEPS"] == nil {
10981101
package.dependencies += [
1099-
.package(url: "https://github.com/swiftlang/swift-tools-support-core.git", branch: relatedDependenciesBranch),
11001102
// The 'swift-argument-parser' version declared here must match that
11011103
// used by 'swift-driver' and 'sourcekit-lsp'. Please coordinate
11021104
// dependency version changes here with those projects.
11031105
.package(url: "https://github.com/apple/swift-argument-parser.git", .upToNextMinor(from: "1.5.1")),
1104-
.package(url: "https://github.com/swiftlang/swift-driver.git", branch: relatedDependenciesBranch),
11051106
.package(url: "https://github.com/apple/swift-crypto.git", .upToNextMinor(from: "3.0.0")),
11061107
.package(url: "https://github.com/swiftlang/swift-syntax.git", branch: relatedDependenciesBranch),
11071108
.package(url: "https://github.com/apple/swift-system.git", from: "1.1.1"),
@@ -1111,18 +1112,29 @@ if ProcessInfo.processInfo.environment["SWIFTCI_USE_LOCAL_DEPS"] == nil {
11111112
// For use in previewing documentation
11121113
.package(url: "https://github.com/swiftlang/swift-docc-plugin", from: "1.1.0"),
11131114
]
1115+
if !swiftDriverDeps.isEmpty {
1116+
package.dependencies += [
1117+
.package(url: "https://github.com/swiftlang/swift-tools-support-core.git", branch: relatedDependenciesBranch),
1118+
.package(url: "https://github.com/swiftlang/swift-driver.git", branch: relatedDependenciesBranch),
1119+
]
1120+
}
11141121
} else {
11151122
package.dependencies += [
1116-
.package(path: "../swift-tools-support-core"),
11171123
.package(path: "../swift-argument-parser"),
1118-
.package(path: "../swift-driver"),
11191124
.package(path: "../swift-crypto"),
11201125
.package(path: "../swift-syntax"),
11211126
.package(path: "../swift-system"),
11221127
.package(path: "../swift-collections"),
11231128
.package(path: "../swift-certificates"),
11241129
.package(path: "../swift-toolchain-sqlite"),
11251130
]
1131+
if !swiftDriverDeps.isEmpty {
1132+
package.dependencies += [
1133+
.package(path: "../swift-tools-support-core"),
1134+
.package(path: "../swift-driver"),
1135+
]
1136+
}
1137+
11261138
}
11271139

11281140
/// If ENABLE_APPLE_PRODUCT_TYPES is set in the environment, then also define ENABLE_APPLE_PRODUCT_TYPES in each of the regular targets and test targets.

0 commit comments

Comments
 (0)