1
- // swift-tools-version:5.5
1
+ // swift-tools-version:5.9
2
2
3
3
import PackageDescription
4
4
5
+ var sources = [
6
+ " ggml.c " ,
7
+ " llama.cpp " ,
8
+ " unicode.cpp " ,
9
+ " unicode-data.cpp " ,
10
+ " ggml-alloc.c " ,
11
+ " ggml-backend.c " ,
12
+ " ggml-quants.c " ,
13
+ ]
14
+
15
+ var resources : [ Resource ] = [ ]
16
+ var linkerSettings : [ LinkerSetting ] = [ ]
17
+ var cSettings : [ CSetting ] = [
18
+ . unsafeFlags( [ " -Wno-shorten-64-to-32 " , " -O3 " , " -DNDEBUG " ] ) ,
19
+ . unsafeFlags( [ " -fno-objc-arc " ] ) ,
20
+ // NOTE: NEW_LAPACK will required iOS version 16.4+
21
+ // We should consider add this in the future when we drop support for iOS 14
22
+ // (ref: ref: https://developer.apple.com/documentation/accelerate/1513264-cblas_sgemm?language=objc)
23
+ // .define("ACCELERATE_NEW_LAPACK"),
24
+ // .define("ACCELERATE_LAPACK_ILP64")
25
+ ]
26
+ var swiftSettings : [ SwiftSetting ] = [ ]
27
+
28
+
29
+ #if "CXX-INTEROP-ENABLED" // Not sure how to put this behind a flag
30
+ swiftSettings. append ( . interoperabilityMode( . Cxx) )
31
+ #endif
32
+
33
+ #if canImport(Darwin)
34
+ sources. append ( " ggml-metal.m " )
35
+ resources. append ( . process( " ggml-metal.metal " ) )
36
+ linkerSettings. append ( . linkedFramework( " Accelerate " ) )
37
+ cSettings. append (
38
+ contentsOf: [
39
+ . define( " GGML_USE_ACCELERATE " ) ,
40
+ . define( " GGML_USE_METAL " )
41
+ ]
42
+ )
43
+ #endif
44
+
45
+ #if os(Linux)
46
+ cSettings. append ( . define( " LLAMA_NO_ACCELERATE " ) )
47
+ cSettings. append ( . define( " _GNU_SOURCE " ) )
48
+ #endif
49
+
5
50
let package = Package (
6
51
name: " llama " ,
7
52
platforms: [
@@ -28,35 +73,14 @@ let package = Package(
28
73
" ggml-cuda.h " ,
29
74
" Makefile "
30
75
] ,
31
- sources: [
32
- " ggml.c " ,
33
- " llama.cpp " ,
34
- " unicode.cpp " ,
35
- " unicode-data.cpp " ,
36
- " ggml-alloc.c " ,
37
- " ggml-backend.c " ,
38
- " ggml-quants.c " ,
39
- " ggml-metal.m " ,
40
- ] ,
41
- resources: [
42
- . process( " ggml-metal.metal " )
43
- ] ,
76
+ sources: sources,
77
+ resources: resources,
44
78
publicHeadersPath: " spm-headers " ,
45
- cSettings: [
46
- . unsafeFlags( [ " -Wno-shorten-64-to-32 " , " -O3 " , " -DNDEBUG " ] ) ,
47
- . define( " GGML_USE_ACCELERATE " ) ,
48
- . unsafeFlags( [ " -fno-objc-arc " ] ) ,
49
- . define( " GGML_USE_METAL " ) ,
50
- // NOTE: NEW_LAPACK will required iOS version 16.4+
51
- // We should consider add this in the future when we drop support for iOS 14
52
- // (ref: ref: https://developer.apple.com/documentation/accelerate/1513264-cblas_sgemm?language=objc)
53
- // .define("ACCELERATE_NEW_LAPACK"),
54
- // .define("ACCELERATE_LAPACK_ILP64")
55
- ] ,
56
- linkerSettings: [
57
- . linkedFramework( " Accelerate " )
58
- ]
79
+ cSettings: cSettings,
80
+ swiftSettings: swiftSettings,
81
+ linkerSettings: linkerSettings
59
82
)
60
83
] ,
84
+
61
85
cxxLanguageStandard: . cxx11
62
86
)
0 commit comments