-
Notifications
You must be signed in to change notification settings - Fork 707
Expand file tree
/
Copy pathPackage.swift
More file actions
119 lines (117 loc) · 3.28 KB
/
Copy pathPackage.swift
File metadata and controls
119 lines (117 loc) · 3.28 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
// swift-tools-version: 5.9
// Copyright 2026 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// https://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
import PackageDescription
let package = Package(
name: "LiteRTLM",
platforms: [
.iOS(.v15),
.macOS(.v12),
],
products: [
.library(
name: "LiteRTLM",
targets: ["LiteRTLM"]
),
.library(
name: "LiteRTLMFoundationModels",
targets: ["LiteRTLMFoundationModels"]
),
],
targets: [
// The Prebuilt Binary Target for iOS
.binaryTarget(
name: "CLiteRTLM",
url:
"https://github.com/google-ai-edge/LiteRT-LM/releases/download/v0.16.0/CLiteRTLM.xcframework.zip",
checksum: "4e0f683da07566ee79c143d2d58d387f77052b0e6a41562c969e5d2728fc9f4b"
),
// The Prebuilt Binary Target for Mac
.binaryTarget(
name: "CLiteRTLM_mac",
url:
"https://github.com/google-ai-edge/LiteRT-LM/releases/download/v0.16.0/CLiteRTLM_mac.xcframework.zip",
checksum: "3ae6c876abd74614b1869bfc40cb4d0b892981363564740268b1f8ac5cf895a4"
),
// The Swift Wrapper Target
.target(
name: "LiteRTLM",
dependencies: [
.target(name: "CLiteRTLM", condition: .when(platforms: [.iOS])),
.target(name: "CLiteRTLM_mac", condition: .when(platforms: [.macOS])),
],
path: "swift",
exclude: [
"apple_fm",
"device_tests",
"CapabilitiesTests.swift",
"EngineTests.swift",
"EmbeddingEngineTests.swift",
"ConversationTests.swift",
"ToolTests.swift",
"MessageTests.swift",
"BUILD",
"Info.plist",
],
),
// Apple Foundation Models Adapter
.target(
name: "LiteRTLMFoundationModels",
dependencies: ["LiteRTLM"],
path: "swift/apple_fm",
exclude: [
"BUILD",
"main.swift",
"AdapterTests.swift",
]
),
// Separate test targets for each file to avoid naming conflicts:
.testTarget(
name: "CapabilitiesTests",
dependencies: ["LiteRTLM"],
path: "swift",
sources: ["CapabilitiesTests.swift"]
),
.testTarget(
name: "ConversationTests",
dependencies: ["LiteRTLM"],
path: "swift",
sources: ["ConversationTests.swift"]
),
.testTarget(
name: "ToolTests",
dependencies: ["LiteRTLM"],
path: "swift",
sources: ["ToolTests.swift"]
),
.testTarget(
name: "EngineTests",
dependencies: ["LiteRTLM"],
path: "swift",
sources: ["EngineTests.swift"]
),
.testTarget(
name: "EmbeddingEngineTests",
dependencies: ["LiteRTLM"],
path: "swift",
sources: ["EmbeddingEngineTests.swift"]
),
.testTarget(
name: "MessageTests",
dependencies: ["LiteRTLM"],
path: "swift",
sources: ["MessageTests.swift"]
),
]
)