| |
| |
|
|
| import PackageDescription |
|
|
| let package = Package( |
| name: "OpenClaw", |
| platforms: [ |
| .macOS(.v15), |
| ], |
| products: [ |
| .library(name: "OpenClawIPC", targets: ["OpenClawIPC"]), |
| .library(name: "OpenClawDiscovery", targets: ["OpenClawDiscovery"]), |
| .executable(name: "OpenClaw", targets: ["OpenClaw"]), |
| .executable(name: "openclaw-mac", targets: ["OpenClawMacCLI"]), |
| ], |
| dependencies: [ |
| .package(url: "https://github.com/orchetect/MenuBarExtraAccess", exact: "1.2.2"), |
| .package(url: "https://github.com/swiftlang/swift-subprocess.git", from: "0.1.0"), |
| .package(url: "https://github.com/apple/swift-log.git", from: "1.8.0"), |
| .package(url: "https://github.com/sparkle-project/Sparkle", from: "2.8.1"), |
| .package(url: "https://github.com/steipete/Peekaboo.git", branch: "main"), |
| .package(path: "../shared/OpenClawKit"), |
| .package(path: "../../Swabble"), |
| ], |
| targets: [ |
| .target( |
| name: "OpenClawIPC", |
| dependencies: [], |
| swiftSettings: [ |
| .enableUpcomingFeature("StrictConcurrency"), |
| ]), |
| .target( |
| name: "OpenClawDiscovery", |
| dependencies: [ |
| .product(name: "OpenClawKit", package: "OpenClawKit"), |
| ], |
| path: "Sources/OpenClawDiscovery", |
| swiftSettings: [ |
| .enableUpcomingFeature("StrictConcurrency"), |
| ]), |
| .executableTarget( |
| name: "OpenClaw", |
| dependencies: [ |
| "OpenClawIPC", |
| "OpenClawDiscovery", |
| .product(name: "OpenClawKit", package: "OpenClawKit"), |
| .product(name: "OpenClawChatUI", package: "OpenClawKit"), |
| .product(name: "OpenClawProtocol", package: "OpenClawKit"), |
| .product(name: "SwabbleKit", package: "swabble"), |
| .product(name: "MenuBarExtraAccess", package: "MenuBarExtraAccess"), |
| .product(name: "Subprocess", package: "swift-subprocess"), |
| .product(name: "Logging", package: "swift-log"), |
| .product(name: "Sparkle", package: "Sparkle"), |
| .product(name: "PeekabooBridge", package: "Peekaboo"), |
| .product(name: "PeekabooAutomationKit", package: "Peekaboo"), |
| ], |
| exclude: [ |
| "Resources/Info.plist", |
| ], |
| resources: [ |
| .copy("Resources/OpenClaw.icns"), |
| .copy("Resources/DeviceModels"), |
| ], |
| swiftSettings: [ |
| .enableUpcomingFeature("StrictConcurrency"), |
| ]), |
| .executableTarget( |
| name: "OpenClawMacCLI", |
| dependencies: [ |
| "OpenClawDiscovery", |
| .product(name: "OpenClawKit", package: "OpenClawKit"), |
| .product(name: "OpenClawProtocol", package: "OpenClawKit"), |
| ], |
| path: "Sources/OpenClawMacCLI", |
| swiftSettings: [ |
| .enableUpcomingFeature("StrictConcurrency"), |
| ]), |
| .testTarget( |
| name: "OpenClawIPCTests", |
| dependencies: [ |
| "OpenClawIPC", |
| "OpenClaw", |
| "OpenClawDiscovery", |
| .product(name: "OpenClawProtocol", package: "OpenClawKit"), |
| .product(name: "SwabbleKit", package: "swabble"), |
| ], |
| swiftSettings: [ |
| .enableUpcomingFeature("StrictConcurrency"), |
| .enableExperimentalFeature("SwiftTesting"), |
| ]), |
| ]) |
|
|