// swift-tools-version:5.6
import PackageDescription

let package = Package(
    name: "SchafkopfServer",
    platforms: [
       .macOS(.v12)
    ],
    dependencies: [
        .package(url: "https://github.com/vapor/vapor.git", from: "4.0.0"),
        .package(url: "https://github.com/vapor/fluent.git", from: "4.0.0"),
        .package(url: "https://github.com/vapor/fluent-sqlite.git", from: "4.0.0"),
        // Alternatives:
        // https://github.com/onevcat/Hedwig <- No updates since Jun 2017
        // https://github.com/Joannis/SMTPKitten <- No updates since 0ct 2020
        // https://github.com/Joannis/VaporSMTPKit <- No updates since 0ct. 2020, uses SMTPKitten
        .package(url: "https://github.com/Kitura/Swift-SMTP", from: "6.0.0"),
        .package(url: "https://github.com/christophhagen/Clairvoyant", from: "0.9.0"),
        .package(url: "https://github.com/christophhagen/ClairvoyantVapor", from: "0.2.0"),
        .package(url: "https://github.com/christophhagen/ClairvoyantBinaryCodable", from: "0.3.1"),
    ],
    targets: [
        .target(
            name: "App",
            dependencies: [
                .product(name: "Fluent", package: "fluent"),
                .product(name: "FluentSQLiteDriver", package: "fluent-sqlite"),
                .product(name: "Vapor", package: "vapor"),
                .product(name: "SwiftSMTP", package: "Swift-SMTP"),
                .product(name: "Clairvoyant", package: "Clairvoyant"),
                .product(name: "ClairvoyantVapor", package: "ClairvoyantVapor"),
                .product(name: "ClairvoyantBinaryCodable", package: "ClairvoyantBinaryCodable"),
            ],
            swiftSettings: [
                // Enable better optimizations when building in Release configuration. Despite the use of
                // the `.unsafeFlags` construct required by SwiftPM, this flag is recommended for Release
                // builds. See <https://github.com/swift-server/guides/blob/main/docs/building.md#building-for-production> for details.
                .unsafeFlags(["-cross-module-optimization"], .when(configuration: .release))
            ]
        ),
        .executableTarget(name: "Run", dependencies: [.target(name: "App")]),
//        .testTarget(name: "AppTests", dependencies: [
//            .target(name: "App"),
//            .product(name: "XCTVapor", package: "vapor"),
//        ])
    ]
)
