50 lines
2.8 KiB
Swift
50 lines
2.8 KiB
Swift
// swift-tools-version: 6.0
|
|
import PackageDescription
|
|
|
|
let package = Package(
|
|
name: "XStatsKit",
|
|
defaultLocalization: "zh-Hans",
|
|
platforms: [.macOS(.v14)],
|
|
products: [
|
|
.library(name: "Localization", targets: ["Localization"]),
|
|
.library(name: "AIUsage", targets: ["AIUsage"]),
|
|
.library(name: "SMC", targets: ["SMC"]),
|
|
.library(name: "Metrics", targets: ["Metrics"]),
|
|
.library(name: "HelperShared", targets: ["HelperShared"]),
|
|
.library(name: "Cleaner", targets: ["Cleaner"]),
|
|
.library(name: "Updates", targets: ["Updates"]),
|
|
.library(name: "WebDAVSync", targets: ["WebDAVSync"]),
|
|
.library(name: "WidgetData", targets: ["WidgetData"]),
|
|
.library(name: "XStatsUI", targets: ["XStatsUI"]),
|
|
],
|
|
dependencies: [
|
|
.package(url: "https://github.com/6tail/tyme4swift.git", exact: "1.5.0"),
|
|
.package(url: "https://github.com/sparkle-project/Sparkle.git", exact: "2.10.0"),
|
|
],
|
|
targets: [
|
|
.target(name: "Localization", resources: [.process("Resources")]),
|
|
.target(name: "AIUsage"),
|
|
.target(name: "SMC", dependencies: ["Localization"]),
|
|
.target(name: "Metrics", dependencies: ["SMC", "Localization"], linkerSettings: [.linkedLibrary("IOReport")]),
|
|
.target(name: "HelperShared", dependencies: ["Localization"]),
|
|
.target(name: "Cleaner", dependencies: ["Localization"]),
|
|
.target(name: "Updates", dependencies: ["Localization"]),
|
|
.target(name: "WebDAVSync", dependencies: ["Localization"]),
|
|
.target(name: "WidgetData"),
|
|
.target(name: "XStatsUI", dependencies: ["AIUsage", "Localization", "Metrics", "SMC", "HelperShared", "Cleaner", "Updates", "WebDAVSync", "WidgetData",
|
|
.product(name: "Tyme4Swift", package: "tyme4swift"),
|
|
.product(name: "Sparkle", package: "Sparkle")],
|
|
resources: [.copy("Resources/Flags"), .copy("Resources/Logos"), .copy("Resources/Legal")]),
|
|
.testTarget(name: "MetricsTests", dependencies: ["Metrics", "SMC"]),
|
|
.testTarget(name: "CleanerTests", dependencies: ["Cleaner"]),
|
|
.testTarget(name: "HelperSharedTests", dependencies: ["HelperShared"]),
|
|
.testTarget(name: "UpdatesTests", dependencies: ["Updates"]),
|
|
.testTarget(name: "WebDAVSyncTests", dependencies: ["WebDAVSync"]),
|
|
.testTarget(name: "XStatsUITests", dependencies: ["XStatsUI", "Metrics", "WebDAVSync", "Localization", "Updates"]),
|
|
.testTarget(name: "LocalizationTests", dependencies: ["Localization"]),
|
|
.testTarget(name: "AIUsageTests", dependencies: ["AIUsage"]),
|
|
.testTarget(name: "WidgetDataTests", dependencies: ["WidgetData"]),
|
|
],
|
|
swiftLanguageModes: [.v6]
|
|
)
|