Skip to content

Commit

Permalink
swift : add Swift Package declaration (#674)
Browse files Browse the repository at this point in the history
* feat: adds swift package declaration
- allows importing ggml as package dependency in llama.cpp and whisper.cpp
- resolves issues with duplicate symbol error when importing llama.cpp and whisper.cpp as package dependency

* fixes the src paths in package.swift
  • Loading branch information
1-ashraful-islam authored Jan 3, 2024
1 parent fca1caa commit 6fdcf62
Showing 1 changed file with 49 additions and 0 deletions.
49 changes: 49 additions & 0 deletions Package.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
// swift-tools-version: 5.5

import PackageDescription

let package = Package(
name: "ggml",
platforms: [
.macOS(.v12),
.iOS(.v14),
.watchOS(.v4),
.tvOS(.v14)
],
products: [
.library(name: "ggml", targets: ["ggml"]),
],
targets: [
.target(
name: "ggml",
path: ".",
exclude: [],
sources: [
"src/ggml.c",
"src/ggml-alloc.c",
"src/ggml-backend.c",
"src/ggml-quants.c",
"src/ggml-metal.m",
],
resources: [
.process("src/ggml-metal.metal")
],
publicHeadersPath: "include/ggml",
cSettings: [
.unsafeFlags(["-Wno-shorten-64-to-32", "-O3", "-DNDEBUG"]),
.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")
],
linkerSettings: [
.linkedFramework("Accelerate")
]
)
],
cxxLanguageStandard: .cxx11
)

0 comments on commit 6fdcf62

Please sign in to comment.