|
@@ -2,6 +2,44 @@
|
|
|
|
|
|
|
|
import PackageDescription
|
|
import PackageDescription
|
|
|
|
|
|
|
|
|
|
+var sources = [
|
|
|
|
|
+ "ggml.c",
|
|
|
|
|
+ "llama.cpp",
|
|
|
|
|
+ "unicode.cpp",
|
|
|
|
|
+ "unicode-data.cpp",
|
|
|
|
|
+ "ggml-alloc.c",
|
|
|
|
|
+ "ggml-backend.c",
|
|
|
|
|
+ "ggml-quants.c",
|
|
|
|
|
+]
|
|
|
|
|
+
|
|
|
|
|
+var resources: [Resource] = []
|
|
|
|
|
+var linkerSettings: [LinkerSetting] = []
|
|
|
|
|
+var cSettings: [CSetting] = [
|
|
|
|
|
+ .unsafeFlags(["-Wno-shorten-64-to-32", "-O3", "-DNDEBUG"]),
|
|
|
|
|
+ .unsafeFlags(["-fno-objc-arc"]),
|
|
|
|
|
+ // 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")
|
|
|
|
|
+]
|
|
|
|
|
+
|
|
|
|
|
+#if canImport(Darwin)
|
|
|
|
|
+sources.append("ggml-metal.m")
|
|
|
|
|
+resources.append(.process("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(
|
|
let package = Package(
|
|
|
name: "llama",
|
|
name: "llama",
|
|
|
platforms: [
|
|
platforms: [
|
|
@@ -28,34 +66,11 @@ let package = Package(
|
|
|
"ggml-cuda.h",
|
|
"ggml-cuda.h",
|
|
|
"Makefile"
|
|
"Makefile"
|
|
|
],
|
|
],
|
|
|
- sources: [
|
|
|
|
|
- "ggml.c",
|
|
|
|
|
- "llama.cpp",
|
|
|
|
|
- "unicode.cpp",
|
|
|
|
|
- "unicode-data.cpp",
|
|
|
|
|
- "ggml-alloc.c",
|
|
|
|
|
- "ggml-backend.c",
|
|
|
|
|
- "ggml-quants.c",
|
|
|
|
|
- "ggml-metal.m",
|
|
|
|
|
- ],
|
|
|
|
|
- resources: [
|
|
|
|
|
- .process("ggml-metal.metal")
|
|
|
|
|
- ],
|
|
|
|
|
|
|
+ sources: sources,
|
|
|
|
|
+ resources: resources,
|
|
|
publicHeadersPath: "spm-headers",
|
|
publicHeadersPath: "spm-headers",
|
|
|
- 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")
|
|
|
|
|
- ]
|
|
|
|
|
|
|
+ cSettings: cSettings,
|
|
|
|
|
+ linkerSettings: linkerSettings
|
|
|
)
|
|
)
|
|
|
],
|
|
],
|
|
|
cxxLanguageStandard: .cxx11
|
|
cxxLanguageStandard: .cxx11
|