From ef185bc975b29d68ece06ac2b5a71216184fa8d6 Mon Sep 17 00:00:00 2001 From: torque Date: Mon, 21 Aug 2023 23:30:31 -0700 Subject: [PATCH] build: convert to being a module --- build.zig | 24 ++++++++---------------- nats-c.build.zig | 16 +++++++++------- 2 files changed, 17 insertions(+), 23 deletions(-) diff --git a/build.zig b/build.zig index a4017b0..628285f 100644 --- a/build.zig +++ b/build.zig @@ -8,15 +8,8 @@ pub fn build(b: *std.Build) void { const target = b.standardTargetOptions(.{}); const optimize = b.standardOptimizeOption(.{}); - // const nats = b.addModule("nats", .{ - // .source_file = .{ .path = "source/nats.zig" }, - // }); - - const nats = b.addExecutable(.{ - .name = "nats_test", - .root_source_file = .{ .path = "src/nats.zig" }, - .target = target, - .optimize = optimize, + const nats = b.addModule("nats", .{ + .source_file = .{ .path = "src/nats.zig" }, }); const nats_c = nats_build.nats_c_lib( @@ -24,18 +17,17 @@ pub fn build(b: *std.Build) void { .{ .name = "nats-c", .target = target, .optimize = optimize }, ); - nats.linkLibrary(nats_c); - b.installArtifact(nats); - - const main_tests = b.addTest(.{ - .root_source_file = .{ .path = "src/nats.zig" }, + const tests = b.addTest(.{ + .root_source_file = .{ .path = "tests/main.zig" }, .target = target, .optimize = optimize, }); - main_tests.linkLibrary(nats_c); + tests.addModule("nats", nats); + tests.linkLibrary(nats_c); - const run_main_tests = b.addRunArtifact(main_tests); + b.installArtifact(tests); + const run_main_tests = b.addRunArtifact(tests); const test_step = b.step("test", "Run tests"); test_step.dependOn(&run_main_tests.step); } diff --git a/nats-c.build.zig b/nats-c.build.zig index ffeda56..3c25a6f 100644 --- a/nats-c.build.zig +++ b/nats-c.build.zig @@ -19,31 +19,33 @@ pub fn nats_c_lib( .optimize = options.optimize, }); - lib.disable_sanitize_c = true; + const cflags = [_][]const u8{ + "-fno-sanitize=undefined", + }; lib.linkLibC(); - lib.addCSourceFiles(&common_sources, &.{"-fno-sanitize=undefined"}); + lib.addCSourceFiles(&common_sources, &cflags); lib.addIncludePath(.{ .path = nats_src_prefix ++ "include" }); // if building with streaming support // lib.addIncludePath(.{ .path = nats_src_prefix ++ "stan" }); - // lib.addCSourceFiles(&streaming_sources, &.{"-fno-sanitize=undefined"}); + // lib.addCSourceFiles(&streaming_sources, &cflags); const tinfo = lib.target_info.target; switch (tinfo.os.tag) { .windows => { - lib.addCSourceFiles(&win_sources, &.{"-fno-sanitize=undefined"}); + lib.addCSourceFiles(&win_sources, &cflags); if (tinfo.abi != .msvc) { - lib.addCSourceFiles(&.{"src/win-crosshack.c"}, &.{"-fno-sanitize=undefined"}); + lib.addCSourceFiles(&.{"src/win-crosshack.c"}, &cflags); } lib.defineCMacro("_WIN32", null); lib.linkSystemLibrary("ws2_32"); }, .macos => { - lib.addCSourceFiles(&unix_sources, &.{"-fno-sanitize=undefined"}); + lib.addCSourceFiles(&unix_sources, &cflags); lib.defineCMacro("DARWIN", null); }, else => { - lib.addCSourceFiles(&unix_sources, &.{"-fno-sanitize=undefined"}); + lib.addCSourceFiles(&unix_sources, &cflags); lib.defineCMacro("_GNU_SOURCE", null); lib.defineCMacro("LINUX", null); // may need to link pthread and rt. Not sure if those are inluded with linkLibC