Skip to content

Commit 7393ba5

Browse files
committed
ios : fix objc and swift builds
1 parent 4dcc62b commit 7393ba5

File tree

3 files changed

+38
-7
lines changed

3 files changed

+38
-7
lines changed

Package.swift

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,14 +43,15 @@ let package = Package(
4343
"ggml/src/ggml-cpu/ggml-cpu-quants.c",
4444
"ggml/src/ggml-quants.c",
4545
"ggml/src/ggml-threading.cpp",
46-
"ggml/src/ggml-metal.m"
46+
"ggml/src/ggml-metal/ggml-metal.m"
4747
],
4848
resources: [.process("ggml/src/ggml-metal/ggml-metal.metal")],
4949
publicHeadersPath: "spm-headers",
5050
cSettings: [
5151
.unsafeFlags(["-Wno-shorten-64-to-32", "-O3", "-DNDEBUG"]),
52-
.define("GGML_USE_ACCELERATE"),
5352
.unsafeFlags(["-fno-objc-arc"]),
53+
.headerSearchPath("ggml/src"),
54+
.define("GGML_USE_ACCELERATE"),
5455
.define("GGML_USE_METAL")
5556
// NOTE: NEW_LAPACK will required iOS version 16.4+
5657
// We should consider add this in the future when we drop support for iOS 14

examples/whisper.objc/whisper.objc.xcodeproj/project.pbxproj

Lines changed: 35 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,11 @@
2525
18ABE15A2AF556340044A204 /* ggml-backend.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 18ABE1572AF556340044A204 /* ggml-backend.cpp */; };
2626
18ABE15B2AF556340044A204 /* ggml-quants.c in Sources */ = {isa = PBXBuildFile; fileRef = 18ABE1592AF556340044A204 /* ggml-quants.c */; };
2727
18E864A92CE73C1E0094B8B3 /* ggml-cpu.c in Sources */ = {isa = PBXBuildFile; fileRef = 18E864A82CE73C1E0094B8B3 /* ggml-cpu.c */; };
28+
18F8C0BC2CEDF4DC00CAD607 /* ggml-threading.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 18F8C0BB2CEDF4DC00CAD607 /* ggml-threading.cpp */; };
29+
18F8C0BE2CEDF50700CAD607 /* ggml-cpu.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 18F8C0BD2CEDF50700CAD607 /* ggml-cpu.cpp */; };
30+
18F8C0C42CEDF52700CAD607 /* ggml-cpu-aarch64.c in Sources */ = {isa = PBXBuildFile; fileRef = 18F8C0C02CEDF52700CAD607 /* ggml-cpu-aarch64.c */; };
31+
18F8C0C52CEDF52700CAD607 /* ggml-cpu-quants.c in Sources */ = {isa = PBXBuildFile; fileRef = 18F8C0C32CEDF52700CAD607 /* ggml-cpu-quants.c */; };
32+
18F8C0C72CEDF7AB00CAD607 /* ggml-backend-reg.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 18F8C0C62CEDF7AB00CAD607 /* ggml-backend-reg.cpp */; };
2833
7FE3424B2A0C3FA20015A058 /* whisper-encoder-impl.m in Sources */ = {isa = PBXBuildFile; fileRef = 7FE342452A0C3FA20015A058 /* whisper-encoder-impl.m */; };
2934
7FE3424C2A0C3FA20015A058 /* whisper-encoder.mm in Sources */ = {isa = PBXBuildFile; fileRef = 7FE342472A0C3FA20015A058 /* whisper-encoder.mm */; };
3035
7FE3424D2A0C3FA20015A058 /* whisper-decoder-impl.m in Sources */ = {isa = PBXBuildFile; fileRef = 7FE3424A2A0C3FA20015A058 /* whisper-decoder-impl.m */; };
@@ -50,8 +55,8 @@
5055
18133C7F2C64E342005CEAAC /* ggml-aarch64.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = "ggml-aarch64.c"; path = "../../../ggml/src/ggml-aarch64.c"; sourceTree = "<group>"; };
5156
184447182AB211A2007D6BFE /* ggml-alloc.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = "ggml-alloc.c"; path = "../../../ggml/src/ggml-alloc.c"; sourceTree = "<group>"; };
5257
184447192AB211A2007D6BFE /* ggml-alloc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "ggml-alloc.h"; path = "../../../ggml/include/ggml-alloc.h"; sourceTree = "<group>"; };
53-
1844471B2AB21655007D6BFE /* ggml-metal.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = "ggml-metal.m"; path = "../../../ggml/src/ggml-metal.m"; sourceTree = "<group>"; };
54-
1844471D2AB2195F007D6BFE /* ggml-metal.metal */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.metal; name = "ggml-metal.metal"; path = "../../../ggml/src/ggml-metal.metal"; sourceTree = "<group>"; };
58+
1844471B2AB21655007D6BFE /* ggml-metal.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = "ggml-metal.m"; path = "../../../ggml/src/ggml-metal/ggml-metal.m"; sourceTree = "<group>"; };
59+
1844471D2AB2195F007D6BFE /* ggml-metal.metal */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.metal; name = "ggml-metal.metal"; path = "../../../ggml/src/ggml-metal/ggml-metal.metal"; sourceTree = "<group>"; };
5560
18627C7629052BDF00BD2A04 /* whisper.objc.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = whisper.objc.app; sourceTree = BUILT_PRODUCTS_DIR; };
5661
18627C7929052BDF00BD2A04 /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = "<group>"; };
5762
18627C7A29052BDF00BD2A04 /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = "<group>"; };
@@ -77,8 +82,17 @@
7782
18ABE1572AF556340044A204 /* ggml-backend.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 4; name = "ggml-backend.cpp"; path = "../../../ggml/src/ggml-backend.cpp"; sourceTree = "<group>"; };
7883
18ABE1582AF556340044A204 /* ggml-impl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "ggml-impl.h"; path = "../../../ggml/src/ggml-impl.h"; sourceTree = "<group>"; };
7984
18ABE1592AF556340044A204 /* ggml-quants.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = "ggml-quants.c"; path = "../../../ggml/src/ggml-quants.c"; sourceTree = "<group>"; };
80-
18E864A82CE73C1E0094B8B3 /* ggml-cpu.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "ggml-cpu.c"; path = "../../../ggml/src/ggml-cpu.c"; sourceTree = "<group>"; };
85+
18E864A82CE73C1E0094B8B3 /* ggml-cpu.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "ggml-cpu.c"; path = "../../../ggml/src/ggml-cpu/ggml-cpu.c"; sourceTree = "<group>"; };
8186
18E864AA2CE73C580094B8B3 /* ggml-cpu.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "ggml-cpu.h"; path = "../../../ggml/include/ggml-cpu.h"; sourceTree = "<group>"; };
87+
18F8C0BA2CEDF4DC00CAD607 /* ggml-threading.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "ggml-threading.h"; path = "../../../ggml/src/ggml-threading.h"; sourceTree = "<group>"; };
88+
18F8C0BB2CEDF4DC00CAD607 /* ggml-threading.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "ggml-threading.cpp"; path = "../../../ggml/src/ggml-threading.cpp"; sourceTree = "<group>"; };
89+
18F8C0BD2CEDF50700CAD607 /* ggml-cpu.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "ggml-cpu.cpp"; path = "../../../ggml/src/ggml-cpu/ggml-cpu.cpp"; sourceTree = "<group>"; };
90+
18F8C0BF2CEDF52700CAD607 /* ggml-cpu-aarch64.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "ggml-cpu-aarch64.h"; path = "../../../ggml/src/ggml-cpu/ggml-cpu-aarch64.h"; sourceTree = "<group>"; };
91+
18F8C0C02CEDF52700CAD607 /* ggml-cpu-aarch64.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "ggml-cpu-aarch64.c"; path = "../../../ggml/src/ggml-cpu/ggml-cpu-aarch64.c"; sourceTree = "<group>"; };
92+
18F8C0C12CEDF52700CAD607 /* ggml-cpu-impl.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "ggml-cpu-impl.h"; path = "../../../ggml/src/ggml-cpu/ggml-cpu-impl.h"; sourceTree = "<group>"; };
93+
18F8C0C22CEDF52700CAD607 /* ggml-cpu-quants.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "ggml-cpu-quants.h"; path = "../../../ggml/src/ggml-cpu/ggml-cpu-quants.h"; sourceTree = "<group>"; };
94+
18F8C0C32CEDF52700CAD607 /* ggml-cpu-quants.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = "ggml-cpu-quants.c"; path = "../../../ggml/src/ggml-cpu/ggml-cpu-quants.c"; sourceTree = "<group>"; };
95+
18F8C0C62CEDF7AB00CAD607 /* ggml-backend-reg.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "ggml-backend-reg.cpp"; path = "../../../ggml/src/ggml-backend-reg.cpp"; sourceTree = "<group>"; };
8296
7FE342452A0C3FA20015A058 /* whisper-encoder-impl.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "whisper-encoder-impl.m"; sourceTree = "<group>"; };
8397
7FE342462A0C3FA20015A058 /* whisper-encoder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "whisper-encoder.h"; sourceTree = "<group>"; };
8498
7FE342472A0C3FA20015A058 /* whisper-encoder.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = "whisper-encoder.mm"; sourceTree = "<group>"; };
@@ -118,6 +132,15 @@
118132
18627C7829052BDF00BD2A04 /* whisper.objc */ = {
119133
isa = PBXGroup;
120134
children = (
135+
18F8C0C62CEDF7AB00CAD607 /* ggml-backend-reg.cpp */,
136+
18F8C0BF2CEDF52700CAD607 /* ggml-cpu-aarch64.h */,
137+
18F8C0C02CEDF52700CAD607 /* ggml-cpu-aarch64.c */,
138+
18F8C0C12CEDF52700CAD607 /* ggml-cpu-impl.h */,
139+
18F8C0C22CEDF52700CAD607 /* ggml-cpu-quants.h */,
140+
18F8C0C32CEDF52700CAD607 /* ggml-cpu-quants.c */,
141+
18F8C0BD2CEDF50700CAD607 /* ggml-cpu.cpp */,
142+
18F8C0BA2CEDF4DC00CAD607 /* ggml-threading.h */,
143+
18F8C0BB2CEDF4DC00CAD607 /* ggml-threading.cpp */,
121144
18E864AA2CE73C580094B8B3 /* ggml-cpu.h */,
122145
18E864A82CE73C1E0094B8B3 /* ggml-cpu.c */,
123146
18133C7F2C64E342005CEAAC /* ggml-aarch64.c */,
@@ -252,11 +275,16 @@
252275
18627C9629052C5800BD2A04 /* ggml.c in Sources */,
253276
18627C7B29052BDF00BD2A04 /* AppDelegate.m in Sources */,
254277
7FE3424D2A0C3FA20015A058 /* whisper-decoder-impl.m in Sources */,
278+
18F8C0C72CEDF7AB00CAD607 /* ggml-backend-reg.cpp in Sources */,
279+
18F8C0BE2CEDF50700CAD607 /* ggml-cpu.cpp in Sources */,
255280
1844471A2AB211A2007D6BFE /* ggml-alloc.c in Sources */,
281+
18F8C0C42CEDF52700CAD607 /* ggml-cpu-aarch64.c in Sources */,
282+
18F8C0C52CEDF52700CAD607 /* ggml-cpu-quants.c in Sources */,
256283
18E864A92CE73C1E0094B8B3 /* ggml-cpu.c in Sources */,
257284
18ABE15A2AF556340044A204 /* ggml-backend.cpp in Sources */,
258285
18627C8C29052BE000BD2A04 /* main.m in Sources */,
259286
18627C7E29052BDF00BD2A04 /* SceneDelegate.m in Sources */,
287+
18F8C0BC2CEDF4DC00CAD607 /* ggml-threading.cpp in Sources */,
260288
1844471C2AB21655007D6BFE /* ggml-metal.m in Sources */,
261289
7FE3424B2A0C3FA20015A058 /* whisper-encoder-impl.m in Sources */,
262290
);
@@ -335,6 +363,7 @@
335363
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
336364
GCC_WARN_UNUSED_FUNCTION = YES;
337365
GCC_WARN_UNUSED_VARIABLE = YES;
366+
HEADER_SEARCH_PATHS = "";
338367
IPHONEOS_DEPLOYMENT_TARGET = 16.0;
339368
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
340369
MTL_FAST_MATH = YES;
@@ -388,6 +417,7 @@
388417
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
389418
GCC_WARN_UNUSED_FUNCTION = YES;
390419
GCC_WARN_UNUSED_VARIABLE = YES;
420+
HEADER_SEARCH_PATHS = "";
391421
IPHONEOS_DEPLOYMENT_TARGET = 16.0;
392422
MTL_ENABLE_DEBUG_INFO = NO;
393423
MTL_FAST_MATH = YES;
@@ -410,6 +440,7 @@
410440
DEVELOPMENT_TEAM = P8JZH34X63;
411441
GCC_WARN_64_TO_32_BIT_CONVERSION = NO;
412442
GENERATE_INFOPLIST_FILE = YES;
443+
HEADER_SEARCH_PATHS = ../../../ggml/src/;
413444
INFOPLIST_FILE = whisper.objc/Info.plist;
414445
INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES;
415446
INFOPLIST_KEY_UILaunchStoryboardName = LaunchScreen;
@@ -439,6 +470,7 @@
439470
DEVELOPMENT_TEAM = P8JZH34X63;
440471
GCC_WARN_64_TO_32_BIT_CONVERSION = NO;
441472
GENERATE_INFOPLIST_FILE = YES;
473+
HEADER_SEARCH_PATHS = ../../../ggml/src/;
442474
INFOPLIST_FILE = whisper.objc/Info.plist;
443475
INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES;
444476
INFOPLIST_KEY_UILaunchStoryboardName = LaunchScreen;

examples/whisper.swiftui/whisper.cpp.swift/LibWhisper.swift

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -67,8 +67,6 @@ actor WhisperContext {
6767
private func systemInfo() -> String {
6868
var info = ""
6969
if (ggml_cpu_has_neon() != 0) { info += "NEON " }
70-
if (ggml_cpu_has_metal() != 0) { info += "METAL " }
71-
if (ggml_cpu_has_blas() != 0) { info += "BLAS " }
7270
return String(info.dropLast())
7371
}
7472

0 commit comments

Comments
 (0)