From 99daf922fd1b56ab69b18d504c7f3383febcccf0 Mon Sep 17 00:00:00 2001 From: torque Date: Mon, 6 Nov 2023 22:32:22 -0800 Subject: [PATCH] build: enable building protobuf-c and streaming support This is a simple enough change. However, there are no tests for the streaming functionality, and I need to decide if I want to actually try to write bindings for them. --- nats-c.build.zig | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/nats-c.build.zig b/nats-c.build.zig index 716442d..b5c10b7 100644 --- a/nats-c.build.zig +++ b/nats-c.build.zig @@ -26,9 +26,12 @@ pub fn nats_c_lib( lib.linkLibC(); 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, &cflags); + // if building with streaming support (protocol.pb-c.c includes + // , unfortunately) + lib.addIncludePath(.{ .path = "deps" }); + lib.addIncludePath(.{ .path = nats_src_prefix ++ "stan" }); + lib.addCSourceFiles(&streaming_sources, &cflags); + lib.addCSourceFiles(&protobuf_c_sources, &cflags); const ssl_dep = b.dependency("libressl", .{ .target = options.target, @@ -62,6 +65,7 @@ pub fn nats_c_lib( lib.defineCMacro("NATS_HAS_TLS", null); lib.defineCMacro("NATS_USE_OPENSSL_1_1", null); lib.defineCMacro("NATS_FORCE_HOST_VERIFICATION", null); + lib.defineCMacro("NATS_HAS_STREAMING", null); lib.defineCMacro("_REENTRANT", null); inline for (install_headers) |header| { @@ -141,3 +145,7 @@ const streaming_sources = [_][]const u8{ nats_src_prefix ++ "stan/sopts.c", nats_src_prefix ++ "stan/sub.c", }; + +const protobuf_c_sources = [_][]const u8{ + "deps/protobuf-c/protobuf-c.c", +};