Skip to content

Commit 72d8407

Browse files
authored
llama.swiftui : use llama.cpp as SPM package (#4804)
1 parent d117d4d commit 72d8407

File tree

5 files changed

+13
-94
lines changed

5 files changed

+13
-94
lines changed

examples/llama.swiftui/llama.cpp.swift/LibLlama.swift

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,5 @@
11
import Foundation
2-
3-
// To use this in your own project, add llama.cpp as a swift package dependency
4-
// and uncomment this import line.
5-
// import llama
2+
import llama
63

74
enum LlamaError: Error {
85
case couldNotInitializeContext

examples/llama.swiftui/llama.cpp.swift/bridging-header.h

Lines changed: 0 additions & 5 deletions
This file was deleted.

examples/llama.swiftui/llama.swiftui.xcodeproj/project.pbxproj

Lines changed: 12 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -7,52 +7,31 @@
77
objects = {
88

99
/* Begin PBXBuildFile section */
10-
542376082B0D9BFB008E6A1C /* ggml-quants.c in Sources */ = {isa = PBXBuildFile; fileRef = 542376072B0D9BFB008E6A1C /* ggml-quants.c */; settings = {COMPILER_FLAGS = "-O3"; }; };
11-
5423760B2B0D9C4B008E6A1C /* ggml-backend.c in Sources */ = {isa = PBXBuildFile; fileRef = 5423760A2B0D9C4B008E6A1C /* ggml-backend.c */; settings = {COMPILER_FLAGS = "-O3"; }; };
12-
542EA09D2AC8723900A8AEE9 /* ggml.c in Sources */ = {isa = PBXBuildFile; fileRef = 542EA09B2AC8723900A8AEE9 /* ggml.c */; settings = {COMPILER_FLAGS = "-DGGML_USE_ACCELERATE -DGGML_USE_METAL -DGGML_USE_K_QUANTS -O3"; }; };
13-
542EA0A02AC8725700A8AEE9 /* ggml-alloc.c in Sources */ = {isa = PBXBuildFile; fileRef = 542EA09F2AC8725700A8AEE9 /* ggml-alloc.c */; settings = {COMPILER_FLAGS = "-O3"; }; };
14-
542EA0A32AC8729100A8AEE9 /* llama.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 542EA0A12AC8729100A8AEE9 /* llama.cpp */; settings = {COMPILER_FLAGS = "-DGGML_USE_K_QUANTS -DGGML_USE_METAL -O3"; }; };
1510
549479CB2AC9E16000E0F78B /* Metal.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 549479CA2AC9E16000E0F78B /* Metal.framework */; };
16-
549479CD2AC9E42A00E0F78B /* ggml-metal.m in Sources */ = {isa = PBXBuildFile; fileRef = 549479C52AC9E0F200E0F78B /* ggml-metal.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc -DGGML_SWIFT -DGGML_USE_METAL -O3"; }; };
1711
7FA3D2B32B2EA2F600543F92 /* DownloadButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7FA3D2B22B2EA2F600543F92 /* DownloadButton.swift */; };
1812
8A1C83772AC328BD0096AF73 /* llama_swiftuiApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8A1C83762AC328BD0096AF73 /* llama_swiftuiApp.swift */; };
1913
8A1C83792AC328BD0096AF73 /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8A1C83782AC328BD0096AF73 /* ContentView.swift */; };
2014
8A1C837B2AC328BE0096AF73 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 8A1C837A2AC328BE0096AF73 /* Assets.xcassets */; };
21-
8A1C837E2AC328BE0096AF73 /* Preview Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 8A1C837D2AC328BE0096AF73 /* Preview Assets.xcassets */; };
2215
8A39BE0A2AC7601100BFEB40 /* Accelerate.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8A39BE092AC7601000BFEB40 /* Accelerate.framework */; };
2316
8A3F84242AC4C891005E2EE8 /* models in Resources */ = {isa = PBXBuildFile; fileRef = 8A3F84232AC4C891005E2EE8 /* models */; };
2417
8A907F332AC7138A006146EA /* LibLlama.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8A907F322AC7134E006146EA /* LibLlama.swift */; };
2518
8A9F7C4D2AC332EE008AE1EA /* LlamaState.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8A9F7C4C2AC332EE008AE1EA /* LlamaState.swift */; };
26-
F1FE20DC2B465C4500B45541 /* ggml-metal.metal in Resources */ = {isa = PBXBuildFile; fileRef = 549479C82AC9E10B00E0F78B /* ggml-metal.metal */; };
19+
DF810E132B4A5BA200301144 /* llama in Frameworks */ = {isa = PBXBuildFile; productRef = DF810E122B4A5BA200301144 /* llama */; };
2720
F1FE20E22B465ECA00B45541 /* LoadCustomButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = F1FE20E12B465EC900B45541 /* LoadCustomButton.swift */; };
2821
/* End PBXBuildFile section */
2922

