From a7505acf8b91a37416b50d9b32b714dca5eacb5c Mon Sep 17 00:00:00 2001 From: peterino2 Date: Sat, 7 Jun 2025 15:20:52 -0700 Subject: [PATCH] i think we cracked the code on getting some linux builds working --- lib/sdl3/SDL/build.zig | 5 ++--- lib/sdl3/build.zig | 19 +++++++++++++++++++ 2 files changed, 21 insertions(+), 3 deletions(-) diff --git a/lib/sdl3/SDL/build.zig b/lib/sdl3/SDL/build.zig index 97e50dd..5361179 100644 --- a/lib/sdl3/SDL/build.zig +++ b/lib/sdl3/SDL/build.zig @@ -11,7 +11,7 @@ pub const revision = formatted_version ++ " (" ++ vendor_info ++ ")"; pub fn build(b: *std.Build) void { const target = b.standardTargetOptions(.{}); const optimize = b.standardOptimizeOption(.{}); - var preferred_linkage: std.builtin.LinkMode = b.option( + const preferred_linkage: std.builtin.LinkMode = b.option( std.builtin.LinkMode, "preferred_linkage", "Prefer building statically or dynamically linked libraries (default: static)", @@ -21,7 +21,6 @@ pub fn build(b: *std.Build) void { "Deprecated; use 'preferred_linkage' instead", ) orelse .static; - preferred_linkage = .dynamic; const strip = b.option( bool, "strip", @@ -546,7 +545,7 @@ pub fn build(b: *std.Build) void { .pic = pic, }); const sdl_lib = b.addLibrary(.{ - .linkage = .dynamic, //if (emscripten) .static else preferred_linkage, + .linkage = if (emscripten) .static else preferred_linkage, .name = "SDL3", .root_module = sdl_mod, .version = .{ diff --git a/lib/sdl3/build.zig b/lib/sdl3/build.zig index 43b0a74..840eb05 100644 --- a/lib/sdl3/build.zig +++ b/lib/sdl3/build.zig @@ -42,9 +42,28 @@ pub fn build(b: *std.Build) void { const target = b.standardTargetOptions(.{}); const optimize = b.standardOptimizeOption(.{}); + var linux = false; + var windows = false; + var macos = false; + switch (target.result.os.tag) { + .windows => { + windows = true; + }, + .linux => { + linux = true; + }, + .macos => { + macos = true; + }, + else => {}, + } + + const preferred_linkage: std.builtin.LinkMode = if (linux) .static else .dynamic; + const sdl_dep = b.dependency("sdl", .{ .target = target, .optimize = optimize, + .preferred_linkage = preferred_linkage, }); const sdl3_lib = sdl_dep.artifact("SDL3");