Use zig packed versions of zlib-ng, lz4, and zstd.

Changed use_c_libs to use_zig_decomp so c libraries are now default
This commit is contained in:
Caleb J. Gardner
2026-03-18 05:24:58 -05:00
parent 8b8c9a772f
commit 50cae8b63d
4 changed files with 42 additions and 23 deletions
+17 -11
View File
@@ -1,14 +1,14 @@
const std = @import("std");
pub fn build(b: *std.Build) !void {
const use_c_libs_option = b.option(bool, "use_c_libs", "Use C versions of decompression libraries instead of the Zig standard library ones");
const allow_lzo = b.option(bool, "allow_lzo", "Compile with lzo support");
const debug = b.option(bool, "debug", "Enable options to make debugging easier.");
const use_zig_decomp = b.option(bool, "use_zig_decomp", "Use zig standard library for decompression.") orelse false;
const allow_lzo = b.option(bool, "allow_lzo", "Compile with lzo support") orelse false;
const debug = b.option(bool, "debug", "Enable options to make debugging easier.") orelse false;
const version_string_option = b.option([]const u8, "version", "Version of the library/binary");
const zig_squashfs_options = b.addOptions();
zig_squashfs_options.addOption(bool, "use_c_libs", use_c_libs_option orelse false);
zig_squashfs_options.addOption(bool, "allow_lzo", allow_lzo orelse false);
zig_squashfs_options.addOption(bool, "use_zig_decomp", use_zig_decomp);
zig_squashfs_options.addOption(bool, "allow_lzo", allow_lzo);
const target = b.standardTargetOptions(.{});
const optimize = b.standardOptimizeOption(.{});
@@ -16,19 +16,25 @@ pub fn build(b: *std.Build) !void {
.root_source_file = b.path("src/root.zig"),
.target = target,
.optimize = if (debug == true) .Debug else optimize,
.link_libc = use_c_libs_option,
.link_libc = !use_zig_decomp,
.valgrind = debug,
.error_tracing = debug,
.strip = if (debug == true) false else null,
});
mod.addOptions("config", zig_squashfs_options);
if (use_c_libs_option == true) {
mod.linkSystemLibrary("zlib-ng", .{ .preferred_link_mode = .static });
if (!use_zig_decomp) {
var zlib_ng = b.dependency("zlib_ng", .{});
mod.linkLibrary(zlib_ng.artifact("zng"));
mod.linkSystemLibrary("lzma", .{ .preferred_link_mode = .static });
if (allow_lzo == true)
mod.linkSystemLibrary("minilzo", .{ .preferred_link_mode = .static });
mod.linkSystemLibrary("lz4", .{ .preferred_link_mode = .static });
mod.linkSystemLibrary("zstd", .{ .preferred_link_mode = .static });
var lz4 = b.dependency("lz4", .{});
mod.linkLibrary(lz4.artifact("lz4"));
var zstd = b.dependency("zstd", .{});
mod.linkLibrary(zstd.artifact("zstd"));
}
var version = version_string_option orelse "0.0.0-testing";
@@ -44,7 +50,7 @@ pub fn build(b: *std.Build) !void {
.root_source_file = b.path("src/bin/unsquashfs.zig"),
.target = target,
.optimize = if (debug == true) .Debug else optimize,
.link_libc = use_c_libs_option,
.link_libc = !use_zig_decomp,
.imports = &.{
.{ .name = "zig_squashfs", .module = mod },
},