feature/example
swift 63 lines 2.14 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 localFrameworkPath = "./OndeFramework.xcframework"
24 let releaseFrameworkURL =
25 "https://github.com/ondeinference/onde/releases/download/1.0.0/OndeFramework.xcframework.zip"
26 let releaseFrameworkChecksum =
27 "e50d88a657abe8d5bcc6df9422fa1bae2b2e1855209bbc4f8746ceb97f1ffd3b"
28
29 let ondeFrameworkTarget: Target
30 if FileManager.default.fileExists(atPath: localFrameworkPath) {
31 ondeFrameworkTarget = .binaryTarget(
32 name: "OndeFramework",
33 path: localFrameworkPath
34 )
35 } else {
36 ondeFrameworkTarget = .binaryTarget(
37 name: "OndeFramework",
38 url: releaseFrameworkURL,
39 checksum: releaseFrameworkChecksum
40 )
41 }
42
43 let package = Package(
44 name: "Onde",
45 platforms: [
46 .iOS(.v16),
47 .macOS(.v14),
48 .tvOS(.v16),
49 .visionOS(.v1),
50 .watchOS(.v9),
51 ],
52 products: [
53 .library(name: "Onde", targets: ["Onde"])
54 ],
55 targets: [
56 ondeFrameworkTarget,
57 .target(
58 name: "Onde",
59 dependencies: [.target(name: "OndeFramework")],
60 path: "Sources/Onde"
61 ),
62 ]
63 )