-
Notifications
You must be signed in to change notification settings - Fork 3.7k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
ios : add support for Swift Package Manager (#1370)
* Add support for Swift * Make it build in Xcode * Use the SPM package in the SwiftUI example app
- Loading branch information
1 parent
6a5d195
commit d03c60d
Showing
7 changed files
with
109 additions
and
76 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,77 @@ | ||
// swift-tools-version:5.5 | ||
|
||
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, | ||
products: [ | ||
.library(name: "whisper", targets: ["whisper"]), | ||
], | ||
targets: [ | ||
.target( | ||
name: "whisper", | ||
path: ".", | ||
exclude: exclude + [ | ||
"bindings", | ||
"cmake", | ||
"coreml", | ||
"examples", | ||
"extra", | ||
"models", | ||
"samples", | ||
"tests", | ||
"CMakeLists.txt", | ||
"ggml-cuda.cu", | ||
"ggml-cuda.h", | ||
"Makefile" | ||
], | ||
sources: [ | ||
"ggml.c", | ||
"whisper.cpp", | ||
"ggml-alloc.c", | ||
"ggml-backend.c", | ||
"ggml-quants.c" | ||
] + additionalSources, | ||
resources: resources, | ||
publicHeadersPath: "spm-headers", | ||
cSettings: [ | ||
.unsafeFlags(["-Wno-shorten-64-to-32", "-O3", "-DNDEBUG"]), | ||
.define("GGML_USE_ACCELERATE") | ||
// 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") | ||
] | ||
) | ||
], | ||
cxxLanguageStandard: .cxx11 | ||
) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,5 @@ | ||
import Foundation | ||
import whisper | ||
|
||
enum WhisperError: Error { | ||
case couldNotInitializeContext | ||
|
4 changes: 0 additions & 4 deletions
4
examples/whisper.swiftui/whisper.cpp.swift/WhisperCppDemo-Bridging-Header.h
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
../ggml.h |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
../whisper.h |