main
swift 65 lines 2.31 KB
Raw
1 // swift-tools-version:6.2
2 import Foundation
3 import PackageDescription
4
5 // ─────────────────────────────────────────────────────────────────────────────
6 // Local development
7 //
8 // When you are working on the Onde Rust crate locally, build an XCFramework
9 // into this repository before opening the example app:
10 //
11 // make ios
12 // # or: make macos / make tvos / make visionos / make watchos
13 //
14 // If `./OndeFramework.xcframework` exists, this manifest uses it automatically.
15 // That keeps local SwiftPM and Xcode iterations fast.
16 //
17 // Distribution
18 //
19 // When the local XCFramework is absent, SwiftPM falls back to the published
20 // release asset attached to the matching `onde` GitHub release.
21 // ─────────────────────────────────────────────────────────────────────────────
22
23 let packageRoot = URL(fileURLWithPath: #filePath).deletingLastPathComponent()
24 let localFrameworkPath = "OndeFramework.xcframework"
25 let localFrameworkAbsolutePath = packageRoot.appendingPathComponent(localFrameworkPath).path
26 let releaseFrameworkURL =
27 "https://github.com/ondeinference/onde/releases/download/1.3.2/OndeFramework.xcframework.zip"
28 let releaseFrameworkChecksum =
29 "819adec73349ec66fb9e24dfa493fd85d174bfd869af087820297d38652493ac"
30
31 let ondeFrameworkTarget: Target
32 if FileManager.default.fileExists(atPath: localFrameworkAbsolutePath) {
33 ondeFrameworkTarget = .binaryTarget(
34 name: "OndeFramework",
35 path: localFrameworkPath
36 )
37 } else {
38 ondeFrameworkTarget = .binaryTarget(
39 name: "OndeFramework",
40 url: releaseFrameworkURL,
41 checksum: releaseFrameworkChecksum
42 )
43 }
44
45 let package = Package(
46 name: "Onde",
47 platforms: [
48 .iOS(.v16),
49 .macOS(.v14),
50 .tvOS(.v16),
51 .visionOS(.v1),
52 .watchOS(.v9),
53 ],
54 products: [
55 .library(name: "Onde", targets: ["Onde"])
56 ],
57 targets: [
58 ondeFrameworkTarget,
59 .target(
60 name: "Onde",
61 dependencies: [.target(name: "OndeFramework")],
62 path: "Sources/Onde"
63 ),
64 ]
65 )