diff --git a/build.zig b/build.zig index 0e5bdc4c..e207ff2f 100644 --- a/build.zig +++ b/build.zig @@ -58,6 +58,9 @@ pub fn build(b: *std.Build) !void { }); module.addImport("build-options", build_options.createModule()); if (want_mach) { + // Linux gamemode requires libc. + if (target.result.os.tag == .linux) module.link_libc = true; + // TODO(Zig 2024.03): use b.lazyDependency const mach_core_dep = b.dependency("mach_core", .{ .target = target, diff --git a/src/main.zig b/src/main.zig index a608a7b5..a24491a3 100644 --- a/src/main.zig +++ b/src/main.zig @@ -1,4 +1,5 @@ const build_options = @import("build-options"); +const builtin = @import("builtin"); // Core re-exports pub const core = if (build_options.want_core) @import("mach-core") else struct {}; @@ -8,7 +9,8 @@ pub const sysjs = if (build_options.want_core) @import("mach-sysjs") else struct // Mach standard library pub const ecs = @import("ecs/main.zig"); -pub const gamemode = @import("gamemode.zig"); +// gamemode requires libc on linux +pub const gamemode = if (builtin.os.tag != .linux or builtin.link_libc) @import("gamemode.zig"); pub const gfx = if (build_options.want_mach) @import("gfx/main.zig") else struct {}; pub const math = @import("math/main.zig"); pub const testing = @import("testing.zig");