3023
/* Begin PBXFileReference section */
31-
542376062B0D9BEA008E6A1C /* ggml-quants.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "ggml-quants.h"; path = "../../ggml-quants.h"; sourceTree = "<group>"; };
32-
542376072B0D9BFB008E6A1C /* ggml-quants.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = "ggml-quants.c"; path = "../../ggml-quants.c"; sourceTree = "<group>"; };
33-
542376092B0D9C40008E6A1C /* ggml-backend.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "ggml-backend.h"; path = "../../ggml-backend.h"; sourceTree = "<group>"; };
34-
5423760A2B0D9C4B008E6A1C /* ggml-backend.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = "ggml-backend.c"; path = "../../ggml-backend.c"; sourceTree = "<group>"; };
35-
542EA09B2AC8723900A8AEE9 /* ggml.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = ggml.c; path = ../../ggml.c; sourceTree = "<group>"; };
36-
542EA09C2AC8723900A8AEE9 /* ggml.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ggml.h; path = ../../ggml.h; sourceTree = "<group>"; };
37-
542EA09E2AC8725700A8AEE9 /* ggml-alloc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "ggml-alloc.h"; path = "../../ggml-alloc.h"; sourceTree = "<group>"; };
38-
542EA09F2AC8725700A8AEE9 /* ggml-alloc.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = "ggml-alloc.c"; path = "../../ggml-alloc.c"; sourceTree = "<group>"; };
39-
542EA0A12AC8729100A8AEE9 /* llama.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = llama.cpp; path = ../../llama.cpp; sourceTree = "<group>"; };
40-
542EA0A22AC8729100A8AEE9 /* llama.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = llama.h; path = ../../llama.h; sourceTree = "<group>"; };
41-
549479C52AC9E0F200E0F78B /* ggml-metal.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = "ggml-metal.m"; path = "../../ggml-metal.m"; sourceTree = "<group>"; };
42-
549479C62AC9E0F200E0F78B /* ggml-metal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "ggml-metal.h"; path = "../../ggml-metal.h"; sourceTree = "<group>"; };
43-
549479C82AC9E10B00E0F78B /* ggml-metal.metal */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.metal; name = "ggml-metal.metal"; path = "../../ggml-metal.metal"; sourceTree = "<group>"; };
4424
549479CA2AC9E16000E0F78B /* Metal.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Metal.framework; path = System/Library/Frameworks/Metal.framework; sourceTree = SDKROOT; };
4525
7FA3D2B22B2EA2F600543F92 /* DownloadButton.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DownloadButton.swift; sourceTree = "<group>"; };
46-
8A08D20A2AC73B1500FE6CD4 /* bridging-header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "bridging-header.h"; sourceTree = "<group>"; };
4726
8A1C83732AC328BD0096AF73 /* llama.swiftui.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = llama.swiftui.app; sourceTree = BUILT_PRODUCTS_DIR; };
4827
8A1C83762AC328BD0096AF73 /* llama_swiftuiApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = llama_swiftuiApp.swift; sourceTree = "<group>"; };
4928
8A1C83782AC328BD0096AF73 /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = "<group>"; };
5029
8A1C837A2AC328BE0096AF73 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
51-
8A1C837D2AC328BE0096AF73 /* Preview Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = "Preview Assets.xcassets"; sourceTree = "<group>"; };
5230
8A39BE092AC7601000BFEB40 /* Accelerate.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Accelerate.framework; path = System/Library/Frameworks/Accelerate.framework; sourceTree = SDKROOT; };
5331
8A3F84232AC4C891005E2EE8 /* models */ = {isa = PBXFileReference; lastKnownFileType = folder; name = models; path = llama.swiftui/Resources/models; sourceTree = "<group>"; };
5432
8A907F322AC7134E006146EA /* LibLlama.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LibLlama.swift; sourceTree = "<group>"; };
5533
8A9F7C4C2AC332EE008AE1EA /* LlamaState.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LlamaState.swift; sourceTree = "<group>"; };
34+
DF2D2FE72B4A59BE00FCB72D /* llama.cpp */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = llama.cpp; path = ../..; sourceTree = "<group>"; };
5635
F1FE20E12B465EC900B45541 /* LoadCustomButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoadCustomButton.swift; sourceTree = "<group>"; };
5736
/* End PBXFileReference section */
5837

