ona/build.zig

81 lines
2.5 KiB
Zig

const std = @import("std");
pub fn build(builder: *std.build.Builder) void {
const target = builder.standardTargetOptions(.{});
const mode = builder.standardReleaseOptions();
// Ona executable.
{
const ona_exe = builder.addExecutable("ona", "src/main.zig");
ona_exe.setTarget(target);
ona_exe.setBuildMode(mode);
ona_exe.install();
ona_exe.addIncludeDir("./ext");
ona_exe.linkSystemLibrary("sdl2");
// Lua dependency.
ona_exe.linkLibrary(link_lua: {
const lua_lib = builder.addStaticLibrary("lua", null);
lua_lib.addIncludeDir("./ext/lua");
lua_lib.linkLibC();
// TODO: Implement support for more than Linux.
lua_lib.addCSourceFiles(&.{
"./ext/lua/lapi.c",
"./ext/lua/lauxlib.c",
"./ext/lua/lbaselib.c",
"./ext/lua/lcode.c",
"./ext/lua/lcorolib.c",
"./ext/lua/lctype.c",
"./ext/lua/ldblib.c",
"./ext/lua/ldebug.c",
"./ext/lua/ldo.c",
"./ext/lua/ldump.c",
"./ext/lua/lfunc.c",
"./ext/lua/lgc.c",
"./ext/lua/llex.c",
"./ext/lua/lmathlib.c",
"./ext/lua/lmem.c",
"./ext/lua/loadlib.c",
"./ext/lua/lobject.c",
"./ext/lua/lopcodes.c",
"./ext/lua/loslib.c",
"./ext/lua/lparser.c",
"./ext/lua/lstate.c",
"./ext/lua/lstring.c",
"./ext/lua/lstrlib.c",
"./ext/lua/ltablib.c",
"./ext/lua/lundump.c",
"./ext/lua/lutf8lib.c",
"./ext/lua/lvm.c",
"./ext/lua/lzio.c",
"./ext/lua/ltable.c",
"./ext/lua/ltm.c",
}, &.{"-DLUA_USE_LINUX", "-Wl"});
lua_lib.install();
break: link_lua lua_lib;
});
const run_cmd = ona_exe.run();
run_cmd.step.dependOn(builder.getInstallStep());
if (builder.args) |args| run_cmd.addArgs(args);
builder.step("run", "Run Ona application").dependOn(&run_cmd.step);
}
// Ona tests.
{
const ona_tests = builder.addTest("src/main.zig");
ona_tests.setTarget(target);
ona_tests.setBuildMode(mode);
builder.step("test", "Run Ona unit tests").dependOn(&ona_tests.step);
}
}