From a97781a277c8f68425e546a9ee17de9066903876 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matheus=20C=2E=20Fran=C3=A7a?= Date: Fri, 19 Apr 2024 10:18:49 -0300 Subject: [PATCH] msvc target --- .github/workflows/zig-build.yml | 36 +++++++++++++++++++++++---------- build.zig | 5 ++++- 2 files changed, 29 insertions(+), 12 deletions(-) diff --git a/.github/workflows/zig-build.yml b/.github/workflows/zig-build.yml index bec26cbc7..2d84bb46d 100644 --- a/.github/workflows/zig-build.yml +++ b/.github/workflows/zig-build.yml @@ -14,8 +14,9 @@ jobs: matrix: # TODO: move from nightly to zig 0.12 final when released. - zig_version: [ "0.12.0-dev.3666+a2b834e8c" ] - os: [ macos-latest, ubuntu-latest ] + zig_version: [ "master" ] + # os: [ macos-latest, ubuntu-latest, windows-latest ] + os: [ windows-latest ] gc_assertions: [ true ] large_config: [ false ] enable_threads: [ false, true ] @@ -79,17 +80,30 @@ jobs: steps: - uses: actions/checkout@v4 - - name: "Install zig on Linux/x86_64" - if: runner.os == 'Linux' - run: | - mkdir zig && curl https://ziglang.org/builds/zig-linux-x86_64-${{matrix.zig_version}}.tar.xz | tar Jx --directory=zig --strip-components=1 - - name: "Install zig on MacOS/x86_64" - if: runner.os == 'macOS' - run: | - mkdir zig && curl https://ziglang.org/builds/zig-macos-x86_64-${{matrix.zig_version}}.tar.xz | tar Jx --directory=zig --strip-components=1 + - uses: korandoru/setup-zig@v1 + with: + zig-version: ${{ matrix.zig_version }} - name: Build run: > - zig/zig build + zig build + -DBUILD_SHARED_LIBS=${{ matrix.shared_libs }} + -Ddisable_handle_fork=${{ matrix.disable_handle_fork }} + -Denable_gc_assertions=${{ matrix.gc_assertions }} + -Denable_gc_debug=${{ matrix.enable_gc_debug }} + -Denable_large_config=${{ matrix.large_config }} + -Denable_munmap=${{ matrix.enable_munmap }} + -Denable_parallel_mark=${{ matrix.parallel_mark }} + -Denable_redirect_malloc=${{ matrix.redirect_malloc }} + -Denable_rwlock=${{ matrix.enable_rwlock }} + -Denable_thread_local_alloc=${{ matrix.thread_local_alloc }} + -Denable_threads=${{ matrix.enable_threads }} + -Denable_werror + test + + - name: "MSVC target" + if: runner.os == 'Windows' + run: > + zig build -Dtarget=native-native-msvc -DBUILD_SHARED_LIBS=${{ matrix.shared_libs }} -Ddisable_handle_fork=${{ matrix.disable_handle_fork }} -Denable_gc_assertions=${{ matrix.gc_assertions }} diff --git a/build.zig b/build.zig index 4295ec061..6fc40e63a 100644 --- a/build.zig +++ b/build.zig @@ -395,7 +395,10 @@ pub fn build(b: *std.Build) void { // -U GC_MISSING_EXECINFO_H // -U GC_NO_SIGSETJMP flags.append("-D HAVE_SYS_TYPES_H") catch unreachable; - flags.append("-D HAVE_UNISTD_H") catch unreachable; + if (lib.rootModuleTarget().abi != .msvc) + flags.append("-D HAVE_UNISTD_H") catch unreachable + else + flags.append("-D _CRT_SECURE_NO_WARNINGS") catch unreachable; const have_getcontext = !t.abi.isMusl(); if (!have_getcontext) {