Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
90 changes: 38 additions & 52 deletions Package.swift
Original file line number Diff line number Diff line change
Expand Up @@ -3,20 +3,6 @@
import Foundation
import PackageDescription

/// Swift settings that should be applied to every Swift target.
var globalSwiftSettings: [SwiftSetting] {
var result: [SwiftSetting] = [
.enableUpcomingFeature("InternalImportsByDefault"),
.enableUpcomingFeature("MemberImportVisibility"),
.enableUpcomingFeature("InferIsolatedConformances"),
.enableUpcomingFeature("NonisolatedNonsendingByDefault"),
]
if noSwiftPMDependency {
result += [.define("NO_SWIFTPM_DEPENDENCY")]
}
return result
}

var products: [Product] = [
.executable(name: "sourcekit-lsp", targets: ["sourcekit-lsp"]),
.library(name: "_SourceKitLSP", targets: ["SourceKitLSP"]),
Expand Down Expand Up @@ -50,7 +36,6 @@ var targets: [Target] = [
.product(name: "SwiftToolsSupport-auto", package: "swift-tools-support-core"),
],
exclude: ["CMakeLists.txt"],
swiftSettings: globalSwiftSettings,
linkerSettings: sourcekitLSPLinkSettings
),

Expand Down Expand Up @@ -78,7 +63,6 @@ var targets: [Target] = [
.product(name: "SwiftPMDataModel-auto", package: "swift-package-manager"),
]),
exclude: ["CMakeLists.txt"],
swiftSettings: globalSwiftSettings
),

.testTarget(
Expand All @@ -92,7 +76,6 @@ var targets: [Target] = [
"TSCExtensions",
.product(name: "LanguageServerProtocol", package: "swift-tools-protocols"),
],
swiftSettings: globalSwiftSettings
),

.target(
Expand All @@ -118,7 +101,6 @@ var targets: [Target] = [
.product(name: "ToolsProtocolsSwiftExtensions", package: "swift-tools-protocols"),
] + swiftSyntaxDependencies(["SwiftSyntax"]),
exclude: ["CMakeLists.txt"],
swiftSettings: globalSwiftSettings
),

// MARK: CompletionScoring
Expand All @@ -127,26 +109,22 @@ var targets: [Target] = [
name: "CompletionScoring",
dependencies: ["CCompletionScoring"],
exclude: ["CMakeLists.txt"],
swiftSettings: globalSwiftSettings
),

.target(
name: "CompletionScoringForPlugin",
dependencies: ["CCompletionScoring"],
exclude: ["CMakeLists.txt"],
swiftSettings: globalSwiftSettings
),

.testTarget(
name: "CompletionScoringTests",
dependencies: ["CompletionScoring", "CompletionScoringTestSupport", "SwiftExtensions"],
swiftSettings: globalSwiftSettings
),

.testTarget(
name: "CompletionScoringPerfTests",
dependencies: ["CompletionScoring", "CompletionScoringTestSupport", "SwiftExtensions"],
swiftSettings: globalSwiftSettings
),

// MARK: CompletionScoringTestSupport
Expand All @@ -159,7 +137,6 @@ var targets: [Target] = [
.product(name: "ToolsProtocolsSwiftExtensions", package: "swift-tools-protocols"),
],
resources: [.copy("INPUTS")],
swiftSettings: globalSwiftSettings
),

// MARK: CSKTestSupport
Expand Down Expand Up @@ -198,7 +175,6 @@ var targets: [Target] = [
.product(name: "ToolsProtocolsSwiftExtensions", package: "swift-tools-protocols"),
] + swiftSyntaxDependencies(["SwiftIDEUtils", "SwiftSyntax", "SwiftParser"]),
exclude: ["CMakeLists.txt"],
swiftSettings: globalSwiftSettings
),

.testTarget(
Expand All @@ -212,7 +188,6 @@ var targets: [Target] = [
.product(name: "SKLogging", package: "swift-tools-protocols"),
.product(name: "SwiftToolsSupport-auto", package: "swift-tools-support-core"),
],
swiftSettings: globalSwiftSettings
),

// MARK: DocumentationLanguageService
Expand All @@ -234,7 +209,6 @@ var targets: [Target] = [
.product(name: "SymbolKit", package: "swift-docc-symbolkit"),
],
exclude: [],
swiftSettings: globalSwiftSettings
),

// MARK: InProcessClient
Expand All @@ -255,7 +229,6 @@ var targets: [Target] = [
.product(name: "ToolsProtocolsSwiftExtensions", package: "swift-tools-protocols"),
],
exclude: ["CMakeLists.txt"],
swiftSettings: globalSwiftSettings
),

