diff --git a/build.zig b/build.zig index 626f994..b3fba1a 100644 --- a/build.zig +++ b/build.zig @@ -116,24 +116,22 @@ pub fn build(b: *std.Build) void { .root_module = b.createModule(.{ .target = target, .optimize = optimize, + .link_libc = true, + .link_libcpp = target.result.abi != .msvc, }), }); b.installArtifact(zdawn); linkSystemDeps(b, zdawn); - zdawn.linkLibC(); - if (target.result.abi != .msvc) - zdawn.linkLibCpp(); + zdawn.root_module.addIncludePath(b.path("libs/dawn/include")); + zdawn.root_module.addIncludePath(b.path("src")); - zdawn.addIncludePath(b.path("libs/dawn/include")); - zdawn.addIncludePath(b.path("src")); - - zdawn.addCSourceFile(.{ + zdawn.root_module.addCSourceFile(.{ .file = b.path("src/dawn.cpp"), .flags = &.{ "-std=c++17", "-fno-sanitize=undefined" }, }); - zdawn.addCSourceFile(.{ + zdawn.root_module.addCSourceFile(.{ .file = b.path("src/dawn_proc.c"), .flags = &.{"-fno-sanitize=undefined"}, }); @@ -149,8 +147,8 @@ pub fn build(b: *std.Build) void { .optimize = optimize, }), }); - tests.addIncludePath(b.path("libs/dawn/include")); - tests.linkLibrary(zdawn); + tests.root_module.addIncludePath(b.path("libs/dawn/include")); + tests.root_module.linkLibrary(zdawn); linkSystemDeps(b, tests); addLibraryPathsTo(tests); b.installArtifact(tests); @@ -162,23 +160,23 @@ pub fn linkSystemDeps(b: *std.Build, compile_step: *std.Build.Step.Compile) void switch (compile_step.rootModuleTarget().os.tag) { .windows => { if (b.lazyDependency("system_sdk", .{})) |system_sdk| { - compile_step.addLibraryPath(system_sdk.path("windows/lib/x86_64-windows-gnu")); + compile_step.root_module.addLibraryPath(system_sdk.path("windows/lib/x86_64-windows-gnu")); } - compile_step.linkSystemLibrary("ole32"); - compile_step.linkSystemLibrary("dxguid"); + compile_step.root_module.linkSystemLibrary("ole32", .{}); + compile_step.root_module.linkSystemLibrary("dxguid", .{}); }, .macos => { if (b.lazyDependency("system_sdk", .{})) |system_sdk| { - compile_step.addLibraryPath(system_sdk.path("macos12/usr/lib")); - compile_step.addFrameworkPath(system_sdk.path("macos12/System/Library/Frameworks")); + compile_step.root_module.addLibraryPath(system_sdk.path("macos12/usr/lib")); + compile_step.root_module.addFrameworkPath(system_sdk.path("macos12/System/Library/Frameworks")); } - compile_step.linkSystemLibrary("objc"); - compile_step.linkFramework("Metal"); - compile_step.linkFramework("CoreGraphics"); - compile_step.linkFramework("Foundation"); - compile_step.linkFramework("IOKit"); - compile_step.linkFramework("IOSurface"); - compile_step.linkFramework("QuartzCore"); + compile_step.root_module.linkSystemLibrary("objc", .{}); + compile_step.root_module.linkFramework("Metal", .{}); + compile_step.root_module.linkFramework("CoreGraphics", .{}); + compile_step.root_module.linkFramework("Foundation", .{}); + compile_step.root_module.linkFramework("IOKit", .{}); + compile_step.root_module.linkFramework("IOSurface", .{}); + compile_step.root_module.linkFramework("QuartzCore", .{}); }, else => {}, } @@ -190,34 +188,34 @@ pub fn addLibraryPathsTo(compile_step: *std.Build.Step.Compile) void { switch (target.os.tag) { .windows => { if (b.lazyDependency("dawn_x86_64_windows_gnu", .{})) |dawn_prebuilt| { - compile_step.addLibraryPath(dawn_prebuilt.path("")); + compile_step.root_module.addLibraryPath(dawn_prebuilt.path("")); } }, .linux => { if (target.cpu.arch.isX86()) { if (b.lazyDependency("dawn_x86_64_linux_gnu", .{})) |dawn_prebuilt| { - compile_step.addLibraryPath(dawn_prebuilt.path("")); + compile_step.root_module.addLibraryPath(dawn_prebuilt.path("")); } } else if (target.cpu.arch.isAARCH64()) { if (b.lazyDependency("dawn_aarch64_linux_gnu", .{})) |dawn_prebuilt| { - compile_step.addLibraryPath(dawn_prebuilt.path("")); + compile_step.root_module.addLibraryPath(dawn_prebuilt.path("")); } } }, .macos => { if (target.cpu.arch.isX86()) { if (b.lazyDependency("dawn_x86_64_macos", .{})) |dawn_prebuilt| { - compile_step.addLibraryPath(dawn_prebuilt.path("")); + compile_step.root_module.addLibraryPath(dawn_prebuilt.path("")); } } else if (target.cpu.arch.isAARCH64()) { if (b.lazyDependency("dawn_aarch64_macos", .{})) |dawn_prebuilt| { - compile_step.addLibraryPath(dawn_prebuilt.path("")); + compile_step.root_module.addLibraryPath(dawn_prebuilt.path("")); } } }, else => {}, } - compile_step.linkSystemLibrary("dawn"); + compile_step.root_module.linkSystemLibrary("dawn", .{}); } pub fn checkTargetSupported(target: std.Target) bool {