From d974d8d511e6995d0d595a4dd69ca459ae1b7fa3 Mon Sep 17 00:00:00 2001 From: "Nurul Huda (Apon)" Date: Fri, 23 Jan 2026 21:10:27 +0600 Subject: [PATCH] fix: add syslib for win --- .github/workflows/ci.yml | 8 ++++---- build.zig | 20 +++++++++++++++++--- 2 files changed, 21 insertions(+), 7 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 01c6ada..95910cf 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -12,8 +12,8 @@ jobs: runs-on: ${{ matrix.os }} strategy: matrix: - # os: [ubuntu-latest, windows-latest, macos-latest] - os: [ubuntu-latest, macos-latest] + os: [ubuntu-latest, windows-latest, macos-latest] + # os: [ubuntu-latest, macos-latest] steps: - name: Checkout code @@ -45,8 +45,8 @@ jobs: needs: build strategy: matrix: - # os: [ubuntu-latest, windows-latest, macos-latest] - os: [ubuntu-latest, macos-latest] + os: [ubuntu-latest, windows-latest, macos-latest] + # os: [ubuntu-latest, macos-latest] steps: - name: Checkout code diff --git a/build.zig b/build.zig index 908b8b5..feb9dcc 100644 --- a/build.zig +++ b/build.zig @@ -11,7 +11,11 @@ pub fn build(b: *std.Build) void { mod.addObjectFile(b.path(getTemporalRsPath(target))); mod.link_libc = true; if (target.result.os.tag == .linux) mod.linkSystemLibrary("unwind", .{}); - + if (target.result.os.tag == .windows) { + mod.linkSystemLibrary("ws2_32", .{}); + mod.linkSystemLibrary("bcrypt", .{}); + mod.linkSystemLibrary("advapi32", .{}); + } const exe = b.addExecutable(.{ .name = "temporalz", .root_module = b.createModule(.{ @@ -46,6 +50,11 @@ pub fn build(b: *std.Build) void { }); mod_tests.linkLibC(); if (target.result.os.tag == .linux) mod_tests.linkSystemLibrary("unwind"); + if (target.result.os.tag == .windows) { + mod_tests.linkSystemLibrary("ws2_32"); + mod_tests.linkSystemLibrary("bcrypt"); + mod_tests.linkSystemLibrary("advapi32"); + } test_step.dependOn(&b.addRunArtifact(mod_tests).step); const exe_tests = b.addTest(.{ .root_module = exe.root_module }); test_step.dependOn(&b.addRunArtifact(exe_tests).step); @@ -89,8 +98,8 @@ pub fn build(b: *std.Build) void { .{ .name = "linux-aarch64", .target = .{ .cpu_arch = .aarch64, .os_tag = .linux } }, .{ .name = "macos-x64", .target = .{ .cpu_arch = .x86_64, .os_tag = .macos } }, .{ .name = "macos-aarch64", .target = .{ .cpu_arch = .aarch64, .os_tag = .macos } }, - .{ .name = "windows-x64", .target = .{ .cpu_arch = .x86_64, .os_tag = .windows } }, - .{ .name = "windows-aarch64", .target = .{ .cpu_arch = .aarch64, .os_tag = .windows } }, + .{ .name = "windows-x64", .target = .{ .cpu_arch = .x86_64, .os_tag = .windows, .abi = .msvc } }, + .{ .name = "windows-aarch64", .target = .{ .cpu_arch = .aarch64, .os_tag = .windows, .abi = .msvc } }, }; const release_step = b.step("release", "Build release binaries for all targets"); @@ -105,6 +114,11 @@ pub fn build(b: *std.Build) void { release_mod.addObjectFile(b.path(getTemporalRsPath(resolved_target))); release_mod.link_libc = true; if (resolved_target.result.os.tag == .linux) release_mod.linkSystemLibrary("unwind", .{}); + if (resolved_target.result.os.tag == .windows) { + release_mod.linkSystemLibrary("ws2_32", .{}); + release_mod.linkSystemLibrary("bcrypt", .{}); + release_mod.linkSystemLibrary("advapi32", .{}); + } const release_exe = b.addExecutable(.{ .name = "temporalz",