Skip to content

Commit 68316a1

Browse files
committed
Tidy up build flags and fix implicit import circular dependency (swiftlang#392)
- Explicitly ask the compiler not to implicitly import _StringProessing. This is to avoid a circular dependency when `-enable-experimental-string-processing` is enabled by default. - Unify the build flags for modules that are built in the compiler repo into a `stdlibSettings` value. - Disable implicit _Concurrency import as well since it is how it's built in the compiler repo. This helps us catch errors before we integrate with the compiler repo. - Remove `-enable-experimental-pairwise-build-block` since SE-0348 has been implemented and enabled. - Update the minimum toolchain requirement to 2022-04-20.
1 parent b583909 commit 68316a1

File tree

2 files changed

+24
-17
lines changed

2 files changed

+24
-17
lines changed

Package.swift

Lines changed: 23 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,20 @@
33

44
import PackageDescription
55

6+
let availabilityDefinition = PackageDescription.SwiftSetting.unsafeFlags([
7+
"-Xfrontend",
8+
"-define-availability",
9+
"-Xfrontend",
10+
#"SwiftStdlib 5.7:macOS 9999, iOS 9999, watchOS 9999, tvOS 9999"#,
11+
])
12+
13+
let stdlibSettings: [PackageDescription.SwiftSetting] = [
14+
.unsafeFlags(["-enable-library-evolution"]),
15+
.unsafeFlags(["-Xfrontend", "-disable-implicit-concurrency-module-import"]),
16+
.unsafeFlags(["-Xfrontend", "-disable-implicit-string-processing-module-import"]),
17+
availabilityDefinition
18+
]
19+
620
let package = Package(
721
name: "swift-experimental-string-processing",
822
products: [
@@ -29,9 +43,7 @@ let package = Package(
2943
.target(
3044
name: "_RegexParser",
3145
dependencies: [],
32-
swiftSettings: [
33-
.unsafeFlags(["-enable-library-evolution"])
34-
]),
46+
swiftSettings: stdlibSettings),
3547
.testTarget(
3648
name: "MatchingEngineTests",
3749
dependencies: [
@@ -42,24 +54,19 @@ let package = Package(
4254
.target(
4355
name: "_StringProcessing",
4456
dependencies: ["_RegexParser", "_CUnicode"],
45-
swiftSettings: [
46-
.unsafeFlags(["-enable-library-evolution"]),
47-
]),
57+
swiftSettings: stdlibSettings),
4858
.target(
4959
name: "RegexBuilder",
5060
dependencies: ["_StringProcessing", "_RegexParser"],
51-
swiftSettings: [
52-
.unsafeFlags(["-enable-library-evolution"]),
53-
.unsafeFlags(["-Xfrontend", "-enable-experimental-pairwise-build-block"])
54-
]),
61+
swiftSettings: stdlibSettings),
5562
.testTarget(
5663
name: "RegexTests",
5764
dependencies: ["_StringProcessing"]),
5865
.testTarget(
5966
name: "RegexBuilderTests",
6067
dependencies: ["_StringProcessing", "RegexBuilder"],
6168
swiftSettings: [
62-
.unsafeFlags(["-Xfrontend", "-enable-experimental-pairwise-build-block"])
69+
.unsafeFlags(["-Xfrontend", "-disable-availability-checking"])
6370
]),
6471
.target(
6572
name: "Prototypes",
@@ -81,11 +88,11 @@ let package = Package(
8188

8289
// MARK: Exercises
8390
.target(
84-
name: "Exercises",
85-
dependencies: ["_RegexParser", "Prototypes", "_StringProcessing", "RegexBuilder"],
86-
swiftSettings: [
87-
.unsafeFlags(["-Xfrontend", "-enable-experimental-pairwise-build-block"])
88-
]),
91+
name: "Exercises",
92+
dependencies: ["_RegexParser", "_StringProcessing", "RegexBuilder"],
93+
swiftSettings: [
94+
.unsafeFlags(["-Xfrontend", "-disable-availability-checking"])
95+
]),
8996
.testTarget(
9097
name: "ExercisesTests",
9198
dependencies: ["Exercises"]),

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ See [Declarative String Processing Overview][decl-string]
88

99
## Requirements
1010

11-
- [Swift Trunk Development Snapshot](https://www.swift.org/download/#snapshots) DEVELOPMENT-SNAPSHOT-2022-03-09 or later.
11+
- [Swift Trunk Development Snapshot](https://www.swift.org/download/#snapshots) DEVELOPMENT-SNAPSHOT-2022-04-20 or later.
1212

1313
## Integration with Swift
1414

0 commit comments

Comments
 (0)