@@ -105,12 +105,14 @@ let swiftDriverDeps: [Target.Dependency]
105105let swiftTSCBasicsDeps : [ Target . Dependency ]
106106let swiftToolsCoreSupportAutoDeps : [ Target . Dependency ]
107107let swiftTSCTestSupportDeps : [ Target . Dependency ]
108+ let swiftToolsProtocolsDeps : [ Target . Dependency ]
108109
109110if shouldUseSwiftBuildFramework {
110111 swiftDriverDeps = [ ]
111112 swiftTSCBasicsDeps = [ ]
112113 swiftToolsCoreSupportAutoDeps = [ ]
113114 swiftTSCTestSupportDeps = [ ]
115+ swiftToolsProtocolsDeps = [ ]
114116} else {
115117 swiftDriverDeps = [
116118 . product( name: " SwiftDriver " , package : " swift-driver " )
@@ -124,6 +126,11 @@ if shouldUseSwiftBuildFramework {
124126 swiftTSCTestSupportDeps = [
125127 . product( name: " TSCTestSupport " , package : " swift-tools-support-core " ) ,
126128 ]
129+ swiftToolsProtocolsDeps = [
130+ . product( name: " BuildServerProtocol " , package : " swift-tools-protocols " , condition: . when( platforms: [ . macOS, . linux, . windows, . android, . openbsd, . custom( " freebsd " ) ] ) ) ,
131+ . product( name: " LanguageServerProtocol " , package : " swift-tools-protocols " , condition: . when( platforms: [ . macOS, . linux, . windows, . android, . openbsd, . custom( " freebsd " ) ] ) ) ,
132+ . product( name: " LanguageServerProtocolTransport " , package : " swift-tools-protocols " , condition: . when( platforms: [ . macOS, . linux, . windows, . android, . openbsd, . custom( " freebsd " ) ] ) ) ,
133+ ]
127134}
128135let package = Package (
129136 name: " SwiftPM " ,
@@ -547,6 +554,23 @@ let package = Package(
547554 ]
548555 ) ,
549556
557+ // MARK: BSP
558+ . target(
559+ name: " SwiftPMBuildServer " ,
560+ dependencies: [
561+ " Basics " ,
562+ " Build " ,
563+ " PackageGraph " ,
564+ " PackageLoading " ,
565+ " PackageModel " ,
566+ " SPMBuildCore " ,
567+ " SourceControl " ,
568+ " SourceKitLSPAPI " ,
569+ " SwiftBuildSupport " ,
570+ " Workspace "
571+ ] + swiftTSCBasicsDeps + swiftToolsProtocolsDeps
572+ ) ,
573+
550574 // MARK: Commands
551575
552576 . target(
@@ -575,6 +599,7 @@ let package = Package(
575599 dependencies: [
576600 . product( name: " ArgumentParser " , package : " swift-argument-parser " ) ,
577601 . product( name: " OrderedCollections " , package : " swift-collections " ) ,
602+ . product( name: " SystemPackage " , package : " swift-system " ) ,
578603 " Basics " ,
579604 " BinarySymbols " ,
580605 " Build " ,
@@ -585,6 +610,7 @@ let package = Package(
585610 " XCBuildSupport " ,
586611 " SwiftBuildSupport " ,
587612 " SwiftFixIt " ,
613+ " SwiftPMBuildServer " ,
588614 ] + swiftSyntaxDependencies( [ " SwiftIDEUtils " , " SwiftRefactor " ] ) ,
589615 exclude: [ " CMakeLists.txt " , " README.md " ] ,
590616 swiftSettings: swift6CompatibleExperimentalFeatures + [
@@ -1055,6 +1081,13 @@ if ProcessInfo.processInfo.environment["SWIFTCI_DISABLE_SDK_DEPENDENT_TESTS"] ==
10551081 " dummy-swiftc " ,
10561082 ]
10571083 ) ,
1084+ . testTarget(
1085+ name: " SwiftPMBuildServerTests " ,
1086+ dependencies: [
1087+ " SwiftPMBuildServer " ,
1088+ " _InternalTestSupport " ,
1089+ ] + swiftToolsProtocolsDeps
1090+ ) ,
10581091 ] )
10591092}
10601093
@@ -1151,7 +1184,7 @@ if ProcessInfo.processInfo.environment["ENABLE_APPLE_PRODUCT_TYPES"] == "1" {
11511184
11521185if !shouldUseSwiftBuildFramework {
11531186
1154- let swiftbuildsupport : Target = package . targets. first ( where: { $0 . name == " SwiftBuildSupport " } ) !
1187+ let swiftbuildsupport : Target = package . targets. first ( where: { [ " SwiftBuildSupport " , " SwiftPMBuildServer " , " SwiftPMBuildServerTests " ] . contains ( $0 . name ) } ) !
11551188 swiftbuildsupport. dependencies += [
11561189 . product( name: " SwiftBuild " , package : " swift-build " ) ,
11571190 ]
@@ -1164,10 +1197,12 @@ if !shouldUseSwiftBuildFramework {
11641197 if ProcessInfo . processInfo. environment [ " SWIFTCI_USE_LOCAL_DEPS " ] == nil {
11651198 package . dependencies += [
11661199 . package ( url: " https://github.com/swiftlang/swift-build.git " , branch: relatedDependenciesBranch) ,
1200+ . package ( url: " https://github.com/swiftlang/swift-tools-protocols.git " , . upToNextMinor( from: " 0.0.9 " ) ) ,
11671201 ]
11681202 } else {
11691203 package . dependencies += [
11701204 . package ( path: " ../swift-build " ) ,
1205+ . package ( path: " ../swift-tools-protocols " ) ,
11711206 ]
11721207 }
11731208}
0 commit comments