// MARK: LanguageServerProtocolExtensions
Expand All @@ -272,7 +245,6 @@ var targets: [Target] = [
.product(name: "ToolsProtocolsSwiftExtensions", package: "swift-tools-protocols"),
],
exclude: ["CMakeLists.txt"],
swiftSettings: globalSwiftSettings
),

// MARK: SemanticIndex
Expand All @@ -292,7 +264,6 @@ var targets: [Target] = [
.product(name: "ToolsProtocolsSwiftExtensions", package: "swift-tools-protocols"),
],
exclude: ["CMakeLists.txt"],
swiftSettings: globalSwiftSettings
),

.testTarget(
Expand All @@ -303,7 +274,6 @@ var targets: [Target] = [
.product(name: "SKLogging", package: "swift-tools-protocols"),
.product(name: "ToolsProtocolsSwiftExtensions", package: "swift-tools-protocols"),
],
swiftSettings: globalSwiftSettings
),

// MARK: SKOptions
Expand All @@ -317,7 +287,6 @@ var targets: [Target] = [
.product(name: "SwiftToolsSupport-auto", package: "swift-tools-support-core"),
],
exclude: ["CMakeLists.txt"],
swiftSettings: globalSwiftSettings
),

// MARK: SKUtilities
Expand All @@ -329,7 +298,6 @@ var targets: [Target] = [
.product(name: "SKLogging", package: "swift-tools-protocols"),
],
exclude: ["CMakeLists.txt"],
swiftSettings: globalSwiftSettings
),

