|
|
|
|
|
import PackageDescription |
|
|
|
var sources = [ |
|
"src/llama.cpp", |
|
"src/llama-vocab.cpp", |
|
"src/llama-grammar.cpp", |
|
"src/llama-sampling.cpp", |
|
"src/unicode.cpp", |
|
"src/unicode-data.cpp", |
|
"ggml/src/ggml.c", |
|
"ggml/src/ggml-aarch64.c", |
|
"ggml/src/ggml-alloc.c", |
|
"ggml/src/ggml-backend.cpp", |
|
"ggml/src/ggml-backend-reg.cpp", |
|
"ggml/src/ggml-cpu/ggml-cpu.c", |
|
"ggml/src/ggml-cpu/ggml-cpu.cpp", |
|
"ggml/src/ggml-cpu/ggml-cpu-aarch64.c", |
|
"ggml/src/ggml-cpu/ggml-cpu-quants.c", |
|
"ggml/src/ggml-threading.cpp", |
|
"ggml/src/ggml-quants.c", |
|
] |
|
|
|
var resources: [Resource] = [] |
|
var linkerSettings: [LinkerSetting] = [] |
|
var cSettings: [CSetting] = [ |
|
.unsafeFlags(["-Wno-shorten-64-to-32", "-O3", "-DNDEBUG"]), |
|
.unsafeFlags(["-fno-objc-arc"]), |
|
.headerSearchPath("ggml/src"), |
|
.headerSearchPath("ggml/src/ggml-cpu"), |
|
|
|
|
|
|
|
|
|
|
|
.define("GGML_USE_CPU"), |
|
] |
|
|
|
|
|
#if canImport(Darwin) |
|
sources.append("ggml/src/ggml-common.h") |
|
sources.append("ggml/src/ggml-metal/ggml-metal.m") |
|
resources.append(.process("ggml/src/ggml-metal/ggml-metal.metal")) |
|
linkerSettings.append(.linkedFramework("Accelerate")) |
|
cSettings.append( |
|
contentsOf: [ |
|
.define("GGML_USE_ACCELERATE"), |
|
.define("GGML_USE_METAL"), |
|
] |
|
) |
|
#endif |
|
|
|
#if os(Linux) |
|
cSettings.append(.define("_GNU_SOURCE")) |
|
#endif |
|
|
|
let package = Package( |
|
name: "llama", |
|
platforms: [ |
|
.macOS(.v12), |
|
.iOS(.v14), |
|
.watchOS(.v4), |
|
.tvOS(.v14) |
|
], |
|
products: [ |
|
.library(name: "llama", targets: ["llama"]), |
|
], |
|
targets: [ |
|
.target( |
|
name: "llama", |
|
path: ".", |
|
exclude: [ |
|
"build", |
|
"cmake", |
|
"examples", |
|
"scripts", |
|
"models", |
|
"tests", |
|
"CMakeLists.txt", |
|
"Makefile", |
|
"ggml/src/ggml-metal-embed.metal" |
|
], |
|
sources: sources, |
|
resources: resources, |
|
publicHeadersPath: "spm-headers", |
|
cSettings: cSettings, |
|
linkerSettings: linkerSettings |
|
) |
|
], |
|
cxxLanguageStandard: .cxx17 |
|
) |
|
|