mirror of
				https://github.com/ggml-org/llama.cpp.git
				synced 2025-10-31 08:51:55 +00:00 
			
		
		
		
	 0aa6595ae0
			
		
	
	0aa6595ae0
	
	
	
		
			
			* swift : use macOS 12 as minimum requirement * swift : add missing ggml-backend.c source * swift : add -O3 -DNDEBUG unsafe flags
		
			
				
	
	
		
			66 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Swift
		
	
	
	
	
	
			
		
		
	
	
			66 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Swift
		
	
	
	
	
	
| // swift-tools-version:5.5
 | |
| 
 | |
| import PackageDescription
 | |
| 
 | |
| #if arch(arm) || arch(arm64)
 | |
| let platforms: [SupportedPlatform]? = [
 | |
|     .macOS(.v12),
 | |
|     .iOS(.v14),
 | |
|     .watchOS(.v4),
 | |
|     .tvOS(.v14)
 | |
| ]
 | |
| let exclude: [String] = []
 | |
| let resources: [Resource] = [
 | |
|     .process("ggml-metal.metal")
 | |
| ]
 | |
| let additionalSources: [String] = ["ggml-metal.m"]
 | |
| let additionalSettings: [CSetting] = [
 | |
|     .unsafeFlags(["-fno-objc-arc"]),
 | |
|     .define("GGML_USE_METAL")
 | |
| ]
 | |
| #else
 | |
| let platforms: [SupportedPlatform]? = nil
 | |
| let exclude: [String] = ["ggml-metal.metal"]
 | |
| let resources: [Resource] = []
 | |
| let additionalSources: [String] = []
 | |
| let additionalSettings: [CSetting] = []
 | |
| #endif
 | |
| 
 | |
| let package = Package(
 | |
|     name: "llama",
 | |
|     platforms: platforms,
 | |
|     products: [
 | |
|         .library(name: "llama", targets: ["llama"]),
 | |
|     ],
 | |
|     targets: [
 | |
|         .target(
 | |
|             name: "llama",
 | |
|             path: ".",
 | |
|             exclude: exclude,
 | |
|             sources: [
 | |
|                 "ggml.c",
 | |
|                 "llama.cpp",
 | |
|                 "ggml-alloc.c",
 | |
|                 "ggml-backend.c",
 | |
|                 "k_quants.c",
 | |
|             ] + additionalSources,
 | |
|             resources: resources,
 | |
|             publicHeadersPath: "spm-headers",
 | |
|             cSettings: [
 | |
|                 .unsafeFlags(["-Wno-shorten-64-to-32", "-O3", "-DNDEBUG"]),
 | |
|                 .define("GGML_USE_K_QUANTS"),
 | |
|                 .define("GGML_USE_ACCELERATE")
 | |
|                 // 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")
 | |
|             ] + additionalSettings,
 | |
|             linkerSettings: [
 | |
|                 .linkedFramework("Accelerate")
 | |
|             ]
 | |
|         )
 | |
|     ],
 | |
|     cxxLanguageStandard: .cxx11
 | |
| )
 |