Skip to content

Commit fab8843

Browse files
authored
Sever TSC/Driver dependencies if using SwiftBuild Framework (#8442)
The SwiftBuild project has a dependency on Swift Driver, which has a dependency on Swift Tools Support Core (STSC). Swift Package Manager (SwiftPM) executable targets also have a dependency on STSC. Sever SwiftPM package dependency on STSC if the `SWIFTPM_SWBUILD_FRAMEWORK` environment variable is set so we can indirectly pull the STCS dependency on the dynamic library that will be pulled in via SwiftDriver. Reverts #8437
1 parent e23a72d commit fab8843

File tree

1 file changed

+26
-9
lines changed

1 file changed

+26
-9
lines changed

Package.swift

Lines changed: 26 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,27 @@ if ProcessInfo.processInfo.environment["SWIFTCI_INSTALL_RPATH_OS"] == "android"
100100
*/
101101
let autoProducts = [swiftPMProduct, swiftPMDataModelProduct]
102102

103+
let shoudUseSwiftBuildFramework = (ProcessInfo.processInfo.environment["SWIFTPM_SWBUILD_FRAMEWORK"] != nil)
104+
105+
let swiftDriverDeps: [Target.Dependency]
106+
let swiftTSCBasicsDeps: [Target.Dependency]
107+
let swiftToolsCoreSupportAutoDeps: [Target.Dependency]
108+
109+
if shoudUseSwiftBuildFramework {
110+
swiftDriverDeps = []
111+
swiftTSCBasicsDeps = []
112+
swiftToolsCoreSupportAutoDeps = []
113+
} else {
114+
swiftDriverDeps = [
115+
.product(name: "SwiftDriver", package: "swift-driver")
116+
]
117+
swiftTSCBasicsDeps = [
118+
.product(name: "TSCBasic", package: "swift-tools-support-core"),
119+
]
120+
swiftToolsCoreSupportAutoDeps = [
121+
.product(name: "SwiftToolsSupport-auto", package: "swift-tools-support-core")
122+
]
123+
}
103124
let package = Package(
104125
name: "SwiftPM",
105126
platforms: [
@@ -244,9 +265,8 @@ let package = Package(
244265
.product(name: "SwiftToolchainCSQLite", package: "swift-toolchain-sqlite", condition: .when(platforms: [.windows, .android])),
245266
.product(name: "DequeModule", package: "swift-collections"),
246267
.product(name: "OrderedCollections", package: "swift-collections"),
247-
.product(name: "SwiftToolsSupport-auto", package: "swift-tools-support-core"),
248268
.product(name: "SystemPackage", package: "swift-system"),
249-
],
269+
] + swiftToolsCoreSupportAutoDeps,
250270
exclude: ["CMakeLists.txt", "Vendor/README.md"],
251271
swiftSettings: swift6CompatibleExperimentalFeatures + [
252272
.enableExperimentalFeature("StrictConcurrency"),
@@ -309,8 +329,7 @@ let package = Package(
309329
name: "SwiftFixIt",
310330
dependencies: [
311331
"Basics",
312-
.product(name: "TSCBasic", package: "swift-tools-support-core"),
313-
] + swiftSyntaxDependencies(
332+
] + swiftTSCBasicsDeps + swiftSyntaxDependencies(
314333
["SwiftDiagnostics", "SwiftIDEUtils", "SwiftParser", "SwiftSyntax"]
315334
),
316335
exclude: ["CMakeLists.txt"],
@@ -474,10 +493,9 @@ let package = Package(
474493
"PackageGraph",
475494
"SPMBuildCore",
476495
"SPMLLBuild",
477-
.product(name: "SwiftDriver", package: "swift-driver"),
478496
.product(name: "OrderedCollections", package: "swift-collections"),
479497
"DriverSupport",
480-
],
498+
] + swiftDriverDeps,
481499
exclude: ["CMakeLists.txt"],
482500
swiftSettings: commonExperimentalFeatures + [
483501
.unsafeFlags(["-static"]),
@@ -488,8 +506,7 @@ let package = Package(
488506
dependencies: [
489507
"Basics",
490508
"PackageModel",
491-
.product(name: "SwiftDriver", package: "swift-driver"),
492-
],
509+
] + swiftDriverDeps,
493510
exclude: ["CMakeLists.txt"],
494511
swiftSettings: commonExperimentalFeatures + [
495512
.unsafeFlags(["-static"]),
@@ -1095,7 +1112,7 @@ if ProcessInfo.processInfo.environment["ENABLE_APPLE_PRODUCT_TYPES"] == "1" {
10951112
}
10961113
}
10971114

1098-
if ProcessInfo.processInfo.environment["SWIFTPM_SWBUILD_FRAMEWORK"] == nil {
1115+
if !shoudUseSwiftBuildFramework {
10991116

11001117
let swiftbuildsupport: Target = package.targets.first(where: { $0.name == "SwiftBuildSupport" } )!
11011118
swiftbuildsupport.dependencies += [

0 commit comments

Comments
 (0)