Spaces:
Running
Running
| // swift-tools-version: 6.2 | |
| // Package manifest for the OpenClaw macOS companion (menu bar app + IPC library). | |
| 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"), | |
| ]), | |
| ]) | |