diff options
| author | polwex <polwex@sortug.com> | 2025-10-06 01:01:41 +0700 |
|---|---|---|
| committer | polwex <polwex@sortug.com> | 2025-10-06 01:01:41 +0700 |
| commit | c4b392a179048f936c062f5ffccc2bc25627e500 (patch) | |
| tree | 09be0904be8ec4d7ea52992ef7580d42ed0c28c1 /vere/ext/wslay | |
working
Diffstat (limited to 'vere/ext/wslay')
| -rw-r--r-- | vere/ext/wslay/build.zig | 60 | ||||
| -rw-r--r-- | vere/ext/wslay/build.zig.zon | 13 |
2 files changed, 73 insertions, 0 deletions
diff --git a/vere/ext/wslay/build.zig b/vere/ext/wslay/build.zig new file mode 100644 index 0000000..91dd3b7 --- /dev/null +++ b/vere/ext/wslay/build.zig @@ -0,0 +1,60 @@ +const std = @import("std"); + +const wslay_version = "1.1.1"; + +pub fn build(b: *std.Build) !void { + const target = b.standardTargetOptions(.{}); + const optimize = b.standardOptimizeOption(.{}); + const t = target.result; + + const wslay_src = b.dependency("wslay", .{ + .target = target, + .optimize = optimize, + }); + + const lib = b.addStaticLibrary(.{ + .name = "wslay", + .target = target, + .optimize = optimize, + }); + + lib.linkLibC(); + + lib.addIncludePath(wslay_src.path("lib")); + lib.addIncludePath(wslay_src.path("lib/includes")); + + var flags = std.ArrayList([]const u8).init(b.allocator); + defer flags.deinit(); + + try flags.append("-fno-sanitize=all"); + try flags.append(b.fmt("-DWSLAY_VERSION=\\\"{s}\\\"", .{wslay_version})); + + if (t.os.tag == .windows) { + try flags.append("-DHAVE_WINSOCK2_H=1"); + } else { + try flags.append("-DHAVE_ARPA_INET_H=1"); + try flags.append("-DHAVE_NETINET_IN_H=1"); + } + + if (t.cpu.arch.endian() == .big) { + try flags.append("-DWORDS_BIGENDIAN=1"); + } + + lib.addCSourceFiles(.{ + .root = wslay_src.path("lib"), + .files = &.{ + "wslay_event.c", + "wslay_frame.c", + "wslay_net.c", + "wslay_queue.c", + "wslay_stack.c", + }, + .flags = flags.items, + }); + + lib.installHeadersDirectory(wslay_src.path("lib/includes"), "", .{ + .include_extensions = &.{".h"}, + }); + + b.installArtifact(lib); +} diff --git a/vere/ext/wslay/build.zig.zon b/vere/ext/wslay/build.zig.zon new file mode 100644 index 0000000..47f8b12 --- /dev/null +++ b/vere/ext/wslay/build.zig.zon @@ -0,0 +1,13 @@ +.{ + .name = "wslay", + .version = "0.0.1", + .dependencies = .{ + .wslay = .{ + .url = "https://github.com/tatsuhiro-t/wslay/archive/refs/tags/release-1.1.1.tar.gz", + .hash = "N-V-__8AADdLBADNETOk9pvYZ-k7F8a08-U43YCrYSlxu621", + }, + }, + .paths = .{ + "", + }, +} |
