import PackageDescription
-#if arch(arm) || arch(arm64)
-let platforms: [SupportedPlatform]? = [
- .macOS(.v12),
- .iOS(.v14),
- .watchOS(.v4),
- .tvOS(.v14)
-]
-let exclude: [String] = []
-let resources: [Resource] = [
- .process("ggml-metal.metal")
-]
-let additionalSources: [String] = ["ggml-metal.m"]
-let additionalSettings: [CSetting] = [
- .unsafeFlags(["-fno-objc-arc"]),
- .define("GGML_USE_METAL")
-]
-#else
-let platforms: [SupportedPlatform]? = nil
-let exclude: [String] = ["ggml-metal.metal"]
-let resources: [Resource] = []
-let additionalSources: [String] = []
-let additionalSettings: [CSetting] = []
-#endif
-
let package = Package(
name: "whisper",
- platforms: platforms,
+ platforms: [
+ .macOS(.v12),
+ .iOS(.v14),
+ .watchOS(.v4),
+ .tvOS(.v14)
+ ],
products: [
.library(name: "whisper", targets: ["whisper"]),
],
.target(
name: "whisper",
path: ".",
- exclude: exclude + [
+ exclude: [
"bindings",
"cmake",
"coreml",
"whisper.cpp",
"ggml-alloc.c",
"ggml-backend.c",
- "ggml-quants.c"
- ] + additionalSources,
- resources: resources,
+ "ggml-quants.c",
+ "ggml-metal.m"
+ ],
+ resources: [.process("ggml-metal.metal")],
publicHeadersPath: "spm-headers",
cSettings: [
.unsafeFlags(["-Wno-shorten-64-to-32", "-O3", "-DNDEBUG"]),
- .define("GGML_USE_ACCELERATE")
+ .define("GGML_USE_ACCELERATE"),
+ .unsafeFlags(["-fno-objc-arc"]),
+ .define("GGML_USE_METAL")
// NOTE: NEW_LAPACK will required iOS version 16.4+
// We should consider add this in the future when we drop support for iOS 14
// (ref: ref: https://developer.apple.com/documentation/accelerate/1513264-cblas_sgemm?language=objc)
// .define("ACCELERATE_NEW_LAPACK"),
// .define("ACCELERATE_LAPACK_ILP64")
- ] + additionalSettings,
+ ],
linkerSettings: [
.linkedFramework("Accelerate")
]