.target(
Expand All @@ -339,7 +307,7 @@ var targets: [Target] = [
.product(name: "_SKLoggingForPlugin", package: "swift-tools-protocols"),
],
exclude: ["CMakeLists.txt"],
swiftSettings: globalSwiftSettings + [
swiftSettings: [
.unsafeFlags([
"-module-alias", "SKLogging=_SKLoggingForPlugin",
"-module-alias", "SwiftExtensions=SwiftExtensionsForPlugin",
Expand All @@ -354,7 +322,6 @@ var targets: [Target] = [
"SKUtilities",
"SKTestSupport",
],
swiftSettings: globalSwiftSettings
),

// MARK: SKTestSupport
Expand Down Expand Up @@ -382,7 +349,6 @@ var targets: [Target] = [
.product(name: "ToolsProtocolsSwiftExtensions", package: "swift-tools-protocols"),
],
resources: [.copy("INPUTS")],
swiftSettings: globalSwiftSettings
),

// MARK: SourceKitD
Expand All @@ -396,7 +362,6 @@ var targets: [Target] = [
.product(name: "ToolsProtocolsSwiftExtensions", package: "swift-tools-protocols"),
],
exclude: ["CMakeLists.txt", "sourcekitd_uids.swift.gyb"],
swiftSettings: globalSwiftSettings
),

.target(
Expand All @@ -408,7 +373,7 @@ var targets: [Target] = [
.product(name: "_ToolsProtocolsSwiftExtensionsForPlugin", package: "swift-tools-protocols"),
],
exclude: ["CMakeLists.txt", "sourcekitd_uids.swift.gyb"],
swiftSettings: globalSwiftSettings + [
swiftSettings: [
.unsafeFlags([
"-module-alias", "SKLogging=_SKLoggingForPlugin",
"-module-alias", "SwiftExtensions=SwiftExtensionsForPlugin",
Expand All @@ -427,7 +392,6 @@ var targets: [Target] = [
"ToolchainRegistry",
.product(name: "ToolsProtocolsSwiftExtensions", package: "swift-tools-protocols"),
],
swiftSettings: globalSwiftSettings
),

// MARK: SourceKitLSP
Expand All @@ -453,7 +417,6 @@ var targets: [Target] = [
.product(name: "ToolsProtocolsSwiftExtensions", package: "swift-tools-protocols"),
] + swiftSyntaxDependencies(["SwiftSyntax"]),
exclude: ["CMakeLists.txt"],
swiftSettings: globalSwiftSettings
),

.testTarget(
Expand Down Expand Up @@ -481,7 +444,6 @@ var targets: [Target] = [
+ swiftSyntaxDependencies([
"SwiftIfConfig", "SwiftParser", "SwiftSyntax", "SwiftCompilerPlugin", "SwiftSyntaxMacros",
]),
swiftSettings: globalSwiftSettings
),

// MARK: SwiftExtensions
Expand All @@ -492,7 +454,6 @@ var targets: [Target] = [
.product(name: "ToolsProtocolsSwiftExtensions", package: "swift-tools-protocols")
],
exclude: ["CMakeLists.txt"],
swiftSettings: globalSwiftSettings
),

.target(
Expand All @@ -501,7 +462,7 @@ var targets: [Target] = [
.product(name: "_ToolsProtocolsSwiftExtensionsForPlugin", package: "swift-tools-protocols")
],
exclude: ["CMakeLists.txt"],
swiftSettings: globalSwiftSettings + [
swiftSettings: [
.unsafeFlags([
"-module-alias", "ToolsProtocolsSwiftExtensions=_ToolsProtocolsSwiftExtensionsForPlugin",
])
Expand All @@ -516,7 +477,6 @@ var targets: [Target] = [
.product(name: "SKLogging", package: "swift-tools-protocols"),
.product(name: "ToolsProtocolsSwiftExtensions", package: "swift-tools-protocols"),
],
swiftSettings: globalSwiftSettings
),

// MARK: SwiftLanguageService
Expand Down Expand Up @@ -555,7 +515,6 @@ var targets: [Target] = [
"SwiftSyntaxBuilder",
]),
exclude: ["CMakeLists.txt"],
swiftSettings: globalSwiftSettings
),

// MARK: SwiftSourceKitClientPlugin
Expand All @@ -569,7 +528,7 @@ var targets: [Target] = [
"SwiftSourceKitPluginCommon",
],
exclude: ["CMakeLists.txt"],
swiftSettings: globalSwiftSettings + [
swiftSettings: [
.unsafeFlags([
"-module-alias", "SourceKitD=SourceKitDForPlugin",
"-module-alias", "SwiftExtensions=SwiftExtensionsForPlugin",
Expand All @@ -590,7 +549,7 @@ var targets: [Target] = [
.product(name: "_SKLoggingForPlugin", package: "swift-tools-protocols"),
],
exclude: ["CMakeLists.txt"],
swiftSettings: globalSwiftSettings + [
swiftSettings: [
.unsafeFlags([
"-module-alias", "SourceKitD=SourceKitDForPlugin",
"-module-alias", "SwiftExtensions=SwiftExtensionsForPlugin",
Expand All @@ -615,7 +574,7 @@ var targets: [Target] = [
.product(name: "_ToolsProtocolsSwiftExtensionsForPlugin", package: "swift-tools-protocols"),
],
exclude: ["CMakeLists.txt"],
swiftSettings: globalSwiftSettings + [
swiftSettings: [
.unsafeFlags([
"-module-alias", "CompletionScoring=CompletionScoringForPlugin",
"-module-alias", "SKUtilities=SKUtilitiesForPlugin",
Expand All @@ -640,7 +599,6 @@ var targets: [Target] = [
"ToolchainRegistry",
.product(name: "LanguageServerProtocol", package: "swift-tools-protocols"),
],
swiftSettings: globalSwiftSettings
),

// MARK: ToolchainRegistry
Expand All @@ -654,7 +612,6 @@ var targets: [Target] = [
.product(name: "SKLogging", package: "swift-tools-protocols"),
],
exclude: ["CMakeLists.txt"],
swiftSettings: globalSwiftSettings
),

.testTarget(
Expand All @@ -663,7 +620,6 @@ var targets: [Target] = [
"SKTestSupport",
"ToolchainRegistry",
],
swiftSettings: globalSwiftSettings
),

// MARK: TSCExtensions
Expand All @@ -677,7 +633,6 @@ var targets: [Target] = [
.product(name: "ToolsProtocolsSwiftExtensions", package: "swift-tools-protocols"),
],
exclude: ["CMakeLists.txt"],
swiftSettings: globalSwiftSettings
),

.testTarget(
Expand All @@ -688,10 +643,41 @@ var targets: [Target] = [
"TSCExtensions",
.product(name: "ToolsProtocolsSwiftExtensions", package: "swift-tools-protocols"),
],
swiftSettings: globalSwiftSettings
),
]

// MARK: - Apply global Swift settings

// Apply global Swift settings to targets.
do {
var globalSwiftSettings: [SwiftSetting] = [
// Swift 7 mode upcoming features. These must be compatible with swift-tools-version.
.enableUpcomingFeature("InternalImportsByDefault"),
.enableUpcomingFeature("MemberImportVisibility"),
.enableUpcomingFeature("InferIsolatedConformances"),
.enableUpcomingFeature("NonisolatedNonsendingByDefault"),
.enableUpcomingFeature("ExistentialAny"),
.enableUpcomingFeature("ImmutableWeakCaptures"),

// Warning escalation.
.unsafeFlags(["-Werror", "ExistentialAny"]),
]
if noSwiftPMDependency {
globalSwiftSettings.append(
.define("NO_SWIFTPM_DEPENDENCY")
)
}

for target in targets where target.type != .plugin {
if let swiftSettings = target.swiftSettings {
// Target-specific settings should come last.
target.swiftSettings = globalSwiftSettings + swiftSettings
} else {
target.swiftSettings = globalSwiftSettings
}
}
}

if buildOnlyTests {
products = []
targets = targets.compactMap { target in
Expand Down
Loading