100 lines
3.5 KiB
Swift
100 lines
3.5 KiB
Swift
// swift-tools-version:6.0
|
|
import PackageDescription
|
|
|
|
let package = Package(
|
|
name: "hhe-po",
|
|
platforms: [
|
|
.macOS(.v14)
|
|
],
|
|
products: [
|
|
.executable(name: "App", targets: ["App"]),
|
|
.library(name: "SharedModels", targets: ["SharedModels"]),
|
|
.library(name: "DatabaseClient", targets: ["DatabaseClient"]),
|
|
.library(name: "DatabaseClientLive", targets: ["DatabaseClientLive"])
|
|
],
|
|
dependencies: [
|
|
// 💧 A server-side Swift web framework.
|
|
.package(url: "https://github.com/vapor/vapor.git", from: "4.110.1"),
|
|
// 🗄 An ORM for SQL and NoSQL databases.
|
|
.package(url: "https://github.com/vapor/fluent.git", from: "4.9.0"),
|
|
// 🪶 Fluent driver for SQLite.
|
|
.package(url: "https://github.com/vapor/fluent-sqlite-driver.git", from: "4.6.0"),
|
|
// 🔵 Non-blocking, event-driven networking for Swift. Used for, custom executors
|
|
.package(url: "https://github.com/apple/swift-nio.git", from: "2.65.0"),
|
|
.package(url: "https://github.com/pointfreeco/swift-dependencies.git", from: "1.6.3"),
|
|
.package(url: "https://github.com/sliemeobn/elementary.git", from: "0.3.2"),
|
|
.package(url: "https://github.com/sliemeobn/elementary-htmx.git", from: "0.4.0"),
|
|
.package(url: "https://github.com/vapor-community/vapor-elementary.git", from: "0.1.0")
|
|
],
|
|
targets: [
|
|
.executableTarget(
|
|
name: "App",
|
|
dependencies: [
|
|
"DatabaseClientLive",
|
|
.product(name: "Fluent", package: "fluent"),
|
|
.product(name: "FluentSQLiteDriver", package: "fluent-sqlite-driver"),
|
|
.product(name: "Vapor", package: "vapor"),
|
|
.product(name: "NIOCore", package: "swift-nio"),
|
|
.product(name: "NIOPosix", package: "swift-nio"),
|
|
.product(name: "Dependencies", package: "swift-dependencies"),
|
|
.product(name: "DependenciesMacros", package: "swift-dependencies"),
|
|
.product(name: "Elementary", package: "elementary"),
|
|
.product(name: "VaporElementary", package: "vapor-elementary"),
|
|
.product(name: "ElementaryHTMX", package: "elementary-htmx")
|
|
|
|
],
|
|
swiftSettings: swiftSettings
|
|
),
|
|
.testTarget(
|
|
name: "AppTests",
|
|
dependencies: [
|
|
.target(name: "App"),
|
|
.product(name: "VaporTesting", package: "vapor")
|
|
],
|
|
swiftSettings: swiftSettings
|
|
),
|
|
.target(
|
|
name: "DatabaseClient",
|
|
dependencies: [
|
|
"SharedModels",
|
|
.product(name: "Dependencies", package: "swift-dependencies"),
|
|
.product(name: "DependenciesMacros", package: "swift-dependencies"),
|
|
.product(name: "Fluent", package: "fluent"),
|
|
.product(name: "Vapor", package: "vapor")
|
|
],
|
|
swiftSettings: swiftSettings
|
|
),
|
|
.target(
|
|
name: "DatabaseClientLive",
|
|
dependencies: [
|
|
"DatabaseClient",
|
|
.product(name: "Vapor", package: "vapor")
|
|
],
|
|
swiftSettings: swiftSettings
|
|
),
|
|
.testTarget(
|
|
name: "DatabaseClientTests",
|
|
dependencies: [
|
|
"DatabaseClientLive",
|
|
.product(name: "FluentSQLiteDriver", package: "fluent-sqlite-driver")
|
|
]
|
|
),
|
|
.target(
|
|
name: "SharedModels",
|
|
dependencies: [
|
|
.product(name: "Dependencies", package: "swift-dependencies")
|
|
],
|
|
swiftSettings: swiftSettings
|
|
)
|
|
],
|
|
swiftLanguageModes: [.v5]
|
|
)
|
|
|
|
var swiftSettings: [SwiftSetting] { [
|
|
.enableUpcomingFeature("DisableOutwardActorInference"),
|
|
.enableExperimentalFeature("StrictConcurrency=complete"),
|
|
.enableUpcomingFeature("ExistentialAny"),
|
|
.enableUpcomingFeature("ConciseMagicFile"),
|
|
.enableUpcomingFeature("ForwardTrailinClosures")
|
|
] }
|