Skip to content

Commit 36e1556

Browse files
author
Steven Prichard
committed
wip: need to figure out how to define a flag
1 parent 400d5d7 commit 36e1556

File tree

1 file changed

+52
-28
lines changed

1 file changed

+52
-28
lines changed

Package.swift

Lines changed: 52 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,52 @@
1-
// swift-tools-version:5.5
1+
// swift-tools-version:5.9
22

33
import PackageDescription
44

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+
550
let package = Package(
651
name: "llama",
752
platforms: [
@@ -28,35 +73,14 @@ let package = Package(
2873
"ggml-cuda.h",
2974
"Makefile"
3075
],
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,
4478
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
5982
)
6083
],
84+
6185
cxxLanguageStandard: .cxx11
6286
)

0 commit comments

Comments
 (0)