Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
41 changes: 13 additions & 28 deletions build.zig
Original file line number Diff line number Diff line change
Expand Up @@ -97,10 +97,11 @@ fn buildLlamaCpp(
defer model_files.deinit();

const src_shader_path = llama_dep.path("src/models");
var iterable_dir = std.fs.cwd().openDir(src_shader_path.getPath(b), .{ .iterate = true }) catch @panic("failed to open generated shaders dir");
defer iterable_dir.close();
const io = b.graph.io;
var iterable_dir = std.Io.Dir.cwd().openDir(io, src_shader_path.getPath(b), .{ .iterate = true }) catch @panic("failed to open generated shaders dir");
defer iterable_dir.close(io);
var it = iterable_dir.iterate();
while (it.next() catch @panic("failed to iterate models dir")) |entry| {
while (it.next(io) catch @panic("failed to iterate models dir")) |entry| {
if (std.mem.endsWith(u8, entry.name, ".cpp")) {
const cpp = b.dupe(entry.name);
model_files.append(cpp) catch @panic("failed to add model cpp");
Expand Down Expand Up @@ -605,42 +606,26 @@ fn listFilesWithExtension(
base_path: std.Build.LazyPath,
ext: []const u8,
) ![]const std.Build.LazyPath {
var count: usize = 0;
const io = b.graph.io;

var iterable_dir = try std.fs.cwd().openDir(
var iterable_dir = try std.Io.Dir.cwd().openDir(
io,
base_path.getPath(b),
.{
.iterate = true,
},
);
defer iterable_dir.close();
defer iterable_dir.close(io);
var it = iterable_dir.iterate();
while (try it.next()) |entry| {
if (std.mem.endsWith(
u8,
entry.name,
ext,
)) {
count += 1;
}
}
it.reset();

const paths = try b.allocator.alloc(std.Build.LazyPath, count);

var i: usize = 0;
while (try it.next()) |entry| {
if (std.mem.endsWith(
u8,
entry.name,
ext,
)) {
paths[i] = base_path.path(b, entry.name);
i += 1;
var list = std.array_list.Managed(std.Build.LazyPath).init(b.allocator);
while (try it.next(io)) |entry| {
if (std.mem.endsWith(u8, entry.name, ext)) {
try list.append(base_path.path(b, entry.name));
}
}

return paths;
return list.items;
}

fn linkVulkanSystem(
Expand Down
2 changes: 1 addition & 1 deletion build.zig.zon
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
.name = .llama_cpp_zig,
.version = "0.0.1",
.fingerprint = 0x2177db0a68159fe6, // Changing this has security and trust implications.
.minimum_zig_version = "0.15.1",
.minimum_zig_version = "0.16.0-dev.2877+627f03af9",
.dependencies = .{
.llama_cpp = .{
.url = "git+https://github.com/ggml-org/llama.cpp#d969e933e172821b4519f66aa4b660bc0846b320",
Expand Down
43 changes: 14 additions & 29 deletions ggml/build.zig
Original file line number Diff line number Diff line change
Expand Up @@ -340,10 +340,11 @@ fn buildVulkanShaders(

// add each shader
const src_shader_path = ggml_dep.path(src_prefix ++ "src/ggml-vulkan/vulkan-shaders/");
var iterable_dir = std.fs.cwd().openDir(src_shader_path.getPath(b), .{ .iterate = true }) catch @panic("failed to open generated shaders dir");
defer iterable_dir.close();
const io = b.graph.io;
var iterable_dir = std.Io.Dir.cwd().openDir(io, src_shader_path.getPath(b), .{ .iterate = true }) catch @panic("failed to open generated shaders dir");
defer iterable_dir.close(io);
var it = iterable_dir.iterate();
while (it.next() catch @panic("failed to iterate generated shaders dir")) |entry| {
while (it.next(io) catch @panic("failed to iterate generated shaders dir")) |entry| {
if (std.mem.endsWith(u8, entry.name, ".comp")) {
const cpp = b.fmt("{s}.cpp", .{entry.name});
shader_files.append(cpp) catch @panic("failed to add generated shader cpp");
Expand Down Expand Up @@ -508,42 +509,26 @@ fn listFilesWithExtension(
base_path: std.Build.LazyPath,
ext: []const u8,
) ![]const std.Build.LazyPath {
var count: usize = 0;
const io = b.graph.io;

var iterable_dir = try std.fs.cwd().openDir(
var iterable_dir = try std.Io.Dir.cwd().openDir(
io,
base_path.getPath(b),
.{
.iterate = true,
},
);
defer iterable_dir.close();
defer iterable_dir.close(io);
var it = iterable_dir.iterate();
while (try it.next()) |entry| {
if (std.mem.endsWith(
u8,
entry.name,
ext,
)) {
count += 1;
}
}
it.reset();

const paths = try b.allocator.alloc(std.Build.LazyPath, count);

var i: usize = 0;
while (try it.next()) |entry| {
if (std.mem.endsWith(
u8,
entry.name,
ext,
)) {
paths[i] = base_path.path(b, entry.name);
i += 1;

var list = std.array_list.Managed(std.Build.LazyPath).init(b.allocator);
while (try it.next(io)) |entry| {
if (std.mem.endsWith(u8, entry.name, ext)) {
try list.append(base_path.path(b, entry.name));
}
}

return paths;
return list.items;
}

const cflags: []const []const u8 = &.{
Expand Down