Skip to content

Commit 130434b

Browse files
committed
Order package manifest to start with the package declaration
Instead of starting with environment variable parsing, start with the actual package manifest, which is most likely the most interesting to most users.
1 parent 4d634f2 commit 130434b

File tree

1 file changed

+43
-44
lines changed

1 file changed

+43
-44
lines changed

Package.swift

Lines changed: 43 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -14,24 +14,6 @@
1414
import Foundation
1515
import PackageDescription
1616

17-
// MARK: - Parse build arguments
18-
19-
func hasEnvironmentVariable(_ name: String) -> Bool {
20-
return ProcessInfo.processInfo.environment[name] != nil
21-
}
22-
23-
// When building the toolchain on the CI, don't add the CI's runpath for the
24-
// final build before installing.
25-
let installAction = hasEnvironmentVariable("SOURCEKIT_LSP_CI_INSTALL")
26-
27-
28-
// MARK: - Compute custom build settings
29-
30-
var swiftformatLinkSettings: [LinkerSetting] = []
31-
if installAction {
32-
swiftformatLinkSettings += [.unsafeFlags(["-no-toolchain-stdlib-rpath"], .when(platforms: [.linux, .android]))]
33-
}
34-
3517
let package = Package(
3618
name: "swift-format",
3719
platforms: [
@@ -56,9 +38,7 @@ let package = Package(
5638
targets: ["Lint Source Code"]
5739
),
5840
],
59-
dependencies: [
60-
// See the "Dependencies" section below.
61-
],
41+
dependencies: dependencies,
6242
targets: [
6343
.target(
6444
name: "_SwiftFormatInstructionCounter"
@@ -156,28 +136,47 @@ let package = Package(
156136
]
157137
)
158138

159-
// MARK: Dependencies
139+
// MARK: - Parse build arguments
160140

161-
if ProcessInfo.processInfo.environment["SWIFTCI_USE_LOCAL_DEPS"] == nil {
162-
// Building standalone.
163-
package.dependencies += [
164-
.package(
165-
url: "https://github.com/apple/swift-argument-parser.git",
166-
from: "1.2.2"
167-
),
168-
.package(
169-
url: "https://github.com/apple/swift-markdown.git",
170-
from: "0.2.0"
171-
),
172-
.package(
173-
url: "https://github.com/apple/swift-syntax.git",
174-
branch: "main"
175-
),
176-
]
177-
} else {
178-
package.dependencies += [
179-
.package(path: "../swift-argument-parser"),
180-
.package(path: "../swift-markdown"),
181-
.package(path: "../swift-syntax"),
182-
]
141+
func hasEnvironmentVariable(_ name: String) -> Bool {
142+
return ProcessInfo.processInfo.environment[name] != nil
143+
}
144+
145+
// When building the toolchain on the CI, don't add the CI's runpath for the
146+
// final build before installing.
147+
var installAction: Bool { hasEnvironmentVariable("SOURCEKIT_LSP_CI_INSTALL") }
148+
149+
/// Assume that all the package dependencies are checked out next to sourcekit-lsp and use that instead of fetching a
150+
/// remote dependency.
151+
var useLocalDependencies: Bool { hasEnvironmentVariable("SWIFTCI_USE_LOCAL_DEPS") }
152+
153+
// MARK: - Dependencies
154+
155+
var dependencies: [Package.Dependency] {
156+
if useLocalDependencies {
157+
return [
158+
.package(path: "../swift-argument-parser"),
159+
.package(path: "../swift-markdown"),
160+
.package(path: "../swift-syntax"),
161+
]
162+
} else {
163+
return [
164+
.package(url: "https://github.com/apple/swift-argument-parser.git", from: "1.2.2"),
165+
.package(url: "https://github.com/apple/swift-markdown.git", from: "0.2.0"),
166+
.package(url: "https://github.com/apple/swift-syntax.git", branch: "main"),
167+
]
168+
}
183169
}
170+
171+
172+
173+
// MARK: - Compute custom build settings
174+
175+
var swiftformatLinkSettings: [LinkerSetting] {
176+
if installAction {
177+
return [.unsafeFlags(["-no-toolchain-stdlib-rpath"], .when(platforms: [.linux, .android]))]
178+
} else {
179+
return []
180+
}
181+
}
182+

0 commit comments

Comments
 (0)