From 4df71bcad75a6177b33bea33287982efadef69e8 Mon Sep 17 00:00:00 2001 From: Alessandro De Blasis Date: Tue, 24 Mar 2026 08:02:50 +0100 Subject: [PATCH] build: fix zlib compilation on Windows with MSVC Gate Z_HAVE_UNISTD_H behind a non-Windows check since unistd.h does not exist on Windows. Add _CRT_SECURE_NO_DEPRECATE and _CRT_NONSTDC_NO_DEPRECATE for MSVC to suppress deprecation errors for standard C functions that zlib uses. Co-Authored-By: Claude Opus 4.6 (1M context) --- pkg/zlib/build.zig | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/pkg/zlib/build.zig b/pkg/zlib/build.zig index 246ab1bcb..6bde60ec7 100644 --- a/pkg/zlib/build.zig +++ b/pkg/zlib/build.zig @@ -32,8 +32,16 @@ pub fn build(b: *std.Build) !void { "-DHAVE_SYS_TYPES_H", "-DHAVE_STDINT_H", "-DHAVE_STDDEF_H", - "-DZ_HAVE_UNISTD_H", }); + if (target.result.os.tag != .windows) { + try flags.append(b.allocator, "-DZ_HAVE_UNISTD_H"); + } + if (target.result.abi == .msvc) { + try flags.appendSlice(b.allocator, &.{ + "-D_CRT_SECURE_NO_DEPRECATE", + "-D_CRT_NONSTDC_NO_DEPRECATE", + }); + } lib.addCSourceFiles(.{ .root = upstream.path(""), .files = srcs,