// swift-tools-version: 6.2 import PackageDescription let package = Package( name: "OnyxKit", // Quellsprache ist Englisch, damit die Schlüssel im Code lesbar bleiben. // Deutsch kommt als Übersetzung dazu; die Systemsprache entscheidet. defaultLocalization: "en", platforms: [.macOS(.v26)], products: [ .library(name: "OnyxCore", targets: ["OnyxCore"]), .library(name: "OnyxHelperProtocol", targets: ["OnyxHelperProtocol"]), .library(name: "OnyxDesign", targets: ["OnyxDesign"]), .library(name: "OnyxNotch", targets: ["OnyxNotch"]), .library(name: "OnyxWidgetKit", targets: ["OnyxWidgetKit"]), .library(name: "OnyxMenuBar", targets: ["OnyxMenuBar"]), .library(name: "CalendarProvider", targets: ["CalendarProvider"]), .library(name: "WeatherProvider", targets: ["WeatherProvider"]), .library(name: "MediaProvider", targets: ["MediaProvider"]), .library(name: "MetricsProvider", targets: ["MetricsProvider"]), .library(name: "NetworkProvider", targets: ["NetworkProvider"]), .library(name: "AudioProvider", targets: ["AudioProvider"]), .library(name: "ShelfProvider", targets: ["ShelfProvider"]), ], targets: [ // Der String-Katalog muss ausdrücklich als Ressource stehen — sonst gibt // es kein `Bundle.module`, und die Übersetzungen wären zur Laufzeit // unauffindbar. .target(name: "OnyxCore", resources: [.process("Localizable.xcstrings")]), .testTarget(name: "OnyxCoreTests", dependencies: ["OnyxCore"]), // Geteilt zwischen App und privilegiertem Helfer — deshalb ohne jede // Abhängigkeit: der Helfer läuft als root und soll so wenig Code wie // möglich enthalten. .target(name: "OnyxHelperProtocol"), .testTarget(name: "OnyxHelperProtocolTests", dependencies: ["OnyxHelperProtocol"]), .target(name: "OnyxDesign"), .target(name: "OnyxNotch", dependencies: ["OnyxDesign"]), .testTarget(name: "OnyxNotchTests", dependencies: ["OnyxNotch"]), .target(name: "OnyxWidgetKit", dependencies: ["OnyxDesign"]), .testTarget(name: "OnyxWidgetKitTests", dependencies: ["OnyxWidgetKit"]), .target(name: "OnyxMenuBar", dependencies: ["OnyxDesign", "OnyxWidgetKit"]), .testTarget(name: "OnyxMenuBarTests", dependencies: ["OnyxMenuBar"]), .target(name: "CalendarProvider", dependencies: ["OnyxDesign", "OnyxWidgetKit"], resources: [.process("Localizable.xcstrings")]), .testTarget(name: "CalendarProviderTests", dependencies: ["CalendarProvider"]), .target(name: "WeatherProvider", dependencies: ["OnyxDesign", "OnyxWidgetKit"], resources: [.process("Localizable.xcstrings")]), .testTarget(name: "WeatherProviderTests", dependencies: ["WeatherProvider"]), .target(name: "MediaProvider", dependencies: ["OnyxDesign", "OnyxWidgetKit"], resources: [.process("Localizable.xcstrings")]), .testTarget(name: "MediaProviderTests", dependencies: ["MediaProvider"]), .target(name: "MetricsProvider", dependencies: ["OnyxDesign", "OnyxWidgetKit", "OnyxMenuBar"], resources: [.process("Localizable.xcstrings")]), .testTarget(name: "MetricsProviderTests", dependencies: ["MetricsProvider"]), .target(name: "NetworkProvider", dependencies: ["OnyxDesign", "OnyxWidgetKit", "OnyxMenuBar", "MetricsProvider"], resources: [.process("Localizable.xcstrings")]), .testTarget(name: "NetworkProviderTests", dependencies: ["NetworkProvider"]), .target(name: "AudioProvider", dependencies: ["OnyxDesign", "OnyxWidgetKit"], resources: [.process("Localizable.xcstrings")]), .testTarget(name: "AudioProviderTests", dependencies: ["AudioProvider"]), .target(name: "ShelfProvider", dependencies: ["OnyxDesign", "OnyxWidgetKit"], resources: [.process("Localizable.xcstrings")]), .testTarget(name: "ShelfProviderTests", dependencies: ["ShelfProvider"]), ] )