mirror of
https://github.com/pointfreeco/swift-composable-architecture.git
synced 2025-12-14 20:35:56 +01:00
SPM recommends `Package.swift` point to the latest version, but we're doing the opposite.
98 lines
3.9 KiB
Swift
98 lines
3.9 KiB
Swift
// swift-tools-version:6.0
|
|
|
|
import CompilerPluginSupport
|
|
import PackageDescription
|
|
|
|
let package = Package(
|
|
name: "swift-composable-architecture",
|
|
platforms: [
|
|
.iOS(.v13),
|
|
.macOS(.v10_15),
|
|
.tvOS(.v13),
|
|
.watchOS(.v6),
|
|
],
|
|
products: [
|
|
.library(
|
|
name: "ComposableArchitecture",
|
|
targets: ["ComposableArchitecture"]
|
|
)
|
|
],
|
|
dependencies: [
|
|
.package(url: "https://github.com/apple/swift-collections", from: "1.1.0"),
|
|
.package(url: "https://github.com/pointfreeco/combine-schedulers", from: "1.0.2"),
|
|
.package(url: "https://github.com/pointfreeco/swift-case-paths", from: "1.5.4"),
|
|
.package(url: "https://github.com/pointfreeco/swift-concurrency-extras", from: "1.2.0"),
|
|
.package(url: "https://github.com/pointfreeco/swift-custom-dump", from: "1.3.2"),
|
|
.package(url: "https://github.com/pointfreeco/swift-dependencies", from: "1.4.0"),
|
|
.package(url: "https://github.com/pointfreeco/swift-identified-collections", from: "1.1.0"),
|
|
.package(url: "https://github.com/pointfreeco/swift-macro-testing", from: "0.2.0"),
|
|
.package(url: "https://github.com/pointfreeco/swift-navigation", from: "2.3.2"),
|
|
.package(url: "https://github.com/pointfreeco/swift-perception", "1.3.4"..<"3.0.0"),
|
|
.package(url: "https://github.com/pointfreeco/swift-sharing", "1.0.4"..<"3.0.0"),
|
|
.package(url: "https://github.com/pointfreeco/xctest-dynamic-overlay", from: "1.3.0"),
|
|
.package(url: "https://github.com/swiftlang/swift-docc-plugin", from: "1.0.0"),
|
|
.package(url: "https://github.com/swiftlang/swift-syntax", "509.0.0"..<"603.0.0"),
|
|
],
|
|
targets: [
|
|
.target(
|
|
name: "ComposableArchitecture",
|
|
dependencies: [
|
|
"ComposableArchitectureMacros",
|
|
.product(name: "CasePaths", package: "swift-case-paths"),
|
|
.product(name: "CombineSchedulers", package: "combine-schedulers"),
|
|
.product(name: "ConcurrencyExtras", package: "swift-concurrency-extras"),
|
|
.product(name: "CustomDump", package: "swift-custom-dump"),
|
|
.product(name: "Dependencies", package: "swift-dependencies"),
|
|
.product(name: "DependenciesMacros", package: "swift-dependencies"),
|
|
.product(name: "IdentifiedCollections", package: "swift-identified-collections"),
|
|
.product(name: "IssueReporting", package: "xctest-dynamic-overlay"),
|
|
.product(name: "OrderedCollections", package: "swift-collections"),
|
|
.product(name: "Perception", package: "swift-perception"),
|
|
.product(name: "Sharing", package: "swift-sharing"),
|
|
.product(name: "SwiftUINavigation", package: "swift-navigation"),
|
|
.product(name: "UIKitNavigation", package: "swift-navigation"),
|
|
],
|
|
resources: [
|
|
.process("Resources/PrivacyInfo.xcprivacy")
|
|
]
|
|
),
|
|
.testTarget(
|
|
name: "ComposableArchitectureTests",
|
|
dependencies: [
|
|
"ComposableArchitecture",
|
|
.product(name: "IssueReportingTestSupport", package: "xctest-dynamic-overlay"),
|
|
]
|
|
),
|
|
.macro(
|
|
name: "ComposableArchitectureMacros",
|
|
dependencies: [
|
|
.product(name: "SwiftSyntaxMacros", package: "swift-syntax"),
|
|
.product(name: "SwiftCompilerPlugin", package: "swift-syntax"),
|
|
]
|
|
),
|
|
.testTarget(
|
|
name: "ComposableArchitectureMacrosTests",
|
|
dependencies: [
|
|
"ComposableArchitectureMacros",
|
|
.product(name: "MacroTesting", package: "swift-macro-testing"),
|
|
]
|
|
),
|
|
],
|
|
swiftLanguageModes: [.v6]
|
|
)
|
|
|
|
for target in package.targets {
|
|
target.swiftSettings = target.swiftSettings ?? []
|
|
target.swiftSettings?.append(contentsOf: [
|
|
.enableUpcomingFeature("ExistentialAny")
|
|
])
|
|
}
|
|
|
|
for target in package.targets where target.type == .system || target.type == .test {
|
|
target.swiftSettings?.append(contentsOf: [
|
|
.swiftLanguageMode(.v5),
|
|
.enableExperimentalFeature("StrictConcurrency"),
|
|
.enableUpcomingFeature("InferSendableFromCaptures"),
|
|
])
|
|
}
|