Skip to content

Commit e0fa85f

Browse files
authored
Merge pull request #2200 from ahoppen/ahoppen/build-cleanup
Clean ups to the swift-syntax-dev-utils and Package.swift
2 parents fb95cbb + e2f928d commit e0fa85f

File tree

4 files changed

+42
-36
lines changed

4 files changed

+42
-36
lines changed

Package.swift

Lines changed: 40 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -3,36 +3,62 @@
33
import Foundation
44
import PackageDescription
55

6+
// MARK: - Parse build arguments
7+
8+
func hasEnvironmentVariable(_ name: String) -> Bool {
9+
return ProcessInfo.processInfo.environment[name] != nil
10+
}
11+
12+
/// Set when building swift-syntax using swift-syntax-dev-utils or in Swift CI in general.
13+
///
14+
/// Modifies the build in the following ways
15+
/// - Enables assertions even in release builds
16+
/// - Removes the dependency of swift-syntax on os_log
17+
let buildScriptEnvironment = hasEnvironmentVariable("SWIFT_BUILD_SCRIPT_ENVIRONMENT")
18+
19+
/// Check that the layout of the syntax tree is correct.
20+
///
21+
/// See CONTRIBUTING.md for more information
22+
let rawSyntaxValidation = hasEnvironmentVariable("SWIFTSYNTAX_ENABLE_RAWSYNTAX_VALIDATION")
23+
24+
/// Mutate the input of `assertParse` test cases.
25+
///
26+
/// See CONTRIBUTING.md for more information
27+
let alternateTokenIntrospection = hasEnvironmentVariable("SWIFTPARSER_ENABLE_ALTERNATE_TOKEN_INTROSPECTION")
28+
29+
/// Assume that swift-argument-parser is checked out next to swift-syntax and use that instead of fetching a remote dependency.
30+
let useLocalDependencies = hasEnvironmentVariable("SWIFTCI_USE_LOCAL_DEPS")
31+
32+
// MARK: - Compute custom build settings
33+
34+
// These build settings apply to the target and the corresponding test target.
635
var swiftSyntaxSwiftSettings: [SwiftSetting] = []
736
var swiftSyntaxBuilderSwiftSettings: [SwiftSetting] = []
837
var swiftParserSwiftSettings: [SwiftSetting] = []
938

