diff --git a/Package.swift b/Package.swift index 216810019bc..bf0eda3bf77 100644 --- a/Package.swift +++ b/Package.swift @@ -87,6 +87,22 @@ if ProcessInfo.processInfo.environment["SWIFTCI_INSTALL_RPATH_OS"] == "android" */ let autoProducts = [swiftPMProduct, swiftPMDataModelProduct] +let shoudUseSwiftBuildFramework = (ProcessInfo.processInfo.environment["SWIFTPM_SWBUILD_FRAMEWORK"] != nil) + +let swiftDriverDep: [Target.Dependency] +let swiftToolsCoreSupportAutoDep: [Target.Dependency] + +if shoudUseSwiftBuildFramework { + swiftDriverDep = [] + swiftToolsCoreSupportAutoDep = [] +} else { + swiftDriverDep = [ + .product(name: "SwiftDriver", package: "swift-driver") + ] + swiftToolsCoreSupportAutoDep = [ + .product(name: "SwiftToolsSupport-auto", package: "swift-tools-support-core") + ] +} let package = Package( name: "SwiftPM", platforms: [ @@ -231,9 +247,8 @@ let package = Package( .product(name: "SwiftToolchainCSQLite", package: "swift-toolchain-sqlite", condition: .when(platforms: [.windows, .android])), .product(name: "DequeModule", package: "swift-collections"), .product(name: "OrderedCollections", package: "swift-collections"), - .product(name: "SwiftToolsSupport-auto", package: "swift-tools-support-core"), .product(name: "SystemPackage", package: "swift-system"), - ], + ] + swiftToolsCoreSupportAutoDep, exclude: ["CMakeLists.txt", "Vendor/README.md"], swiftSettings: [ .enableExperimentalFeature("StrictConcurrency"), @@ -440,10 +455,9 @@ let package = Package( "PackageGraph", "SPMBuildCore", "SPMLLBuild", - .product(name: "SwiftDriver", package: "swift-driver"), .product(name: "OrderedCollections", package: "swift-collections"), "DriverSupport", - ], + ] + swiftDriverDep, exclude: ["CMakeLists.txt"], swiftSettings: [ .unsafeFlags(["-static"]), @@ -454,8 +468,7 @@ let package = Package( dependencies: [ "Basics", "PackageModel", - .product(name: "SwiftDriver", package: "swift-driver"), - ], + ] + swiftDriverDep, exclude: ["CMakeLists.txt"], swiftSettings: [ .unsafeFlags(["-static"]), @@ -1050,8 +1063,7 @@ if ProcessInfo.processInfo.environment["ENABLE_APPLE_PRODUCT_TYPES"] == "1" { } } -if ProcessInfo.processInfo.environment["SWIFTPM_SWBUILD_FRAMEWORK"] == nil && - ProcessInfo.processInfo.environment["SWIFTPM_NO_SWBUILD_DEPENDENCY"] == nil { +if !shoudUseSwiftBuildFramework { let swiftbuildsupport: Target = package.targets.first(where: { $0.name == "SwiftBuildSupport" } )! swiftbuildsupport.dependencies += [ diff --git a/Tests/CommandsTests/BuildCommandTests.swift b/Tests/CommandsTests/BuildCommandTests.swift index bead37cf431..5fb51bfb10f 100644 --- a/Tests/CommandsTests/BuildCommandTests.swift +++ b/Tests/CommandsTests/BuildCommandTests.swift @@ -932,10 +932,6 @@ class BuildCommandSwiftBuildTests: BuildCommandTestCases { } #endif - if ProcessInfo.processInfo.environment["SWIFTPM_NO_SWBUILD_DEPENDENCY"] != nil { - throw XCTSkip("SWIFTPM_NO_SWBUILD_DEPENDENCY is set so skipping because SwiftPM doesn't have the swift-build capability built inside.") - } - try await super.testBuildSystemDefaultSettings() } diff --git a/Tests/CommandsTests/TestCommandTests.swift b/Tests/CommandsTests/TestCommandTests.swift index 4e27e48fc68..f0b87fff15f 100644 --- a/Tests/CommandsTests/TestCommandTests.swift +++ b/Tests/CommandsTests/TestCommandTests.swift @@ -624,22 +624,6 @@ class TestCommandSwiftBuildTests: TestCommandTestCase { try await super.testUsage() } - override func testFatalErrorDisplayedCorrectNumberOfTimesWhenSingleXCTestHasFatalErrorInBuildCompilation() async throws { - guard ProcessInfo.processInfo.environment["SWIFTPM_NO_SWBUILD_DEPENDENCY"] == nil else { - throw XCTSkip("Skipping test because SwiftBuild is not linked in.") - } - - try await super.testFatalErrorDisplayedCorrectNumberOfTimesWhenSingleXCTestHasFatalErrorInBuildCompilation() - } - - override func testListWithSkipBuildAndNoBuildArtifacts() async throws { - guard ProcessInfo.processInfo.environment["SWIFTPM_NO_SWBUILD_DEPENDENCY"] == nil else { - throw XCTSkip("Skipping test because SwiftBuild is not linked in.") - } - - try await super.testListWithSkipBuildAndNoBuildArtifacts() - } - override func testList() async throws { throw XCTSkip("SWBINTTODO: Test currently fails due to 'error: build failed'") }