Files
swift-hvac-toolbox/Package.swift

91 lines
3.4 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: "Routes", targets: ["Routes"]),
.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.2.4")
],
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: "Routes",
dependencies: [
.product(name: "CasePaths", package: "swift-case-paths"),
.product(name: "Dependencies", package: "swift-dependencies"),
.product(name: "PsychrometricClient", package: "swift-psychrometrics"),
.product(name: "URLRouting", package: "swift-url-routing")
],
swiftSettings: swiftSettings
),
.target(
name: "ViewController",
dependencies: [
"Routes",
.product(name: "DependenciesMacros", package: "swift-dependencies"),
.product(name: "Elementary", package: "elementary")
],
swiftSettings: swiftSettings
)
],
swiftLanguageModes: [.v5]
)
var swiftSettings: [SwiftSetting] { [
.enableUpcomingFeature("DisableOutwardActorInference"),
.enableExperimentalFeature("StrictConcurrency=complete"),
.enableUpcomingFeature("ExistentialAny"),
.enableUpcomingFeature("ConciseMagicFile"),
.enableUpcomingFeature("ForwardTrailingClosures")
] }