From 316f2354d155d7fb706e6cfa1d09b7db8896b92f Mon Sep 17 00:00:00 2001 From: Stephen Gutekanst Date: Sun, 16 Jun 2024 09:47:16 -0700 Subject: [PATCH] mach: add centralized is_debug flag Signed-off-by: Stephen Gutekanst --- src/main.zig | 2 ++ src/module/Archetype.zig | 5 +++-- src/module/entities.zig | 5 ++++- src/module/module.zig | 5 +++-- 4 files changed, 12 insertions(+), 5 deletions(-) diff --git a/src/main.zig b/src/main.zig index 667a653b..f2a99011 100644 --- a/src/main.zig +++ b/src/main.zig @@ -50,6 +50,8 @@ pub const Entities = @import("module/main.zig").Entities; pub const use_sysgpu = if (@hasDecl(@import("root"), "use_sysgpu")) @import("root").use_sysgpu else false; pub const gpu = if (use_sysgpu) sysgpu.sysgpu else wgpu; +pub const is_debug = builtin.mode == .Debug; + test { const std = @import("std"); // TODO: refactor code so we can use this here: diff --git a/src/module/Archetype.zig b/src/module/Archetype.zig index 773963f1..b36af207 100644 --- a/src/module/Archetype.zig +++ b/src/module/Archetype.zig @@ -9,6 +9,9 @@ const Allocator = std.mem.Allocator; const testing = std.testing; const assert = std.debug.assert; const builtin = @import("builtin"); + +const is_debug = @import("../main.zig").is_debug; + const StringTable = @import("StringTable.zig"); const ComponentTypesByName = @import("module.zig").ComponentTypesByName; @@ -234,8 +237,6 @@ pub fn debugPrint(storage: *Archetype) void { } } -pub const is_debug = builtin.mode == .Debug; - /// Returns a unique comptime usize integer representing the type T. Value will change across /// different compilations. pub fn typeId(comptime T: type) u32 { diff --git a/src/module/entities.zig b/src/module/entities.zig index 9e3fcd49..52a23f48 100644 --- a/src/module/entities.zig +++ b/src/module/entities.zig @@ -3,6 +3,9 @@ const Allocator = std.mem.Allocator; const testing = std.testing; const builtin = @import("builtin"); const assert = std.debug.assert; + +const is_debug = @import("../main.zig").is_debug; + const Archetype = @import("Archetype.zig"); const StringTable = @import("StringTable.zig"); const ComponentTypesByName = @import("module.zig").ComponentTypesByName; @@ -885,7 +888,7 @@ pub fn Database(comptime modules: anytype) type { } fn applyDeferredActions(e: *Self) !void { - if (comptime Archetype.is_debug) if (e.active_queries.items.len != 0) @panic("application may result in active query iterators being invalidated"); + if (is_debug) if (e.active_queries.items.len != 0) @panic("application may result in active query iterators being invalidated"); while (true) { const ev = e.deferred_queue.readItem() orelse return; switch (ev) { diff --git a/src/module/module.zig b/src/module/module.zig index a44baedf..9ea034e2 100644 --- a/src/module/module.zig +++ b/src/module/module.zig @@ -1,10 +1,11 @@ const builtin = @import("builtin"); const std = @import("std"); -const testing = @import("../testing.zig"); + +const is_debug = @import("../main.zig").is_debug; +const testing = @import("../main.zig").testing; const Database = @import("entities.zig").Database; const EntityID = @import("entities.zig").EntityID; -const is_debug = @import("Archetype.zig").is_debug; const builtin_modules = @import("main.zig").builtin_modules; const log = std.log.scoped(.mach);