ios : Remove #if arch(arm) check for using Metal (#1561)

This commit is contained in:
Finn Voorhees 2023-12-05 01:14:26 +00:00 committed by GitHub
parent 3c28d1a571
commit f0efd0202d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

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