|
|
@@ -2,33 +2,14 @@
|
|
|
|
|
|
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: "llama",
|
|
|
- platforms: platforms,
|
|
|
+ platforms: [
|
|
|
+ .macOS(.v12),
|
|
|
+ .iOS(.v14),
|
|
|
+ .watchOS(.v4),
|
|
|
+ .tvOS(.v14)
|
|
|
+ ],
|
|
|
products: [
|
|
|
.library(name: "llama", targets: ["llama"]),
|
|
|
],
|
|
|
@@ -36,25 +17,30 @@ let package = Package(
|
|
|
.target(
|
|
|
name: "llama",
|
|
|
path: ".",
|
|
|
- exclude: exclude,
|
|
|
+ exclude: [],
|
|
|
sources: [
|
|
|
"ggml.c",
|
|
|
"llama.cpp",
|
|
|
"ggml-alloc.c",
|
|
|
"ggml-backend.c",
|
|
|
"ggml-quants.c",
|
|
|
- ] + additionalSources,
|
|
|
- resources: resources,
|
|
|
+ "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")
|
|
|
]
|