summaryrefslogtreecommitdiff
path: root/libpanto/build.zig
diff options
context:
space:
mode:
authort <t@tjp.lol>2026-06-03 09:11:36 -0600
committert <t@tjp.lol>2026-06-03 12:34:13 -0600
commitac5c4898dfa0a9e57424336774893dfc72b132e9 (patch)
tree03eb8e32a001845dbaec163dfd4905ffc23d9fa6 /libpanto/build.zig
parent2416a308c0e467f8dbdbe09942aa903bca751c0e (diff)
image uploads
Diffstat (limited to 'libpanto/build.zig')
-rw-r--r--libpanto/build.zig22
1 files changed, 20 insertions, 2 deletions
diff --git a/libpanto/build.zig b/libpanto/build.zig
index b70ae7b..973c75b 100644
--- a/libpanto/build.zig
+++ b/libpanto/build.zig
@@ -4,19 +4,26 @@ pub fn build(b: *std.Build) void {
const target = b.standardTargetOptions(.{});
const optimize = b.standardOptimizeOption(.{});
- // Public module — other packages can import this via dependency
- _ = b.addModule("panto", .{
+ // Public module — other packages can import this via dependency.
+ // The image module pulls in the vendored stb/jebp single-header C
+ // libraries, so the module needs libc + the C translation unit + the
+ // include path for `@cImport`.
+ const panto_mod = b.addModule("panto", .{
.root_source_file = b.path("src/root.zig"),
.target = target,
.optimize = optimize,
+ .link_libc = true,
});
+ addImageCDeps(b, panto_mod);
// Unit tests
const test_module = b.createModule(.{
.root_source_file = b.path("src/root.zig"),
.target = target,
.optimize = optimize,
+ .link_libc = true,
});
+ addImageCDeps(b, test_module);
const unit_tests = b.addTest(.{
.name = "panto-tests",
@@ -27,3 +34,14 @@ pub fn build(b: *std.Build) void {
const test_step = b.step("test", "Run unit tests");
test_step.dependOn(&run_unit_tests.step);
}
+
+/// Wire the vendored stb/jebp single-header image libraries into `mod`:
+/// the include path for `@cImport`, and the single C translation unit
+/// that compiles their implementations. Callers must also link libc.
+fn addImageCDeps(b: *std.Build, mod: *std.Build.Module) void {
+ mod.addIncludePath(b.path("src/cdeps"));
+ mod.addCSourceFile(.{
+ .file = b.path("src/cdeps/image_impl.c"),
+ .flags = &.{ "-std=gnu99", "-O2", "-fno-sanitize=undefined" },
+ });
+}