Skip to content

Commit 573de2d

Browse files
authored
Merge pull request #2496 from ahoppen/ahoppen/example-package-warnings-as-errors
Never bulid the `Examples` package with `-warnings-as-errors`
2 parents 5d5beb9 + cd31ad4 commit 573de2d

File tree

3 files changed

+23
-17
lines changed

3 files changed

+23
-17
lines changed

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

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -30,25 +30,28 @@ struct Build: ParsableCommand {
3030
release: arguments.release,
3131
enableRawSyntaxValidation: arguments.enableRawSyntaxValidation,
3232
enableTestFuzzing: arguments.enableTestFuzzing,
33-
warningsAsErrors: arguments.warningsAsErrors,
3433
verbose: arguments.verbose
35-
)
34+
),
35+
warningsAsErrors: arguments.warningsAsErrors
3636
)
3737
try executor.run()
3838
}
3939
}
4040

4141
struct BuildExecutor {
4242
private let swiftPMBuilder: SwiftPMBuilder
43+
private let warningsAsErrors: Bool
4344

44-
init(swiftPMBuilder: SwiftPMBuilder) {
45+
init(swiftPMBuilder: SwiftPMBuilder, warningsAsErrors: Bool = false) {
4546
self.swiftPMBuilder = swiftPMBuilder
47+
self.warningsAsErrors = warningsAsErrors
4648
}
4749

4850
func run() throws {
49-
try swiftPMBuilder.buildTarget(packageDir: Paths.packageDir, targetName: "SwiftSyntax-all")
50-
try swiftPMBuilder.buildTarget(packageDir: Paths.examplesDir, targetName: "Examples-all")
51-
try swiftPMBuilder.buildTarget(packageDir: Paths.swiftParserCliDir, targetName: "swift-parser-cli")
51+
try swiftPMBuilder.buildTarget(packageDir: Paths.packageDir, targetName: "SwiftSyntax-all", warningsAsErrors: self.warningsAsErrors)
52+
// Never build examples with `warningsAsErrors`. Some of the macro examples are expected to generate warnings.
53+
try swiftPMBuilder.buildTarget(packageDir: Paths.examplesDir, targetName: "Examples-all", warningsAsErrors: false)
54+
try swiftPMBuilder.buildTarget(packageDir: Paths.swiftParserCliDir, targetName: "swift-parser-cli", warningsAsErrors: self.warningsAsErrors)
5255
try buildEditorExtension()
5356
}
5457

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

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,19 +30,21 @@ struct Test: ParsableCommand {
3030
release: arguments.release,
3131
enableRawSyntaxValidation: arguments.enableRawSyntaxValidation,
3232
enableTestFuzzing: arguments.enableTestFuzzing,
33-
warningsAsErrors: arguments.warningsAsErrors,
3433
verbose: arguments.verbose
35-
)
34+
),
35+
warningsAsErrors: arguments.warningsAsErrors
3636
)
3737
try executor.run()
3838
}
3939
}
4040

