130 lines
4.7 KiB
Swift
130 lines
4.7 KiB
Swift
// swift-tools-version:6.0
|
|
import PackageDescription
|
|
|
|
let package = Package(
|
|
name: "swift-hvac-toolbox",
|
|
platforms: [
|
|
.macOS(.v14)
|
|
],
|
|
products: [
|
|
.executable(name: "App", targets: ["App"]),
|
|
.library(name: "ApiController", targets: ["ApiController"]),
|
|
.library(name: "CoreModels", targets: ["CoreModels"]),
|
|
.library(name: "LocationClient", targets: ["LocationClient"]),
|
|
.library(name: "Routes", targets: ["Routes"]),
|
|
.library(name: "Styleguide", targets: ["Styleguide"]),
|
|
.library(name: "ViewController", targets: ["ViewController"])
|
|
],
|
|
dependencies: [
|
|
// 💧 A server-side Swift web framework.
|
|
.package(url: "https://github.com/vapor/vapor.git", from: "4.110.1"),
|
|
// 🔵 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"),
|
|
.package(url: "https://github.com/pointfreeco/swift-url-routing.git", from: "0.6.2"),
|
|
.package(url: "https://github.com/pointfreeco/vapor-routing.git", from: "0.1.3"),
|
|
.package(url: "https://github.com/pointfreeco/swift-snapshot-testing.git", from: "1.17.7"),
|
|
.package(url: "https://github.com/pointfreeco/swift-case-paths.git", from: "1.6.0"),
|
|
.package(url: "https://github.com/swift-psychrometrics/swift-psychrometrics.git", from: "0.3.0")
|
|
],
|
|
targets: [
|
|
.executableTarget(
|
|
name: "App",
|
|
dependencies: [
|
|
"ApiController",
|
|
"ViewController",
|
|
.product(name: "Vapor", package: "vapor"),
|
|
.product(name: "NIOCore", package: "swift-nio"),
|
|
.product(name: "NIOPosix", package: "swift-nio"),
|
|
.product(name: "VaporRouting", package: "vapor-routing"),
|
|
.product(name: "VaporElementary", package: "vapor-elementary"),
|
|
.product(name: "PsychrometricClientLive", package: "swift-psychrometrics")
|
|
],
|
|
swiftSettings: swiftSettings
|
|
),
|
|
.testTarget(
|
|
name: "AppTests",
|
|
dependencies: [
|
|
.target(name: "App"),
|
|
.product(name: "VaporTesting", package: "vapor")
|
|
],
|
|
swiftSettings: swiftSettings
|
|
),
|
|
.target(
|
|
name: "ApiController",
|
|
dependencies: [
|
|
"Routes",
|
|
.product(name: "DependenciesMacros", package: "swift-dependencies")
|
|
],
|
|
swiftSettings: swiftSettings
|
|
),
|
|
.target(
|
|
name: "CoreModels",
|
|
dependencies: [],
|
|
swiftSettings: swiftSettings
|
|
),
|
|
.target(
|
|
name: "HTMLSnapshotTesting",
|
|
dependencies: [
|
|
.product(name: "Elementary", package: "elementary"),
|
|
.product(name: "SnapshotTesting", package: "swift-snapshot-testing")
|
|
],
|
|
swiftSettings: swiftSettings
|
|
),
|
|
.target(
|
|
name: "LocationClient",
|
|
dependencies: [
|
|
"CoreModels",
|
|
.product(name: "Dependencies", package: "swift-dependencies"),
|
|
.product(name: "DependenciesMacros", package: "swift-dependencies")
|
|
],
|
|
swiftSettings: swiftSettings
|
|
),
|
|
.target(
|
|
name: "Routes",
|
|
dependencies: [
|
|
"CoreModels",
|
|
.product(name: "CasePaths", package: "swift-case-paths"),
|
|
.product(name: "Dependencies", package: "swift-dependencies"),
|
|
.product(name: "Elementary", package: "elementary"),
|
|
.product(name: "ElementaryHTMX", package: "elementary-htmx"),
|
|
.product(name: "PsychrometricClient", package: "swift-psychrometrics"),
|
|
.product(name: "URLRouting", package: "swift-url-routing")
|
|
],
|
|
swiftSettings: swiftSettings
|
|
),
|
|
.target(
|
|
name: "Styleguide",
|
|
dependencies: [
|
|
"Routes"
|
|
],
|
|
swiftSettings: swiftSettings
|
|
),
|
|
.target(
|
|
name: "ViewController",
|
|
dependencies: [
|
|
"ApiController",
|
|
"Routes",
|
|
"Styleguide",
|
|
.product(name: "DependenciesMacros", package: "swift-dependencies"),
|
|
.product(name: "Elementary", package: "elementary"),
|
|
.product(name: "ElementaryHTMX", package: "elementary-htmx")
|
|
],
|
|
swiftSettings: swiftSettings
|
|
)
|
|
],
|
|
swiftLanguageModes: [.v5]
|
|
)
|
|
|
|
var swiftSettings: [SwiftSetting] { [
|
|
.enableUpcomingFeature("DisableOutwardActorInference"),
|
|
.enableExperimentalFeature("StrictConcurrency=complete"),
|
|
.enableUpcomingFeature("ExistentialAny"),
|
|
.enableUpcomingFeature("ConciseMagicFile"),
|
|
.enableUpcomingFeature("ForwardTrailingClosures"),
|
|
.enableUpcomingFeature("InferSendableFromCaptures")
|
|
] }
|