From 7273dda3029994c317c5b1ba4a777662c3363998 Mon Sep 17 00:00:00 2001 From: "Nurul Huda (Apon)" Date: Thu, 16 Jul 2026 03:15:41 +0600 Subject: [PATCH] ci: do not pass target to build.crab to crosscompile --- .github/workflows/cd.yml | 71 ---------------------------------------- lib/build.zig | 7 +++- 2 files changed, 6 insertions(+), 72 deletions(-) diff --git a/.github/workflows/cd.yml b/.github/workflows/cd.yml index 3ac6ca7..329b9fb 100644 --- a/.github/workflows/cd.yml +++ b/.github/workflows/cd.yml @@ -17,7 +17,6 @@ jobs: fail-fast: false matrix: include: - # macOS - target: x86_64-macos os: macos-latest rust-target: x86_64-apple-darwin @@ -26,8 +25,6 @@ jobs: os: macos-latest rust-target: aarch64-apple-darwin cross-packages: "" - - # Linux - target: x86_64-linux-gnu os: ubuntu-latest rust-target: x86_64-unknown-linux-gnu @@ -36,36 +33,6 @@ jobs: os: ubuntu-latest rust-target: aarch64-unknown-linux-gnu cross-packages: gcc-aarch64-linux-gnu - - target: x86-linux-gnu - os: ubuntu-latest - rust-target: i686-unknown-linux-gnu - cross-packages: gcc-i686-linux-gnu - - target: arm-linux-gnueabihf - os: ubuntu-latest - rust-target: armv7-unknown-linux-gnueabihf - cross-packages: gcc-arm-linux-gnueabihf - - target: loongarch64-linux-gnu - os: ubuntu-latest - rust-target: loongarch64-unknown-linux-gnu - cross-packages: gcc-loongarch64-linux-gnu - - target: mips64el-linux-gnuabi64 - os: ubuntu-latest - rust-target: mips64el-unknown-linux-gnuabi64 - cross-packages: gcc-mips64el-linux-gnuabi64 - - target: powerpc64-linux-gnu - os: ubuntu-latest - rust-target: powerpc64le-unknown-linux-gnu - cross-packages: gcc-powerpc64-linux-gnu - - target: riscv64-linux-gnu - os: ubuntu-latest - rust-target: riscv64gc-unknown-linux-gnu - cross-packages: gcc-riscv64-linux-gnu - - target: s390x-linux-gnu - os: ubuntu-latest - rust-target: s390x-unknown-linux-gnu - cross-packages: gcc-s390x-linux-gnu - - # Windows - target: x86_64-windows-gnu os: ubuntu-latest rust-target: x86_64-pc-windows-gnu @@ -74,44 +41,6 @@ jobs: os: ubuntu-latest rust-target: aarch64-pc-windows-gnullvm cross-packages: mingw-w64 - - target: x86-windows-gnu - os: ubuntu-latest - rust-target: i686-pc-windows-gnu - cross-packages: mingw-w64 - - # BSD - - target: x86_64-freebsd - os: ubuntu-latest - rust-target: x86_64-unknown-freebsd - cross-packages: "" - - target: aarch64-freebsd - os: ubuntu-latest - rust-target: aarch64-unknown-freebsd - cross-packages: "" - - target: x86_64-netbsd - os: ubuntu-latest - rust-target: x86_64-unknown-netbsd - cross-packages: "" - - target: aarch64-netbsd - os: ubuntu-latest - rust-target: aarch64-unknown-netbsd - cross-packages: "" - - target: x86_64-openbsd - os: ubuntu-latest - rust-target: x86_64-unknown-openbsd - cross-packages: "" - - target: aarch64-openbsd - os: ubuntu-latest - rust-target: aarch64-unknown-openbsd - cross-packages: "" - - # illumos - - target: x86_64-solaris - os: ubuntu-latest - rust-target: x86_64-pc-solaris - cross-packages: "" - - # Additional targets - target: wasm32-freestanding os: ubuntu-latest rust-target: wasm32-unknown-unknown diff --git a/lib/build.zig b/lib/build.zig index 68323a3..3cd0841 100644 --- a/lib/build.zig +++ b/lib/build.zig @@ -40,14 +40,19 @@ pub fn build(b: *std.Build) !void { } else { // std.debug.print("building from source: {s}\n searched for prebuild at: {s}\n", .{ prebuilt_lib_path, prebuilt_lib_path }); const build_crab = @import("build_crab"); + + var zig_target = target.result; + if (zig_target.os.tag == .windows) zig_target.abi = .gnu; + const rust_target = build_crab.rust.Target.fromZig(zig_target) catch + @panic("unable to convert target triple to Rust"); const build_dir = build_crab.addCargoBuild( b, .{ .manifest_path = b.path("Cargo.toml"), .cargo_args = if (optimize == .Debug) &.{} else &.{"--release"}, + .rust_target = .{ .value = b.fmt("{f}", .{rust_target}) }, }, .{ - .target = target, .optimize = .ReleaseSafe, }, );