From e2ee06b97a2b017cd2a3e5a1784b42bc7cf23b8a Mon Sep 17 00:00:00 2001 From: Jay Date: Mon, 24 Mar 2025 21:35:07 +0800 Subject: [PATCH 1/2] Update build for 0.14 --- build.zig | 36 ++++++++++++++++----------------- build.zig.zon | 5 +++-- build/freetype/build.zig | 14 ++++++------- build/wayland_scanner/build.zig | 4 ++-- 4 files changed, 30 insertions(+), 29 deletions(-) diff --git a/build.zig b/build.zig index f6e8bc1..d5ef338 100644 --- a/build.zig +++ b/build.zig @@ -12,7 +12,7 @@ pub fn build(b: *std.Build) !void { const sdl_ttf_dep = b.dependency("sdl_ttf", .{}); const freetype_dep = b.dependency("freetype", .{}); const wayland_scanner_dep = b.dependency("wayland_scanner", .{ - .target = b.host, + .target = b.graph.host, .optimize = .ReleaseFast, }); const font_dep = b.dependency("fonts", .{}); @@ -41,12 +41,12 @@ pub fn build(b: *std.Build) !void { .ReleaseFast, .ReleaseSmall, .ReleaseSafe => 0, .Debug => 3, }; - lib.defineCMacro("SDL_ASSERT_LEVEL", b.fmt("{d}", .{SDL_ASSERT_LEVEL})); + lib.root_module.addCMacro("SDL_ASSERT_LEVEL", b.fmt("{d}", .{SDL_ASSERT_LEVEL})); if (optimize != .Debug) { - lib.defineCMacro("NDEBUG", "1"); - lib.defineCMacro("__FILE__", "\"__FILE__\""); - lib.defineCMacro("__LINE__", "0"); + lib.root_module.addCMacro("NDEBUG", "1"); + lib.root_module.addCMacro("__FILE__", "\"__FILE__\""); + lib.root_module.addCMacro("__LINE__", "0"); } lib.linkLibC(); @@ -65,7 +65,7 @@ pub fn build(b: *std.Build) !void { lib.linkSystemLibrary("version"); lib.linkSystemLibrary("oleaut32"); lib.linkSystemLibrary("ole32"); - lib.defineCMacro("SDL_USE_BUILTIN_OPENGL_DEFINITIONS", "1"); + lib.root_module.addCMacro("SDL_USE_BUILTIN_OPENGL_DEFINITIONS", "1"); }, .macos => { lib.addCSourceFiles(.{ @@ -78,7 +78,7 @@ pub fn build(b: *std.Build) !void { .files = &objective_c_src_files, .flags = &.{"-fobjc-arc"}, }); - lib.defineCMacro("SDL_USE_BUILTIN_OPENGL_DEFINITIONS", "1"); + lib.root_module.addCMacro("SDL_USE_BUILTIN_OPENGL_DEFINITIONS", "1"); // TODO: re-check which frameworks are needed lib.linkFramework("AudioToolbox"); @@ -94,14 +94,14 @@ pub fn build(b: *std.Build) !void { lib.linkFramework("CoreVideo"); lib.linkFramework("ForceFeedback"); lib.linkFramework("Foundation"); - lib.linkFrameworkWeak("GameController"); + lib.linkFramework("GameController"); lib.linkFramework("IOKit"); - lib.linkFrameworkWeak("Metal"); - lib.linkFrameworkWeak("QuartzCore"); - lib.linkFrameworkWeak("UniformTypeIdentifiers"); + lib.linkFramework("Metal"); + lib.linkFramework("QuartzCore"); + lib.linkFramework("UniformTypeIdentifiers"); lib.linkSystemLibrary("objc"); - const sdk = std.zig.system.darwin.getSdk(b.allocator, b.host.result) orelse + const sdk = std.zig.system.darwin.getSdk(b.allocator, b.graph.host.result) orelse @panic("macOS SDK is missing"); lib.addSystemIncludePath(.{ .cwd_relative = b.pathJoin(&.{ sdk, "/usr/include" }) }); lib.addSystemFrameworkPath(.{ .cwd_relative = b.pathJoin(&.{ sdk, "/System/Library/Frameworks" }) }); @@ -376,7 +376,7 @@ pub fn build(b: *std.Build) !void { inline for (std.meta.fields(@TypeOf(values))) |f| { const value = b.fmt("{any}", .{@field(values, f.name)}); - lib.defineCMacro(f.name, value); + lib.root_module.addCMacro(f.name, value); } // SDL3_DYNAMIC_API=/my/actual/libSDL3.so.0 @@ -387,7 +387,7 @@ pub fn build(b: *std.Build) !void { // Avoid // SDL/include/build_config/SDL_build_config_minimal.h - lib.defineCMacro("SDL_build_config_minimal_h_", "1"); + lib.root_module.addCMacro("SDL_build_config_minimal_h_", "1"); //-- @@ -523,7 +523,7 @@ pub fn build(b: *std.Build) !void { SDL_ttf.linkLibrary(freetype_dep.artifact("freetype")); if (target.result.os.tag == .macos) { - const sdk = std.zig.system.darwin.getSdk(b.allocator, b.host.result) orelse + const sdk = std.zig.system.darwin.getSdk(b.allocator, b.graph.host.result) orelse @panic("macOS SDK is missing"); SDL_ttf.addSystemIncludePath(.{ .cwd_relative = b.pathJoin(&.{ sdk, "/usr/include" }) }); SDL_ttf.addSystemFrameworkPath(.{ .cwd_relative = b.pathJoin(&.{ sdk, "/System/Library/Frameworks" }) }); @@ -582,7 +582,7 @@ pub fn build(b: *std.Build) !void { exe.root_module.addImport("sdl", module); if (target.result.os.tag == .macos) { - const sdk = std.zig.system.darwin.getSdk(b.allocator, b.host.result) orelse + const sdk = std.zig.system.darwin.getSdk(b.allocator, b.graph.host.result) orelse @panic("macOS SDK is missing"); exe.addSystemIncludePath(.{ .cwd_relative = b.pathJoin(&.{ sdk, "/usr/include" }) }); exe.addSystemFrameworkPath(.{ .cwd_relative = b.pathJoin(&.{ sdk, "/System/Library/Frameworks" }) }); @@ -855,7 +855,7 @@ pub fn build(b: *std.Build) !void { exe.linkLibrary(test_utils); if (target.result.os.tag == .macos) { - const sdk = std.zig.system.darwin.getSdk(b.allocator, b.host.result) orelse + const sdk = std.zig.system.darwin.getSdk(b.allocator, b.graph.host.result) orelse @panic("macOS SDK is missing"); exe.addSystemIncludePath(.{ .cwd_relative = b.pathJoin(&.{ sdk, "/usr/include" }) }); exe.addSystemFrameworkPath(.{ .cwd_relative = b.pathJoin(&.{ sdk, "/System/Library/Frameworks" }) }); @@ -928,7 +928,7 @@ pub fn build(b: *std.Build) !void { exe.linkLibrary(lib); if (target.result.os.tag == .macos) { - const sdk = std.zig.system.darwin.getSdk(b.allocator, b.host.result) orelse + const sdk = std.zig.system.darwin.getSdk(b.allocator, b.graph.host.result) orelse @panic("macOS SDK is missing"); exe.addSystemIncludePath(.{ .cwd_relative = b.pathJoin(&.{ sdk, "/usr/include" }) }); exe.addSystemFrameworkPath(.{ .cwd_relative = b.pathJoin(&.{ sdk, "/System/Library/Frameworks" }) }); diff --git a/build.zig.zon b/build.zig.zon index b9851ca..20693ab 100644 --- a/build.zig.zon +++ b/build.zig.zon @@ -3,8 +3,9 @@ // SPDX-License-Identifier: Zlib .{ - .name = "sdl", - .version = "0.0.0", + .name = .sdl, + .version = "0.0.1", + .fingerprint = 0xec638ccb9c209e38, .paths = .{""}, .dependencies = .{ .sdl = .{ diff --git a/build/freetype/build.zig b/build/freetype/build.zig index d3f77f1..6026a2d 100644 --- a/build/freetype/build.zig +++ b/build/freetype/build.zig @@ -20,9 +20,9 @@ pub fn build(b: *std.Build) !void { }); { if (optimize != .Debug) { - lib.defineCMacro("NDEBUG", "1"); - lib.defineCMacro("__FILE__", "\"__FILE__\""); - lib.defineCMacro("__LINE__", "0"); + lib.root_module.addCMacro("NDEBUG", "1"); + lib.root_module.addCMacro("__FILE__", "\"__FILE__\""); + lib.root_module.addCMacro("__LINE__", "0"); } lib.addCSourceFiles(.{ @@ -72,9 +72,9 @@ pub fn build(b: *std.Build) !void { .flags = &.{}, }); - lib.defineCMacro("FT2_BUILD_LIBRARY", "1"); - lib.defineCMacro("HAVE_UNISTD_H", ""); - lib.defineCMacro("HAVE_FCNTL_H", ""); + lib.root_module.addCMacro("FT2_BUILD_LIBRARY", "1"); + lib.root_module.addCMacro("HAVE_UNISTD_H", ""); + lib.root_module.addCMacro("HAVE_FCNTL_H", ""); switch (target.result.os.tag) { .windows => { @@ -109,7 +109,7 @@ pub fn build(b: *std.Build) !void { lib.installHeadersDirectory(freetype_dep.path("include/freetype"), "freetype", .{}); if (target.result.os.tag == .macos) { - const sdk = std.zig.system.darwin.getSdk(b.allocator, b.host.result) orelse + const sdk = std.zig.system.darwin.getSdk(b.allocator, b.graph.host.result) orelse @panic("macOS SDK is missing"); lib.addSystemIncludePath(.{ .cwd_relative = b.pathJoin(&.{ sdk, "/usr/include" }) }); lib.addSystemFrameworkPath(.{ .cwd_relative = b.pathJoin(&.{ sdk, "/System/Library/Frameworks" }) }); diff --git a/build/wayland_scanner/build.zig b/build/wayland_scanner/build.zig index 77cec0f..e491f4e 100644 --- a/build/wayland_scanner/build.zig +++ b/build/wayland_scanner/build.zig @@ -15,7 +15,7 @@ pub fn build(b: *std.Build) !void { const expat = b.addStaticLibrary(.{ .name = "expat", - .target = b.host, + .target = b.graph.host, .optimize = optimize, }); { @@ -68,7 +68,7 @@ pub fn build(b: *std.Build) !void { const wayland_scanner = b.addExecutable(.{ .name = "wayland-scanner", - .target = b.host, + .target = b.graph.host, .optimize = optimize, }); { From 30da8388f8d96628b32e99d937b7d8c794cd69f3 Mon Sep 17 00:00:00 2001 From: Jay Date: Tue, 1 Apr 2025 10:20:06 +0800 Subject: [PATCH 2/2] Zig 0.14 fingerprint field for child packages --- build/fonts/build.zig.zon | 3 ++- build/freetype/build.zig.zon | 3 ++- build/wayland_scanner/build.zig.zon | 3 ++- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/build/fonts/build.zig.zon b/build/fonts/build.zig.zon index a40d593..9239bd0 100644 --- a/build/fonts/build.zig.zon +++ b/build/fonts/build.zig.zon @@ -3,8 +3,9 @@ // SPDX-License-Identifier: Zlib .{ - .name = "fonts", + .name = .fonts, .version = "0.0.0", + .fingerprint = 0x7303e8fb6c57db3a, .paths = .{""}, .dependencies = .{ .intel_one_mono = .{ diff --git a/build/freetype/build.zig.zon b/build/freetype/build.zig.zon index 2b3c07c..6b8bef9 100644 --- a/build/freetype/build.zig.zon +++ b/build/freetype/build.zig.zon @@ -3,8 +3,9 @@ // SPDX-License-Identifier: Zlib .{ - .name = "freetype", + .name = .freetype, .version = "0.0.0", + .fingerprint = 0xac2059b689838d78, .paths = .{""}, .dependencies = .{ // NOTE: matches SDL_ttf's external/freetype submodule diff --git a/build/wayland_scanner/build.zig.zon b/build/wayland_scanner/build.zig.zon index 85986a5..e9ee660 100644 --- a/build/wayland_scanner/build.zig.zon +++ b/build/wayland_scanner/build.zig.zon @@ -3,8 +3,9 @@ // SPDX-License-Identifier: Zlib .{ - .name = "wayland_scanner", + .name = .wayland_scanner, .version = "0.0.0", + .fingerprint = 0x501ba345c1864a85, .paths = .{""}, .dependencies = .{ .wayland = .{