// swift-tools-version: 6.0 // // Package.swift // Metrika // // Author: Simon-Pierre Boucher // Contact: contact@spboucher.ai // Copyright © 2026 Simon-Pierre Boucher. All rights reserved. // import PackageDescription let strictConcurrency: [SwiftSetting] = [ .swiftLanguageMode(.v6) ] let package = Package( name: "MetrikaKit", platforms: [.macOS(.v14)], products: [ .library( name: "MetrikaKit", targets: [ "ZQParser", "ZQPlanner", "ZQEngine", "ZQData", "ZQStats", "ZQGPU", "ZQGraphics", "ZQPlugins", ] ), .executable(name: "metrika-cli", targets: ["MetrikaCLI"]), ], dependencies: [ .package(url: "https://github.com/duckdb/duckdb-swift", from: "1.0.0"), .package(url: "https://github.com/apple/swift-collections", from: "1.1.0"), .package(url: "https://github.com/apple/swift-argument-parser", from: "1.3.0"), .package(url: "https://github.com/ml-explore/mlx-swift", from: "0.18.0"), ], targets: [ .target( name: "ZQParser", swiftSettings: strictConcurrency ), .target( name: "ZQData", dependencies: [ .product(name: "DuckDB", package: "duckdb-swift"), .product(name: "Collections", package: "swift-collections"), ], swiftSettings: strictConcurrency ), .target( name: "ZQStats", dependencies: ["ZQData", "ZQGPU"], swiftSettings: strictConcurrency ), .target( name: "ZQGPU", dependencies: [ "ZQData", .product(name: "MLX", package: "mlx-swift"), ], swiftSettings: strictConcurrency ), .target( name: "ZQPlanner", dependencies: ["ZQParser", "ZQData"], swiftSettings: strictConcurrency ), .target( name: "ZQGraphics", dependencies: ["ZQData"], swiftSettings: strictConcurrency ), .target( name: "ZQPlugins", dependencies: ["ZQParser", "ZQData"], swiftSettings: strictConcurrency ), .target( name: "ZQEngine", dependencies: [ "ZQParser", "ZQPlanner", "ZQData", "ZQStats", "ZQGPU", "ZQGraphics", "ZQPlugins", ], resources: [.copy("Resources/Samples")], swiftSettings: strictConcurrency ), .executableTarget( name: "MetrikaCLI", dependencies: [ "ZQEngine", .product(name: "ArgumentParser", package: "swift-argument-parser"), ], swiftSettings: strictConcurrency ), .testTarget( name: "MetrikaKitTests", dependencies: ["ZQParser", "ZQPlanner", "ZQEngine", "ZQData", "ZQStats", "ZQGPU"], resources: [.copy("Fixtures")], swiftSettings: strictConcurrency ), ] )