10-
/// If we are in a controlled CI environment, we can use internal compiler flags
11-
/// to speed up the build or improve it.
12-
if ProcessInfo.processInfo.environment["SWIFT_BUILD_SCRIPT_ENVIRONMENT"] != nil {
39+
if buildScriptEnvironment {
1340
swiftSyntaxSwiftSettings += [
1441
.define("SWIFTSYNTAX_ENABLE_ASSERTIONS")
1542
]
1643
swiftSyntaxBuilderSwiftSettings += [
1744
.define("SWIFTSYNTAX_NO_OSLOG_DEPENDENCY")
1845
]
19-
swiftParserSwiftSettings += [
20-
.define("SWIFTSYNTAX_NO_OSLOG_DEPENDENCY")
21-
]
2246
}
2347

24-
if ProcessInfo.processInfo.environment["SWIFTSYNTAX_ENABLE_RAWSYNTAX_VALIDATION"] != nil {
48+
if rawSyntaxValidation {
2549
swiftSyntaxSwiftSettings += [
2650
.define("SWIFTSYNTAX_ENABLE_RAWSYNTAX_VALIDATION")
2751
]
2852
}
2953

30-
if ProcessInfo.processInfo.environment["SWIFTPARSER_ENABLE_ALTERNATE_TOKEN_INTROSPECTION"] != nil {
54+
if alternateTokenIntrospection {
3155
swiftParserSwiftSettings += [
3256
.define("SWIFTPARSER_ENABLE_ALTERNATE_TOKEN_INTROSPECTION")
3357
]
3458
}
3559

60+
// MARK: - Build the package
61+
3662
let package = Package(
3763
name: "swift-syntax",
3864
platforms: [
@@ -153,10 +179,11 @@ let package = Package(
153179

154180
.testTarget(
155181
name: "SwiftSyntaxTest",
156-
dependencies: ["_SwiftSyntaxTestSupport", "SwiftSyntax", "SwiftSyntaxBuilder"]
182+
dependencies: ["_SwiftSyntaxTestSupport", "SwiftSyntax", "SwiftSyntaxBuilder"],
183+
swiftSettings: swiftSyntaxSwiftSettings
157184
),
158185

159-
// MARK: Verison marker modules
186+
// MARK: Version marker modules
160187

161188
.target(
162189
name: "SwiftSyntax509",
@@ -174,7 +201,8 @@ let package = Package(
174201

175202
.testTarget(
176203
name: "SwiftSyntaxBuilderTest",
177-
dependencies: ["_SwiftSyntaxTestSupport", "SwiftSyntaxBuilder"]
204+
dependencies: ["_SwiftSyntaxTestSupport", "SwiftSyntaxBuilder"],
205+
swiftSettings: swiftSyntaxBuilderSwiftSettings
178206
),
179207

180208
// MARK: SwiftSyntaxMacros
@@ -303,7 +331,7 @@ package.targets.append(
303331
)
304332
)
305333

306-
if ProcessInfo.processInfo.environment["SWIFTCI_USE_LOCAL_DEPS"] == nil {
334+
if useLocalDependencies {
307335
// Building standalone.
308336
package.dependencies += [
309337
.package(url: "https://github.com/apple/swift-argument-parser.git", from: "1.2.2")

SwiftSyntaxDevUtils/Sources/swift-syntax-dev-utils/commands/Test.swift

Lines changed: 2 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -32,18 +32,11 @@ struct Test: ParsableCommand, BuildCommand {
3232

3333
private func runTests() throws {
3434
logSection("Running SwiftSyntax Tests")
35-
var swiftpmCallArguments = [
36-
"--test-product", "swift-syntaxPackageTests",
37-
]
38-
39-
if arguments.verbose {
40-
swiftpmCallArguments += ["--verbose"]
41-
}
4235

4336
try invokeSwiftPM(
4437
action: "test",
4538
packageDir: Paths.packageDir,
46-
additionalArguments: swiftpmCallArguments,
39+
additionalArguments: ["--test-product", "swift-syntaxPackageTests"],
4740
additionalEnvironment: swiftPMEnvironmentVariables,
4841
captureStdout: false,
4942
captureStderr: false
@@ -52,18 +45,10 @@ struct Test: ParsableCommand, BuildCommand {
5245

5346
private func runCodeGenerationTests() throws {
5447
logSection("Running CodeGeneration Tests")
55-
var swiftpmCallArguments = [
56-
"--test-product", "CodeGenerationPackageTests",
57-
]
58-
59-
if arguments.verbose {
60-
swiftpmCallArguments += ["--verbose"]
61-
}
62-
6348
try invokeSwiftPM(
6449
action: "test",
6550
packageDir: Paths.codeGenerationDir,
66-
additionalArguments: swiftpmCallArguments,
51+
additionalArguments: ["--test-product", "CodeGenerationPackageTests"],
6752
additionalEnvironment: swiftPMEnvironmentVariables,
6853
captureStdout: false,
6954
captureStderr: false

SwiftSyntaxDevUtils/Sources/swift-syntax-dev-utils/common/BuildArguments.swift

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -39,9 +39,6 @@ struct BuildArguments: ParsableArguments {
3939
)
4040
var multirootDataFile: URL?
4141

42-
@Flag(help: "Disable sandboxes when building with SwiftPM")
43-
var disableSandbox: Bool = false
44-
4542
@Flag(help: "Build in release mode.")
4643
var release: Bool = false
4744

SwiftSyntaxDevUtils/Sources/swift-syntax-dev-utils/common/BuildCommand.swift

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -62,10 +62,6 @@ extension BuildCommand {
6262
args += ["--multiroot-data-file", multirootDataFile]
6363
}
6464

65-
if arguments.disableSandbox {
66-
args += ["--disable-sandbox"]
67-
}
68-
6965
if arguments.verbose {
7066
args += ["--verbose"]
7167
}

0 commit comments

Comments
 (0)