// swift-tools-version: 6.2
import PackageDescription

let package = Package(
    name: "SiliconPulse",
    defaultLocalization: "en",
    platforms: [
        .macOS(.v14),
    ],
    products: [
        .library(name: "SiliconPulseCore", targets: ["SiliconPulseCore"]),
        .executable(name: "SiliconPulse", targets: ["SiliconPulseApp"]),
        .executable(name: "SiliconPulseCLI", targets: ["SiliconPulseCLI"]),
    ],
    targets: [
        .target(
            name: "SiliconPulseCore",
            dependencies: ["SiliconPulseSMC"],
            swiftSettings: [
                .enableUpcomingFeature("StrictConcurrency"),
            ],
            linkerSettings: [
                .linkedFramework("IOKit"),
            ]),
        .target(
            name: "SiliconPulseSMC",
            path: "Sources/SiliconPulseSMC",
            publicHeadersPath: "include",
            linkerSettings: [
                .linkedFramework("IOKit"),
            ]),
        .executableTarget(
            name: "SiliconPulseApp",
            dependencies: ["SiliconPulseCore"],
            path: "Sources/SiliconPulseApp",
            swiftSettings: [
                .enableUpcomingFeature("StrictConcurrency"),
            ]),
        .executableTarget(
            name: "SiliconPulseCLI",
            dependencies: ["SiliconPulseCore"],
            path: "Sources/SiliconPulseCLI",
            swiftSettings: [
                .enableUpcomingFeature("StrictConcurrency"),
            ]),
        .testTarget(
            name: "SiliconPulseCoreTests",
            dependencies: ["SiliconPulseCore", "SiliconPulseApp"],
            path: "Tests/SiliconPulseCoreTests",
            swiftSettings: [
                .enableUpcomingFeature("StrictConcurrency"),
            ]),
    ])
