]> git.djapps.eu Git - pkg/ggml/sources/ggml/commitdiff
swift : add Swift Package declaration (#674)
authorAshraful Islam <redacted>
Wed, 3 Jan 2024 09:07:30 +0000 (03:07 -0600)
committerGitHub <redacted>
Wed, 3 Jan 2024 09:07:30 +0000 (11:07 +0200)
* 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

Package.swift [new file with mode: 0644]

diff --git a/Package.swift b/Package.swift
new file mode 100644 (file)
index 0000000..0c3313d
--- /dev/null
@@ -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
+)