Enabling strict-concurrency across entire package?

let package = Package(
  // ...
)

for target in package.targets {
  var swiftSettings = target.swiftSettings ?? []
  defer { target.swiftSettings = swiftSettings }

  swiftSettings.append(.enableUpcomingFeature("StrictConcurrency"))

  // And it easily composes with other global things:

  swiftSettings.append(
    .define(
      "APPLE_PLATFORM",
      .when(platforms: [.macOS, .tvOS, .iOS, .watchOS])
    )
  )

  #if os(Windows)
    target.plugins = nil
    swiftSettings.append(
      .define("PLUGINS_UNAVAILABLE")
    )
  #endif
}
2 Likes