From 6c9fcecd0326c8f3bf3353afbee6b3f5987d49ca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Felix=20=22xq=22=20Quei=C3=9Fner?= Date: Tue, 18 Jun 2024 20:55:08 +0200 Subject: [PATCH] Link libc by default unless -Dno-libc is passed --- build.zig | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/build.zig b/build.zig index 7c5f7f6..6570d14 100644 --- a/build.zig +++ b/build.zig @@ -15,6 +15,8 @@ pub fn build(b: *std.Build) void { const target = b.standardTargetOptions(.{}); const optimize = b.standardOptimizeOption(.{}); + const link_libc = !(b.option(bool, "no-libc", "Prevents linking of libc by default") orelse false); + const config = blk: { var config = Config{}; @@ -142,14 +144,14 @@ pub fn build(b: *std.Build) void { }); zfat_lib.installHeader(b.path("src/fatfs/ff.h"), "ff.h"); zfat_lib.installHeader(b.path("src/fatfs/diskio.h"), "diskio.h"); - initialize_mod(b, &zfat_lib.root_module, config); + initialize_mod(b, &zfat_lib.root_module, config, link_libc); const zfat_mod = b.addModule("zfat", .{ .root_source_file = b.path("src/fatfs.zig"), .target = target, .optimize = optimize, }); - initialize_mod(b, zfat_mod, config); + initialize_mod(b, zfat_mod, config, link_libc); zfat_mod.addOptions("config", mod_options); // usage demo: @@ -176,7 +178,7 @@ pub fn build(b: *std.Build) void { run_step.dependOn(&run_cmd.step); } -fn initialize_mod(b: *std.Build, mod: *std.Build.Module, config: Config) void { +fn initialize_mod(b: *std.Build, mod: *std.Build.Module, config: Config, link_libc: bool) void { mod.addIncludePath(b.path("src/fatfs")); mod.addCSourceFiles(.{ .root = b.path("src/fatfs"), @@ -189,7 +191,7 @@ fn initialize_mod(b: *std.Build, mod: *std.Build.Module, config: Config) void { }); apply_public_config(b, mod, config); apply_private_config(b, mod, config); - mod.link_libc = true; + mod.link_libc = link_libc; } fn apply_public_config(b: *std.Build, module: *std.Build.Module, config: Config) void {