Skip to content

Commit d444641

Browse files
committed
Update warning as errors config
1 parent 52d08a9 commit d444641

File tree

2 files changed

+33
-22
lines changed

2 files changed

+33
-22
lines changed

Package.resolved

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
"location" : "https://github.com/OpenSwiftUIProject/OpenGraph",
77
"state" : {
88
"branch" : "main",
9-
"revision" : "8f0376278186b6e24e8d7a07a560f3efaa2fef1d"
9+
"revision" : "8cc89abc1fff74b387a083eab8ffa91f1b9fdca7"
1010
}
1111
},
1212
{

Package.swift

+32-21
Original file line numberDiff line numberDiff line change
@@ -4,39 +4,63 @@
44
import Foundation
55
import PackageDescription
66

7-
let isXcodeEnv = ProcessInfo.processInfo.environment["__CFBundleIdentifier"] == "com.apple.dt.Xcode"
7+
func envEnable(_ key: String, default defaultValue: Bool = false) -> Bool {
8+
guard let value = Context.environment[key] else {
9+
return defaultValue
10+
}
11+
if value == "1" {
12+
return true
13+
} else if value == "0" {
14+
return false
15+
} else {
16+
return defaultValue
17+
}
18+
}
19+
20+
let isXcodeEnv = Context.environment["__CFBundleIdentifier"] == "com.apple.dt.Xcode"
21+
822
// Xcode use clang as linker which supports "-iframework" while SwiftPM use swiftc as linker which supports "-Fsystem"
923
let systemFrameworkSearchFlag = isXcodeEnv ? "-iframework" : "-Fsystem"
1024

25+
var sharedSwiftSettings: [SwiftSetting] = [
26+
.enableExperimentalFeature("AccessLevelOnImport"),
27+
.define("OPENSWIFTUI_SUPPRESS_DEPRECATED_WARNINGS"),
28+
]
29+
30+
let warningsAsErrorsCondition = envEnable("OPENSWIFTUI_WERROR", default: isXcodeEnv)
31+
if warningsAsErrorsCondition {
32+
sharedSwiftSettings.append(.unsafeFlags(["-warnings-as-errors"]))
33+
}
34+
1135
let openSwiftUITarget = Target.target(
1236
name: "OpenSwiftUI",
1337
dependencies: [
1438
"OpenSwiftUIShims",
1539
.target(name: "CoreServices", condition: .when(platforms: [.iOS])),
1640
.product(name: "OpenGraphShims", package: "OpenGraph"),
1741
],
18-
swiftSettings: [
19-
.enableExperimentalFeature("AccessLevelOnImport"),
20-
.define("OPENSWIFTUI_SUPPRESS_DEPRECATED_WARNINGS"),
21-
]
42+
swiftSettings: sharedSwiftSettings
2243
)
2344
let openSwiftUITestTarget = Target.testTarget(
2445
name: "OpenSwiftUITests",
2546
dependencies: [
2647
"OpenSwiftUI",
2748
],
28-
exclude: ["README.md"]
49+
exclude: ["README.md"],
50+
swiftSettings: sharedSwiftSettings
2951
)
3052
let openSwiftUITempTestTarget = Target.testTarget(
3153
name: "OpenSwiftUITempTests",
3254
dependencies: [
3355
"OpenSwiftUI",
3456
],
35-
exclude: ["README.md"]
57+
exclude: ["README.md"],
58+
swiftSettings: sharedSwiftSettings
3659
)
3760
let openSwiftUICompatibilityTestTarget = Target.testTarget(
3861
name: "OpenSwiftUICompatibilityTests",
39-
exclude: ["README.md"]
62+
exclude: ["README.md"],
63+
swiftSettings: sharedSwiftSettings
4064
)
4165

4266
let package = Package(
@@ -71,19 +95,6 @@ let package = Package(
7195
]
7296
)
7397

74-
func envEnable(_ key: String, default defaultValue: Bool = false) -> Bool {
75-
guard let value = ProcessInfo.processInfo.environment[key] else {
76-
return defaultValue
77-
}
78-
if value == "1" {
79-
return true
80-
} else if value == "0" {
81-
return false
82-
} else {
83-
return defaultValue
84-
}
85-
}
86-
8798
#if os(macOS)
8899
let attributeGraphCondition = envEnable("OPENGRAPH_ATTRIBUTEGRAPH", default: true)
89100
#else

0 commit comments

Comments
 (0)