Package.swift 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. // swift-tools-version:5.3
  2. import PackageDescription
  3. #if arch(arm) || arch(arm64)
  4. let platforms: [SupportedPlatform]? = [
  5. .macOS(.v11),
  6. .iOS(.v14),
  7. .watchOS(.v4),
  8. .tvOS(.v14)
  9. ]
  10. let exclude: [String] = []
  11. let additionalSources: [String] = ["ggml-metal.m", "ggml-metal.metal"]
  12. let additionalSettings: [CSetting] = [
  13. .unsafeFlags(["-fno-objc-arc"]),
  14. .define("GGML_SWIFT"),
  15. .define("GGML_USE_METAL")
  16. ]
  17. #else
  18. let platforms: [SupportedPlatform]? = nil
  19. let exclude: [String] = ["ggml-metal.metal"]
  20. let additionalSources: [String] = []
  21. let additionalSettings: [CSetting] = []
  22. #endif
  23. let package = Package(
  24. name: "llama",
  25. platforms: platforms,
  26. products: [
  27. .library(name: "llama", targets: ["llama"]),
  28. ],
  29. targets: [
  30. .target(
  31. name: "llama",
  32. path: ".",
  33. exclude: exclude,
  34. sources: [
  35. "ggml.c",
  36. "llama.cpp",
  37. "ggml-alloc.c",
  38. "k_quants.c",
  39. ] + additionalSources,
  40. publicHeadersPath: "spm-headers",
  41. cSettings: [
  42. .unsafeFlags(["-Wno-shorten-64-to-32"]),
  43. .define("GGML_USE_K_QUANTS"),
  44. .define("GGML_USE_ACCELERATE"),
  45. .define("ACCELERATE_NEW_LAPACK"),
  46. .define("ACCELERATE_LAPACK_ILP64")
  47. ] + additionalSettings,
  48. linkerSettings: [
  49. .linkedFramework("Accelerate")
  50. ]
  51. )
  52. ],
  53. cxxLanguageStandard: .cxx11
  54. )