Package.swift 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. // swift-tools-version:5.5
  2. import PackageDescription
  3. let package = Package(
  4. name: "llama",
  5. platforms: [
  6. .macOS(.v12),
  7. .iOS(.v14),
  8. .watchOS(.v4),
  9. .tvOS(.v14)
  10. ],
  11. products: [
  12. .library(name: "llama", targets: ["llama"]),
  13. ],
  14. dependencies: [
  15. .package(url: "https://github.com/ggerganov/ggml.git", .branch("master"))
  16. ],
  17. targets: [
  18. .target(
  19. name: "llama",
  20. dependencies: ["ggml"],
  21. path: ".",
  22. exclude: ["ggml-metal.metal"],
  23. sources: [
  24. "llama.cpp",
  25. ],
  26. publicHeadersPath: "spm-headers",
  27. cSettings: [
  28. .unsafeFlags(["-Wno-shorten-64-to-32", "-O3", "-DNDEBUG"]),
  29. .define("GGML_USE_ACCELERATE"),
  30. .unsafeFlags(["-fno-objc-arc"]),
  31. .define("GGML_USE_METAL"),
  32. // NOTE: NEW_LAPACK will required iOS version 16.4+
  33. // We should consider add this in the future when we drop support for iOS 14
  34. // (ref: ref: https://developer.apple.com/documentation/accelerate/1513264-cblas_sgemm?language=objc)
  35. // .define("ACCELERATE_NEW_LAPACK"),
  36. // .define("ACCELERATE_LAPACK_ILP64")
  37. ],
  38. linkerSettings: [
  39. .linkedFramework("Accelerate")
  40. ]
  41. )
  42. ],
  43. cxxLanguageStandard: .cxx11
  44. )