From 6fdcf6257e88633bcc7f8cf8b62d8e7c103f4d2d Mon Sep 17 00:00:00 2001 From: Ashraful Islam Date: Wed, 3 Jan 2024 03:07:30 -0600 Subject: [PATCH] swift : add Swift Package declaration (#674) * 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 | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 Package.swift diff --git a/Package.swift b/Package.swift new file mode 100644 index 000000000..0c3313dd0 --- /dev/null +++ b/Package.swift @@ -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 +)