aboutsummaryrefslogtreecommitdiff
path: root/build.zig
diff options
context:
space:
mode:
Diffstat (limited to 'build.zig')
-rw-r--r--build.zig58
1 files changed, 30 insertions, 28 deletions
diff --git a/build.zig b/build.zig
index 98107fc..5306693 100644
--- a/build.zig
+++ b/build.zig
@@ -1,54 +1,56 @@
const std = @import("std");
-pub fn build(b: *std.Build) void {
+pub fn build(b: *std.Build) !void {
const target = b.standardTargetOptions(.{});
- const optimize = b.standardOptimizeOption(.{});
+ const optimize = b.standardOptimizeOption(.{ .preferred_optimize_mode = .ReleaseSafe });
const exe = b.addExecutable(.{
.name = "particle-sim",
- .root_source_file = b.path("src/main.zig"),
+ .root_source_file = .{ .path = "src/main.zig" },
.target = target,
.optimize = optimize,
});
+ exe.linkLibCpp();
- const raylib_dep = b.dependency("raylib-zig", .{
+ const raylib_zig = b.dependency("raylib-zig", .{
.target = target,
.optimize = optimize,
});
-
- const raylib = raylib_dep.module("raylib"); // main raylib module
- const raygui = raylib_dep.module("raygui"); // raygui module
- const raylib_artifact = raylib_dep.artifact("raylib"); // raylib C library
-
- raylib_artifact.linkLibC();
- raylib.link_libc = true;
- raygui.link_libc = true;
- exe.linkLibC();
+ const raylib = raylib_zig.module("raylib");
+ const raylib_artifact = raylib_zig.artifact("raylib");
exe.linkLibrary(raylib_artifact);
exe.root_module.addImport("raylib", raylib);
- exe.root_module.addImport("raygui", raygui);
+
+ const zgui = b.dependency("zgui", .{
+ .shared = false,
+ .with_implot = true,
+ });
+ exe.root_module.addImport("zgui", zgui.module("root"));
+ exe.linkLibrary(zgui.artifact("imgui"));
+ exe.addIncludePath(.{ .path = "vendor/zgui/libs/imgui" });
+
+ const rlimgui = b.dependency("rlimgui", .{
+ .target = target,
+ .optimize = optimize,
+ });
+ exe.root_module.addCSourceFile(.{
+ .file = rlimgui.path("rlImGui.cpp"),
+ .flags = &.{
+ "-fno-sanitize=undefined",
+ "-std=c++11",
+ "-Wno-deprecated-declarations",
+ "-DNO_FONT_AWESOME",
+ },
+ });
+ exe.addIncludePath(rlimgui.path("."));
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", "Run the app");
run_step.dependOn(&run_cmd.step);
-
- const exe_unit_tests = b.addTest(.{
- .root_source_file = b.path("src/main.zig"),
- .target = target,
- .optimize = optimize,
- });
-
- const run_exe_unit_tests = b.addRunArtifact(exe_unit_tests);
-
- const test_step = b.step("test", "Run unit tests");
- test_step.dependOn(&run_exe_unit_tests.step);
}