From 54c1cce4d44daf89855dfdb8d64837ae6182e7d9 Mon Sep 17 00:00:00 2001 From: Linus Groh Date: Sun, 10 Nov 2024 05:11:04 +0000 Subject: [PATCH 1/3] .gitignore: Add new zig cache directory See: https://github.com/ziglang/zig/pull/20115 --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index c56601b0c..09462fe47 100644 --- a/.gitignore +++ b/.gitignore @@ -140,6 +140,7 @@ cmake_install.cmake # These ones are generated by Zig: /zig-cache/ +/.zig-cache/ /zig-out/ # Rarely generated files (mostly by some Win/DOS compilers): From 3192d7f550accd68bfa6e7843aab7014b6e0c915 Mon Sep 17 00:00:00 2001 From: Linus Groh Date: Sun, 10 Nov 2024 05:13:23 +0000 Subject: [PATCH 2/3] build.zig: Use static slices for file lists that are never extended --- build.zig | 31 ++++++++++++------------------- 1 file changed, 12 insertions(+), 19 deletions(-) diff --git a/build.zig b/build.zig index b622a9a86..1c43e15cf 100644 --- a/build.zig +++ b/build.zig @@ -511,14 +511,11 @@ pub fn build(b: *std.Build) void { .optimize = optimize, }); } - var gccpp_src_files = std.ArrayList([]const u8).init(b.allocator); - defer gccpp_src_files.deinit(); - gccpp_src_files.appendSlice(&.{ - "gc_badalc.cc", - "gc_cpp.cc", - }) catch unreachable; gccpp.addCSourceFiles(.{ - .files = gccpp_src_files.items, + .files = &.{ + "gc_badalc.cc", + "gc_cpp.cc", + }, .flags = flags.items, }); gccpp.addIncludePath(b.path("include")); @@ -533,11 +530,10 @@ pub fn build(b: *std.Build) void { .optimize = optimize, }); } - var gctba_src_files = std.ArrayList([]const u8).init(b.allocator); - defer gctba_src_files.deinit(); - gctba_src_files.append("gc_badalc.cc") catch unreachable; gctba.addCSourceFiles(.{ - .files = gctba_src_files.items, + .files = &.{ + "gc_badalc.cc", + }, .flags = flags.items, }); gctba.addIncludePath(b.path("include")); @@ -559,15 +555,12 @@ pub fn build(b: *std.Build) void { .optimize = optimize, }); } - var cord_src_files = std.ArrayList([]const u8).init(b.allocator); - defer cord_src_files.deinit(); - cord_src_files.appendSlice(&.{ - "cord/cordbscs.c", - "cord/cordprnt.c", - "cord/cordxtra.c", - }) catch unreachable; cord.addCSourceFiles(.{ - .files = cord_src_files.items, + .files = &.{ + "cord/cordbscs.c", + "cord/cordprnt.c", + "cord/cordxtra.c", + }, .flags = flags.items, }); cord.addIncludePath(b.path("include")); From 5ce6c4a5d3233ff7259eb96f82e2b44571e9dad1 Mon Sep 17 00:00:00 2001 From: Linus Groh Date: Sun, 10 Nov 2024 05:24:10 +0000 Subject: [PATCH 3/3] build.zig: Avoid creation of libraries that aren't enabled --- build.zig | 71 ++++++++++++++++++++++++++++++------------------------- 1 file changed, 39 insertions(+), 32 deletions(-) diff --git a/build.zig b/build.zig index 1c43e15cf..d44946f49 100644 --- a/build.zig +++ b/build.zig @@ -130,19 +130,20 @@ pub fn build(b: *std.Build) void { "Install header and pkg-config metadata files") orelse true; // TODO: support with_libatomic_ops, without_libatomic_ops - var gc = b.addStaticLibrary(.{ - .name = "gc", - .target = target, - .optimize = optimize, - }); - if (build_shared_libs) { + const gc = if (build_shared_libs) blk: { // TODO: convert VER_INFO values to [SO]VERSION ones - gc = b.addSharedLibrary(.{ + break :blk b.addSharedLibrary(.{ .name = "gc", .target = target, .optimize = optimize, }); - } + } else blk: { + break :blk b.addStaticLibrary(.{ + .name = "gc", + .target = target, + .optimize = optimize, + }); + }; var source_files = std.ArrayList([]const u8).init(b.allocator); defer source_files.deinit(); @@ -493,24 +494,22 @@ pub fn build(b: *std.Build) void { gc.addIncludePath(b.path("include")); gc.linkLibC(); - var gccpp = b.addStaticLibrary(.{ - .name = "gccpp", - .target = target, - .optimize = optimize, - }); - var gctba = b.addStaticLibrary(.{ - .name = "gctba", - .target = target, - .optimize = optimize, - }); + var gccpp: *std.Build.Step.Compile = undefined; + var gctba: *std.Build.Step.Compile = undefined; if (enable_cplusplus) { - if (build_shared_libs) { - gccpp = b.addSharedLibrary(.{ + gccpp = if (build_shared_libs) blk: { + break :blk b.addSharedLibrary(.{ .name = "gccpp", .target = target, .optimize = optimize, }); - } + } else blk: { + break :blk b.addStaticLibrary(.{ + .name = "gccpp", + .target = target, + .optimize = optimize, + }); + }; gccpp.addCSourceFiles(.{ .files = &.{ "gc_badalc.cc", @@ -523,13 +522,19 @@ pub fn build(b: *std.Build) void { linkLibCpp(gccpp); if (enable_throw_bad_alloc_library) { // The same as gccpp but contains only gc_badalc. - if (build_shared_libs) { - gctba = b.addSharedLibrary(.{ + gctba = if (build_shared_libs) blk: { + break :blk b.addSharedLibrary(.{ .name = "gctba", .target = target, .optimize = optimize, }); - } + } else blk: { + break :blk b.addStaticLibrary(.{ + .name = "gctba", + .target = target, + .optimize = optimize, + }); + }; gctba.addCSourceFiles(.{ .files = &.{ "gc_badalc.cc", @@ -542,19 +547,21 @@ pub fn build(b: *std.Build) void { } } - var cord = b.addStaticLibrary(.{ - .name = "cord", - .target = target, - .optimize = optimize, - }); + var cord: *std.Build.Step.Compile = undefined; if (build_cord) { - if (build_shared_libs) { - cord = b.addSharedLibrary(.{ + cord = if (build_shared_libs) blk: { + break :blk b.addSharedLibrary(.{ .name = "cord", .target = target, .optimize = optimize, }); - } + } else blk: { + break :blk b.addStaticLibrary(.{ + .name = "cord", + .target = target, + .optimize = optimize, + }); + }; cord.addCSourceFiles(.{ .files = &.{ "cord/cordbscs.c",