-
Notifications
You must be signed in to change notification settings - Fork 154
Expand file tree
/
Copy pathPackage.swift
More file actions
55 lines (49 loc) · 1.64 KB
/
Copy pathPackage.swift
File metadata and controls
55 lines (49 loc) · 1.64 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
// swift-tools-version: 6.2
import PackageDescription
import Foundation
let packageDir = URL(fileURLWithPath: #filePath).deletingLastPathComponent().path
let hasSherpaFramework = FileManager.default.fileExists(
atPath: packageDir + "/Frameworks/sherpa-onnx.xcframework/Info.plist"
)
let hasCloudSubscription = FileManager.default.fileExists(
atPath: packageDir + "/Type4Me/CloudSubscription/marker"
)
var swiftDefines: [SwiftSetting] = [.swiftLanguageMode(.v5)]
if hasSherpaFramework { swiftDefines.append(.define("HAS_SHERPA_ONNX")) }
if hasCloudSubscription { swiftDefines.append(.define("HAS_CLOUD_SUBSCRIPTION")) }
var excludes = ["Resources"]
if !hasCloudSubscription { excludes.append("CloudSubscription") }
var targets: [Target] = [
.executableTarget(
name: "Type4Me",
dependencies: hasSherpaFramework ? ["SherpaOnnxLib"] : [],
path: "Type4Me",
exclude: excludes,
cSettings: hasSherpaFramework ? [.headerSearchPath("Bridge")] : [],
swiftSettings: swiftDefines,
linkerSettings: (hasSherpaFramework ? [
.linkedLibrary("c++"),
.linkedFramework("Accelerate"),
.linkedFramework("Foundation"),
] : []) + [
.linkedFramework("MediaPlayer"),
]
),
.testTarget(
name: "Type4MeTests",
dependencies: ["Type4Me"],
path: "Type4MeTests"
),
]
if hasSherpaFramework {
targets.insert(
.binaryTarget(name: "SherpaOnnxLib", path: "Frameworks/sherpa-onnx.xcframework"),
at: 0
)
}
let package = Package(
name: "Type4Me",
platforms: [.macOS(.v14)],
dependencies: [],
targets: targets
)