Files
MagnumOpus/Packages/MagnumOpusCore/Package.swift
2026-03-13 18:05:02 +01:00

56 lines
1.6 KiB
Swift

// swift-tools-version: 6.0
import PackageDescription
let package = Package(
name: "MagnumOpusCore",
// macOS 15+ / iOS 18+ required for Swift 6 strict concurrency + latest SwiftUI APIs
platforms: [
.macOS(.v15),
.iOS(.v18),
],
products: [
.library(name: "Models", targets: ["Models"]),
.library(name: "MailStore", targets: ["MailStore"]),
.library(name: "IMAPClient", targets: ["IMAPClient"]),
.library(name: "SyncEngine", targets: ["SyncEngine"]),
],
dependencies: [
.package(url: "https://github.com/apple/swift-nio-imap.git", from: "0.1.0"),
.package(url: "https://github.com/apple/swift-nio-ssl.git", from: "2.27.0"),
.package(url: "https://github.com/groue/GRDB.swift.git", from: "7.0.0"),
],
targets: [
.target(name: "Models"),
.target(
name: "MailStore",
dependencies: [
"Models",
.product(name: "GRDB", package: "GRDB.swift"),
]
),
.target(
name: "IMAPClient",
dependencies: [
"Models",
.product(name: "NIOIMAPCore", package: "swift-nio-imap"),
.product(name: "NIOIMAP", package: "swift-nio-imap"),
.product(name: "NIOSSL", package: "swift-nio-ssl"),
]
),
.target(
name: "SyncEngine",
dependencies: ["Models", "IMAPClient", "MailStore"]
),
.testTarget(name: "ModelsTests", dependencies: ["Models"]),
.testTarget(name: "MailStoreTests", dependencies: ["MailStore"]),
.testTarget(
name: "IMAPClientTests",
dependencies: [
"IMAPClient",
.product(name: "NIOIMAPCore", package: "swift-nio-imap"),
]
),
.testTarget(name: "SyncEngineTests", dependencies: ["SyncEngine", "IMAPClient", "MailStore"]),
]
)