@@ -61,6 +40,7 @@
6140
isa = PBXFrameworksBuildPhase;
6241
buildActionMask = 2147483647;
6342
files = (
43+
DF810E132B4A5BA200301144 /* llama in Frameworks */,
6444
549479CB2AC9E16000E0F78B /* Metal.framework in Frameworks */,
6545
8A39BE0A2AC7601100BFEB40 /* Accelerate.framework in Frameworks */,
6646
);
@@ -69,30 +49,10 @@
6949
/* End PBXFrameworksBuildPhase section */
7050

7151
/* Begin PBXGroup section */
72-
8A08D1F62AC7383900FE6CD4 /* llama.cpp */ = {
73-
isa = PBXGroup;
74-
children = (
75-
5423760A2B0D9C4B008E6A1C /* ggml-backend.c */,
76-
542376092B0D9C40008E6A1C /* ggml-backend.h */,
77-
542376062B0D9BEA008E6A1C /* ggml-quants.h */,
78-
542376072B0D9BFB008E6A1C /* ggml-quants.c */,
79-
549479C82AC9E10B00E0F78B /* ggml-metal.metal */,
80-
549479C62AC9E0F200E0F78B /* ggml-metal.h */,
81-
549479C52AC9E0F200E0F78B /* ggml-metal.m */,
82-
542EA09B2AC8723900A8AEE9 /* ggml.c */,
83-
542EA09C2AC8723900A8AEE9 /* ggml.h */,
84-
542EA09F2AC8725700A8AEE9 /* ggml-alloc.c */,
85-
542EA09E2AC8725700A8AEE9 /* ggml-alloc.h */,
86-
542EA0A12AC8729100A8AEE9 /* llama.cpp */,
87-
542EA0A22AC8729100A8AEE9 /* llama.h */,
88-
);
89-
name = llama.cpp;
90-
sourceTree = "<group>";
91-
};
9252
8A1C836A2AC328BD0096AF73 = {
9353
isa = PBXGroup;
9454
children = (
95-
8A08D1F62AC7383900FE6CD4 /* llama.cpp */,
55+
DF2D2FE72B4A59BE00FCB72D /* llama.cpp */,
9656
8A907F312AC7134E006146EA /* llama.cpp.swift */,
9757
8A3F84232AC4C891005E2EE8 /* models */,
9858
8A1C83752AC328BD0096AF73 /* llama.swiftui */,
@@ -117,19 +77,10 @@
11777
8A9F7C4A2AC332BF008AE1EA /* UI */,
11878
8A1C83762AC328BD0096AF73 /* llama_swiftuiApp.swift */,
11979
8A1C837A2AC328BE0096AF73 /* Assets.xcassets */,
120-
8A1C837C2AC328BE0096AF73 /* Preview Content */,
12180
);
12281
path = llama.swiftui;
12382
sourceTree = "<group>";
12483
};
125-
8A1C837C2AC328BE0096AF73 /* Preview Content */ = {
126-
isa = PBXGroup;
127-
children = (
128-
8A1C837D2AC328BE0096AF73 /* Preview Assets.xcassets */,
129-
);
130-
path = "Preview Content";
131-
sourceTree = "<group>";
132-
};
13384
8A39BE082AC7601000BFEB40 /* Frameworks */ = {
13485
isa = PBXGroup;
13586
children = (
@@ -157,7 +108,6 @@
157108
8A907F312AC7134E006146EA /* llama.cpp.swift */ = {
158109
isa = PBXGroup;
159110
children = (
160-
8A08D20A2AC73B1500FE6CD4 /* bridging-header.h */,
161111
8A907F322AC7134E006146EA /* LibLlama.swift */,
162112
);
163113
path = llama.cpp.swift;
@@ -198,6 +148,7 @@
198148
);
199149
name = llama.swiftui;
200150
packageProductDependencies = (
151+
DF810E122B4A5BA200301144 /* llama */,
201152
);
202153
productName = llama.swiftui;
203154
productReference = 8A1C83732AC328BD0096AF73 /* llama.swiftui.app */;
@@ -244,9 +195,7 @@
244195
isa = PBXResourcesBuildPhase;
245196
buildActionMask = 2147483647;
246197
files = (
247-
F1FE20DC2B465C4500B45541 /* ggml-metal.metal in Resources */,
248198
8A3F84242AC4C891005E2EE8 /* models in Resources */,
249-
8A1C837E2AC328BE0096AF73 /* Preview Assets.xcassets in Resources */,
250199
8A1C837B2AC328BE0096AF73 /* Assets.xcassets in Resources */,
251200
);
252201
runOnlyForDeploymentPostprocessing = 0;
@@ -258,18 +207,12 @@
258207
isa = PBXSourcesBuildPhase;
259208
buildActionMask = 2147483647;
260209
files = (
261-
542376082B0D9BFB008E6A1C /* ggml-quants.c in Sources */,
262-
549479CD2AC9E42A00E0F78B /* ggml-metal.m in Sources */,
263210
F1FE20E22B465ECA00B45541 /* LoadCustomButton.swift in Sources */,
264-
542EA09D2AC8723900A8AEE9 /* ggml.c in Sources */,
265211
8A907F332AC7138A006146EA /* LibLlama.swift in Sources */,
266-
542EA0A32AC8729100A8AEE9 /* llama.cpp in Sources */,
267212
8A9F7C4D2AC332EE008AE1EA /* LlamaState.swift in Sources */,
268213
8A1C83792AC328BD0096AF73 /* ContentView.swift in Sources */,
269214
8A1C83772AC328BD0096AF73 /* llama_swiftuiApp.swift in Sources */,
270215
7FA3D2B32B2EA2F600543F92 /* DownloadButton.swift in Sources */,
271-
542EA0A02AC8725700A8AEE9 /* ggml-alloc.c in Sources */,
272-
5423760B2B0D9C4B008E6A1C /* ggml-backend.c in Sources */,
273216
);
274217
runOnlyForDeploymentPostprocessing = 0;
275218
};
@@ -399,11 +342,9 @@
399342
isa = XCBuildConfiguration;
400343
buildSettings = {
401344
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
402-
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
403345
CLANG_ENABLE_MODULES = YES;
404346
CODE_SIGN_STYLE = Automatic;
405347
CURRENT_PROJECT_VERSION = 1;
406-
DEVELOPMENT_ASSET_PATHS = "\"llama.swiftui/Preview Content\"";
407348
DEVELOPMENT_TEAM = STLSG3FG8Q;
408349
ENABLE_PREVIEWS = YES;
409350
GENERATE_INFOPLIST_FILE = YES;
@@ -423,7 +364,6 @@
423364
SUPPORTED_PLATFORMS = "iphoneos iphonesimulator xros xrsimulator";
424365
SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO;
425366
SWIFT_EMIT_LOC_STRINGS = YES;
426-
SWIFT_OBJC_BRIDGING_HEADER = "llama.cpp.swift/bridging-header.h";
427367
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
428368
SWIFT_VERSION = 5.0;
429369
TARGETED_DEVICE_FAMILY = "1,2,7";
@@ -434,11 +374,9 @@
434374
isa = XCBuildConfiguration;
435375
buildSettings = {
436376
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
437-
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
438377
CLANG_ENABLE_MODULES = YES;
439378
CODE_SIGN_STYLE = Automatic;
440379
CURRENT_PROJECT_VERSION = 1;
441-
DEVELOPMENT_ASSET_PATHS = "\"llama.swiftui/Preview Content\"";
442380
DEVELOPMENT_TEAM = STLSG3FG8Q;
443381
ENABLE_PREVIEWS = YES;
444382
GENERATE_INFOPLIST_FILE = YES;
@@ -458,7 +396,6 @@
458396
SUPPORTED_PLATFORMS = "iphoneos iphonesimulator xros xrsimulator";
459397
SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO;
460398
SWIFT_EMIT_LOC_STRINGS = YES;
461-
SWIFT_OBJC_BRIDGING_HEADER = "llama.cpp.swift/bridging-header.h";
462399
SWIFT_VERSION = 5.0;
463400
TARGETED_DEVICE_FAMILY = "1,2,7";
464401
};
@@ -486,6 +423,13 @@
486423
defaultConfigurationName = Release;
487424
};
488425
/* End XCConfigurationList section */
426+
427+
/* Begin XCSwiftPackageProductDependency section */
428+
DF810E122B4A5BA200301144 /* llama */ = {
429+
isa = XCSwiftPackageProductDependency;
430+
productName = llama;
431+
};
432+
/* End XCSwiftPackageProductDependency section */
489433
};
490434
rootObject = 8A1C836B2AC328BD0096AF73 /* Project object */;
491435
}

examples/llama.swiftui/llama.swiftui/Assets.xcassets/AccentColor.colorset/Contents.json

Lines changed: 0 additions & 11 deletions
This file was deleted.

examples/llama.swiftui/llama.swiftui/Preview Content/Preview Assets.xcassets/Contents.json

Lines changed: 0 additions & 6 deletions
This file was deleted.

0 commit comments

Comments
 (0)