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 +)