4141
struct TestExecutor {
4242
private let swiftPMBuilder: SwiftPMBuilder
43+
private let warningsAsErrors: Bool
4344

44-
init(swiftPMBuilder: SwiftPMBuilder) {
45+
init(swiftPMBuilder: SwiftPMBuilder, warningsAsErrors: Bool = false) {
4546
self.swiftPMBuilder = swiftPMBuilder
47+
self.warningsAsErrors = warningsAsErrors
4648
}
4749

4850
func run() throws {
@@ -59,6 +61,7 @@ struct TestExecutor {
5961
try swiftPMBuilder.invokeSwiftPM(
6062
action: "test",
6163
packageDir: Paths.packageDir,
64+
warningsAsErrors: warningsAsErrors,
6265
additionalArguments: ["--test-product", "swift-syntaxPackageTests"],
6366
additionalEnvironment: swiftPMBuilder.swiftPMEnvironmentVariables,
6467
captureStdout: false,
@@ -71,6 +74,7 @@ struct TestExecutor {
7174
try swiftPMBuilder.invokeSwiftPM(
7275
action: "test",
7376
packageDir: Paths.codeGenerationDir,
77+
warningsAsErrors: warningsAsErrors,
7478
additionalArguments: ["--test-product", "CodeGenerationPackageTests"],
7579
additionalEnvironment: swiftPMBuilder.swiftPMEnvironmentVariables,
7680
captureStdout: false,
@@ -83,6 +87,7 @@ struct TestExecutor {
8387
try swiftPMBuilder.invokeSwiftPM(
8488
action: "test",
8589
packageDir: Paths.examplesDir,
90+
warningsAsErrors: warningsAsErrors,
8691
additionalArguments: ["--test-product", "ExamplesPackageTests"],
8792
additionalEnvironment: swiftPMBuilder.swiftPMEnvironmentVariables,
8893
captureStdout: false,
@@ -94,6 +99,7 @@ struct TestExecutor {
9499
return try swiftPMBuilder.invokeSwiftPM(
95100
action: "build",
96101
packageDir: packageDir,
102+
warningsAsErrors: warningsAsErrors,
97103
additionalArguments: ["--show-bin-path"],
98104
additionalEnvironment: [:]
99105
).stdout

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

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -41,9 +41,6 @@ struct SwiftPMBuilder {
4141
/// A flag indicating whether to use local dependencies during the build process.
4242
let useLocalDeps: Bool
4343

44-
/// Treat all warnings as errors.
45-
let warningsAsErrors: Bool
46-
4744
/// Enable verbose logging.
4845
let verbose: Bool
4946

@@ -55,7 +52,6 @@ struct SwiftPMBuilder {
5552
enableRawSyntaxValidation: Bool = false,
5653
enableTestFuzzing: Bool = false,
5754
useLocalDeps: Bool = true,
58-
warningsAsErrors: Bool = false,
5955
verbose: Bool = false
6056
) {
6157
self.toolchain = toolchain
@@ -65,11 +61,10 @@ struct SwiftPMBuilder {
6561
self.enableRawSyntaxValidation = enableRawSyntaxValidation
6662
self.enableTestFuzzing = enableTestFuzzing
6763
self.useLocalDeps = useLocalDeps
68-
self.warningsAsErrors = warningsAsErrors
6964
self.verbose = verbose
7065
}
7166

72-
func buildTarget(packageDir: URL, targetName: String) throws {
67+
func buildTarget(packageDir: URL, targetName: String, warningsAsErrors: Bool = false) throws {
7368
logSection("Building target " + targetName)
7469
try build(packageDir: packageDir, name: targetName, isProduct: false)
7570
}
@@ -78,6 +73,7 @@ struct SwiftPMBuilder {
7873
func invokeSwiftPM(
7974
action: String,
8075
packageDir: URL,
76+
warningsAsErrors: Bool = false,
8177
additionalArguments: [String],
8278
additionalEnvironment: [String: String],
8379
captureStdout: Bool = true,
@@ -93,7 +89,7 @@ struct SwiftPMBuilder {
9389
args += ["--scratch-path", buildDir]
9490
}
9591

96-
if self.warningsAsErrors {
92+
if warningsAsErrors {
9793
args += ["-Xswiftc", "-warnings-as-errors"]
9894
}
9995

@@ -152,7 +148,7 @@ struct SwiftPMBuilder {
152148
return additionalEnvironment
153149
}
154150

155-
private func build(packageDir: URL, name: String, isProduct: Bool) throws {
151+
private func build(packageDir: URL, name: String, isProduct: Bool, warningsAsErrors: Bool = false) throws {
156152
let args: [String]
157153

158154
if isProduct {
@@ -164,6 +160,7 @@ struct SwiftPMBuilder {
164160
try invokeSwiftPM(
165161
action: "build",
166162
packageDir: packageDir,
163+
warningsAsErrors: warningsAsErrors,
167164
additionalArguments: args,
168165
additionalEnvironment: swiftPMEnvironmentVariables,
169166
captureStdout: false,

0 commit comments

Comments
 (0)