// // build // Zig version: 0.9.0 // Author: Nikolas Wipper // Date: 2020-02-15 // const std = @import("std"); const Builder = std.build.Builder; const raylib = @import("lib.zig").Pkg("."); const Program = struct { name: []const u8, path: []const u8, desc: []const u8, }; pub fn build(b: *Builder) void { const mode = b.standardReleaseOptions(); const target = b.standardTargetOptions(.{}); const examples = [_]Program{ .{ .name = "basic_window", .path = "examples/core/basic_window.zig", .desc = "Creates a basic window with text", }, .{ .name = "input_keys", .path = "examples/core/input_keys.zig", .desc = "Simple keyboard input", }, .{ .name = "input_mouse", .path = "examples/core/input_mouse.zig", .desc = "Simple mouse input", }, .{ .name = "input_mouse_wheel", .path = "examples/core/input_mouse_wheel.zig", .desc = "Mouse wheel input", }, .{ .name = "input_multitouch", .path = "examples/core/input_multitouch.zig", .desc = "Multitouch input", }, .{ .name = "2d_camera", .path = "examples/core/2d_camera.zig", .desc = "Shows the functionality of a 2D camera", }, // .{ // .name = "models_loading", // .path = "examples/models/models_loading.zig", // .desc = "Loads a model and renders it", // }, // .{ // .name = "shaders_basic_lighting", // .path = "examples/shaders/shaders_basic_lighting.zig", // .desc = "Loads a model and renders it", // }, }; const examples_step = b.step("examples", "Builds all the examples"); const system_lib = b.option(bool, "system-raylib", "link to preinstalled raylib libraries") orelse false; for (examples) |ex| { const exe = b.addExecutable(ex.name, ex.path); exe.setBuildMode(mode); exe.setTarget(target); raylib.link(exe, system_lib); raylib.addAsPackage("raylib", exe); raylib.math.addAsPackage("raylib-math", exe); const run_cmd = exe.run(); const run_step = b.step(ex.name, ex.desc); run_step.dependOn(&run_cmd.step); examples_step.dependOn(&exe.step); } }