aboutsummaryrefslogtreecommitdiff
path: root/guile-zig-local/build.zig
diff options
context:
space:
mode:
authorPjotr Prins2025-02-11 02:19:49 -0600
committerPjotr Prins2025-02-11 02:19:49 -0600
commit83d5d1535754016500af6854aab26c1fbdde73d0 (patch)
tree33f31b3d1f1e11d0f3376e3120eb1f29e4fd214c /guile-zig-local/build.zig
parent648ae2851d515e6b0e003d1ddb25d7b1f1e21c1f (diff)
downloadpresentations-83d5d1535754016500af6854aab26c1fbdde73d0.tar.gz
Copied guile-zig talk from FOSDEM-2023
Diffstat (limited to 'guile-zig-local/build.zig')
-rw-r--r--guile-zig-local/build.zig27
1 files changed, 27 insertions, 0 deletions
diff --git a/guile-zig-local/build.zig b/guile-zig-local/build.zig
new file mode 100644
index 0000000..24aeb3a
--- /dev/null
+++ b/guile-zig-local/build.zig
@@ -0,0 +1,27 @@
+const std = @import("std");
+
+pub fn build(b: *std.build.Builder) void {
+ // Standard release options allow the person running `zig build` to select
+ // between Debug, ReleaseSafe, ReleaseFast, and ReleaseSmall.
+ const mode = b.standardReleaseOptions();
+
+ // const lib = b.addStaticLibrary("zig", "my.zig");
+ const lib = b.addSharedLibrary("zig", "my.zig", .unversioned);
+ lib.setBuildMode(mode);
+ switch (mode) {
+ .Debug, .ReleaseSafe => lib.bundle_compiler_rt = true,
+ .ReleaseFast, .ReleaseSmall => lib.disable_stack_probing = true,
+ }
+ lib.force_pic = true;
+ // lib.emit_h = true; future version of zig?
+ lib.install();
+
+ const main_tests = b.addTest("my.zig");
+ main_tests.setBuildMode(mode);
+ main_tests.addLibraryPath("build");
+ main_tests.addObjectFile("build/libmy.so");
+
+ const test_step = b.step("test", "Run library tests");
+ test_step.dependOn(&main_tests.step);
+}
+