diff --git a/Package.swift b/Package.swift index b86e25570..91a92d327 100644 --- a/Package.swift +++ b/Package.swift @@ -2,6 +2,20 @@ import PackageDescription +#if arch(arm) || arch(arm64) +let exclude: [String] = [] +let additionalSources: [String] = ["ggml-metal.m"] +let additionalSettings: [CSetting] = [ + .unsafeFlags(["-fno-objc-arc"]), + .define("GGML_SWIFT"), + .define("GGML_USE_METAL") +] +#else +let exclude: [String] = ["ggml-metal.metal"] +let additionalSources: [String] = [] +let additionalSettings: [CSetting] = [] +#endif + let package = Package( name: "llama", platforms: [.macOS(.v11)], @@ -12,26 +26,23 @@ let package = Package( .target( name: "llama", path: ".", + exclude: exclude, sources: [ "ggml.c", "llama.cpp", "ggml-alloc.c", "k_quants.c", - "ggml-metal.m", - ], + ] + additionalSources, publicHeadersPath: "spm-headers", cSettings: [ .unsafeFlags(["-Wno-shorten-64-to-32"]), - .unsafeFlags(["-fno-objc-arc"]), - .define("GGML_SWIFT"), - .define("GGML_USE_METAL"), .define("GGML_USE_K_QUANTS"), .define("GGML_USE_ACCELERATE") - ], + ] + additionalSettings, linkerSettings: [ .linkedFramework("Accelerate") ] - ), + ) ], cxxLanguageStandard: .cxx11 )