From fcedfddf00b3f994e4f4e40332ac7fc192c63244 Mon Sep 17 00:00:00 2001 From: polwex Date: Sun, 5 Oct 2025 21:56:51 +0700 Subject: claude is gud --- vere/ext/wasm3/build.zig | 91 ++++++++++++++++++++++++++++++++++++++++++++ vere/ext/wasm3/build.zig.zon | 18 +++++++++ 2 files changed, 109 insertions(+) create mode 100644 vere/ext/wasm3/build.zig create mode 100644 vere/ext/wasm3/build.zig.zon (limited to 'vere/ext/wasm3') diff --git a/vere/ext/wasm3/build.zig b/vere/ext/wasm3/build.zig new file mode 100644 index 0000000..1e57e91 --- /dev/null +++ b/vere/ext/wasm3/build.zig @@ -0,0 +1,91 @@ +const std = @import("std"); + +pub fn build(b: *std.Build) void { + const target = b.standardTargetOptions(.{}); + const optimize = b.standardOptimizeOption(.{}); + const t = target.result; + + const softfloat = b.dependency("softfloat", .{ + .target = target, + .optimize = optimize, + }); + + const wasm3_c = b.dependency("wasm3", .{ + .target = target, + .optimize = optimize, + }); + + const wasm3 = b.addStaticLibrary(.{ + .name = "wasm3", + .target = target, + .optimize = optimize, + }); + + wasm3.linkLibC(); + + wasm3.addIncludePath(wasm3_c.path("source/")); + + const common_flags = [_][]const u8{ + "-std=c99", + "-Wall", + "-Wextra", + "-Wparentheses", + "-Wundef", + "-Wpointer-arith", + "-Wstrict-aliasing=2", + "-Werror=implicit-function-declaration", + "-fno-sanitize=all", + // "-fsanitize=undefined", + // "-fno-sanitize-trap=undefined", + }; + + const mac_flags = common_flags ++ [_][]const u8{ + "-fPIC", + "-c", + }; + + wasm3.addCSourceFiles(.{ + .root = wasm3_c.path("source/"), + .files = &.{ + "m3_bind.c", + "m3_code.c", + "m3_compile.c", + "m3_core.c", + "m3_emit.c", + "m3_env.c", + "m3_exec.c", + "m3_function.c", + "m3_info.c", + "m3_module.c", + "m3_parse.c", + "m3_validate.c", + "m3_rewrite.c", + "m3_resume.c", + }, + .flags = if (t.os.tag == .macos) &mac_flags else &common_flags, + }); + + wasm3.installHeader(wasm3_c.path("source/m3_config_platforms.h"), "m3_config_platforms.h"); + wasm3.installHeader(wasm3_c.path("source/m3_bind.h"), "m3_bind.h"); + wasm3.installHeader(wasm3_c.path("source/m3_code.h"), "m3_code.h"); + wasm3.installHeader(wasm3_c.path("source/m3_compile.h"), "m3_compile.h"); + wasm3.installHeader(wasm3_c.path("source/m3_config.h"), "m3_config.h"); + wasm3.installHeader(wasm3_c.path("source/m3_core.h"), "m3_core.h"); + wasm3.installHeader(wasm3_c.path("source/m3_emit.h"), "m3_emit.h"); + wasm3.installHeader(wasm3_c.path("source/m3_env.h"), "m3_env.h"); + wasm3.installHeader(wasm3_c.path("source/m3_exception.h"), "m3_exception.h"); + wasm3.installHeader(wasm3_c.path("source/m3_exec.h"), "m3_exec.h"); + wasm3.installHeader(wasm3_c.path("source/m3_exec_defs.h"), "m3_exec_defs.h"); + wasm3.installHeader(wasm3_c.path("source/m3_function.h"), "m3_function.h"); + wasm3.installHeader(wasm3_c.path("source/m3_info.h"), "m3_info.h"); + wasm3.installHeader(wasm3_c.path("source/m3_math_utils.h"), "m3_math_utils.h"); + wasm3.installHeader(wasm3_c.path("source/wasm3.h"), "wasm3.h"); + wasm3.installHeader(wasm3_c.path("source/wasm3_defs.h"), "wasm3_defs.h"); + wasm3.installHeader(wasm3_c.path("source/m3_validate.h"), "m3_validate.h"); + wasm3.installHeader(wasm3_c.path("source/m3_rewrite.h"), "m3_rewrite.h"); + wasm3.installHeader(wasm3_c.path("source/m3_resume.h"), "m3_resume.h"); + + wasm3.linkLibrary(softfloat.artifact("softfloat")); + + b.installArtifact(wasm3); +} diff --git a/vere/ext/wasm3/build.zig.zon b/vere/ext/wasm3/build.zig.zon new file mode 100644 index 0000000..6544065 --- /dev/null +++ b/vere/ext/wasm3/build.zig.zon @@ -0,0 +1,18 @@ +.{ + .name = .wasm3, + .version = "0.0.1", + .fingerprint = 0x377ef9510a920f6f, + .dependencies = .{ + .softfloat = .{ + .path = "../softfloat", + }, + .wasm3 = .{ + // .path = "../../../../wasm3" + .url = "https://github.com/urbit/wasm3/archive/48832a8e023b57d671be6c0bab8608d30cb57101.tar.gz", + .hash = "N-V-__8AANAcSQBq71EmfSas8hV9_SOtu1AjOvuUcWZce5VM", + }, + }, + .paths = .{ + "", + }, +} -- cgit v1.2.3