Skip to content

Commit 4b8a1e9

Browse files
committed
fix macos build
1 parent 54f78c3 commit 4b8a1e9

File tree

2 files changed

+14
-3
lines changed

2 files changed

+14
-3
lines changed

build.zig

+13-2
Original file line numberDiff line numberDiff line change
@@ -194,6 +194,17 @@ pub fn build(b: *std.Build) !void {
194194
.link_lib_cpp = false,
195195
.flags = cflags.items,
196196
});
197+
const airCommand = b.addSystemCommand(&.{ "xcrun", "-sdk", "macosx", "metal", "-O3", "-c" });
198+
airCommand.addFileArg(.{ .path = "llama.cpp/ggml-metal.metal" });
199+
airCommand.addArg("-o");
200+
const air = airCommand.addOutputFileArg("ggml-metal.air");
201+
202+
const libCommand = b.addSystemCommand(&.{ "xcrun", "-sdk", "macosx", "metallib" });
203+
libCommand.addFileArg(air);
204+
libCommand.addArg("-o");
205+
const lib = libCommand.addOutputFileArg("default.metallib");
206+
const libInstall = b.addInstallLibFile(lib, "default.metallib");
207+
b.getInstallStep().dependOn(&libInstall.step);
197208
try objs.append(ggml_metal);
198209
} else {
199210
const ggml_vulkan = buildObj(.{
@@ -229,8 +240,8 @@ pub fn build(b: *std.Build) !void {
229240
extension.linkFramework("MetalKit");
230241
extension.linkFramework("Foundation");
231242
extension.linkFramework("Accelerate");
232-
b.installFile("llama.cpp/ggml-metal.metal", b.pathJoin(&.{ std.fs.path.basename(b.lib_dir), "ggml-metal.metal" }));
233-
b.installFile("llama.cpp/ggml-common.h", b.pathJoin(&.{ std.fs.path.basename(b.lib_dir), "ggml-common.h" }));
243+
// b.installFile("llama.cpp/ggml-metal.metal", b.pathJoin(&.{ std.fs.path.basename(b.lib_dir), "ggml-metal.metal" }));
244+
// b.installFile("llama.cpp/ggml-common.h", b.pathJoin(&.{ std.fs.path.basename(b.lib_dir), "ggml-common.h" }));
234245
} else {
235246
if (target.result.os.tag == .windows) {
236247
const vk_path = b.graph.env_map.get("VK_SDK_PATH") orelse @panic("VK_SDK_PATH not set");

llama.cpp

0 commit comments

Comments
 (0)