From 91195a4fec70480e8a82e3066b34932d25235fa7 Mon Sep 17 00:00:00 2001 From: Ashraful Islam Date: Fri, 29 Dec 2023 13:29:37 -0600 Subject: [PATCH 1/2] 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 --- Package.swift | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 Package.swift diff --git a/Package.swift b/Package.swift new file mode 100644 index 0000000000..f12652b5f9 --- /dev/null +++ b/Package.swift @@ -0,0 +1,49 @@ +// swift-tools-version: 5.9 + +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: [ + "ggml.c", + "ggml-alloc.c", + "ggml-backend.c", + "ggml-quants.c", + "ggml-metal.m", + ], + resources: [ + .process("ggml-metal.metal") + ], + 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") + ] + ) + ], + cxxLanguageStandard: .cxx11 +) From 9076f4d3dfa898d836daedb1a0c75748c6bc3234 Mon Sep 17 00:00:00 2001 From: Ashraful Islam Date: Fri, 29 Dec 2023 13:45:53 -0600 Subject: [PATCH 2/2] fixes the src paths in package.swift --- Package.swift | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/Package.swift b/Package.swift index f12652b5f9..0c3313dd0d 100644 --- a/Package.swift +++ b/Package.swift @@ -1,4 +1,4 @@ -// swift-tools-version: 5.9 +// swift-tools-version: 5.5 import PackageDescription @@ -19,16 +19,16 @@ let package = Package( path: ".", exclude: [], sources: [ - "ggml.c", - "ggml-alloc.c", - "ggml-backend.c", - "ggml-quants.c", - "ggml-metal.m", + "src/ggml.c", + "src/ggml-alloc.c", + "src/ggml-backend.c", + "src/ggml-quants.c", + "src/ggml-metal.m", ], resources: [ - .process("ggml-metal.metal") + .process("src/ggml-metal.metal") ], - publicHeadersPath: "spm-headers", + publicHeadersPath: "include/ggml", cSettings: [ .unsafeFlags(["-Wno-shorten-64-to-32", "-O3", "-DNDEBUG"]), .define("GGML_USE_ACCELERATE"),