const std = @import("std"); const builtin = @import("builtin"); pub fn build(b: *std.Build) void { const target = b.standardTargetOptions(.{}); const optimize = b.standardOptimizeOption(.{}); const root = b.addModule("game-mod", .{ .optimize = optimize, .target = target, .link_libc = true, }); root.addCSourceFiles(.{ .files = &[_][]const u8 { "src/main.c", "src/utils/stringBuilder.c", "src/wren_inter/wren_inter.c", "src/resources/resources.c", "src/ui_elements/UI.c", "src/ui_elements/TextEditor.c", "src/scenes/sceneManager.c", "src/scenes/mainMenu.c", "src/scenes/resultView.c", "src/scenes/puzzleScene.c", "src/puzzles/puzzle.c", } }); // Linking raylib if (builtin.target.os.tag == .windows) { // If you are building on windows you need to provide your own // raylib. Put it in the raylib dir root.addLibraryPath(b.path("raylib/lib/")); root.addIncludePath(b.path("raylib/include/")); } root.linkSystemLibrary("raylib", .{.needed = true}); root.addIncludePath(b.path("include/")); // Linking wren. They do not provide system-wide libraries so you have to // provide them yourself root.addIncludePath(b.path("wren/src/include/")); root.addLibraryPath(b.path("wren/lib/")); root.linkSystemLibrary("wren", .{ .needed = true, .preferred_link_mode = .static, }); const exe = b.addExecutable(.{ .name = "game", .root_module = root, }); b.installArtifact(exe); const run_step = b.step("run", "Run the app"); const run_cmd = b.addRunArtifact(exe); run_step.dependOn(&run_cmd.step); if (b.args) |args| { run_cmd.addArgs(args); } }