river/build.zig
2020-04-11 23:10:56 +02:00

51 lines
1.7 KiB
Zig

const Builder = @import("std").build.Builder;
pub fn build(b: *Builder) void {
// Standard target options allows the person running `zig build` to choose
// what target to build for. Here we do not override the defaults, which
// means any target is allowed, and the default is native. Other options
// for restricting supported target set are available.
const target = b.standardTargetOptions(.{});
// Standard release options allow the person running `zig build` to select
// between Debug, ReleaseSafe, ReleaseFast, and ReleaseSmall.
const mode = b.standardReleaseOptions();
const exe = b.addExecutable("river", "src/main.zig");
exe.setTarget(target);
exe.setBuildMode(mode);
exe.addIncludeDir(".");
exe.addIncludeDir("protocol");
exe.addCSourceFile("include/render.c", &[_][]const u8{"-std=c99"});
exe.linkLibC();
exe.linkSystemLibrary("wayland-server");
exe.linkSystemLibrary("wlroots");
exe.linkSystemLibrary("xkbcommon");
exe.install();
const run_cmd = exe.run();
run_cmd.step.dependOn(b.getInstallStep());
const run_step = b.step("run", "Run the compositor");
run_step.dependOn(&run_cmd.step);
const test_exe = b.addTest("src/test_main.zig");
test_exe.setTarget(target);
test_exe.setBuildMode(mode);
test_exe.addIncludeDir(".");
test_exe.addIncludeDir("protocol");
test_exe.addCSourceFile("include/render.c", &[_][]const u8{"-std=c99"});
test_exe.linkLibC();
test_exe.linkSystemLibrary("wayland-server");
test_exe.linkSystemLibrary("wlroots");
test_exe.linkSystemLibrary("xkbcommon");
const test_step = b.step("test", "Run the tests");
test_step.dependOn(&test_exe.step);
}