Skip to content

Commit

Permalink
zig : add zig build system support (#279)
Browse files Browse the repository at this point in the history
* add zig build system support

* add zig build system support
  • Loading branch information
codingonion committed Jun 24, 2023
1 parent b10834c commit 744e614
Show file tree
Hide file tree
Showing 2 changed files with 60 additions and 0 deletions.
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -16,3 +16,6 @@ CMakeSettings.json

src/arm_neon.h
tests/arm_neon.h

zig-out/
zig-cache/
57 changes: 57 additions & 0 deletions build.zig
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
const std = @import("std");

// Zig Version: 0.11.0-dev.3379+629f0d23b
pub fn build(b: *std.build.Builder) void {
const target = b.standardTargetOptions(.{});
const optimize = b.standardOptimizeOption(.{});
const lib = b.addStaticLibrary(.{
.name = "ggml",
.target = target,
.optimize = optimize,
});
lib.linkLibC();
lib.linkLibCpp();
lib.addIncludePath(".");
lib.addIncludePath("./include");
lib.addIncludePath("./include/ggml");
lib.addIncludePath("./examples");
lib.addCSourceFiles(&.{
"src/ggml.c",
}, &.{"-std=c11"});
b.installArtifact(lib);

const examples = .{
"dolly-v2",
"gpt-2",
"gpt-j",
"gpt-neox",
"mnist",
"mpt",
"replit",
"starcoder",
};

inline for (examples) |example_name| {
const exe = b.addExecutable(.{
.name = example_name,
.target = target,
.optimize = optimize,
});
exe.addIncludePath(".");
exe.addIncludePath("./include");
exe.addIncludePath("./include/ggml");
exe.addIncludePath("./examples");
exe.addCSourceFiles(&.{
std.fmt.comptimePrint("examples/{s}/{s}.cpp", .{example_name, "main"}),
"examples/common.cpp",
"examples/common-ggml.cpp",
}, &.{"-std=c++11"});
exe.linkLibrary(lib);
b.installArtifact(exe);
const run_cmd = b.addRunArtifact(exe);
run_cmd.step.dependOn(b.getInstallStep());
if (b.args) |args| run_cmd.addArgs(args);
const run_step = b.step("run_" ++ example_name, "Run the app");
run_step.dependOn(&run_cmd.step);
}
}

0 comments on commit 744e614

Please sign in to comment.