build: updated pipelines to use cargo-zigbuild container to work with apple and be faster
All checks were successful
ci/crow/push/release Pipeline was successful
ci/crow/tag/build Pipeline was successful

This commit is contained in:
Grace Yoder 2026-06-30 14:11:34 -06:00
parent 63265d1d7e
commit 1be3e0468d
Signed by: grace
SSH key fingerprint: SHA256:oG9v0ZlohsoMAg083HAwBGOcaPLF3nIuOlAW4MtASMo
2 changed files with 24 additions and 25 deletions

View file

@ -7,42 +7,33 @@ clone:
settings: settings:
tags: true tags: true
variables:
- &zig_image 'ghcr.io/rust-cross/cargo-zigbuild:0.23'
steps: steps:
- name: build-linux-x86_64 - name: build-linux-x86_64
image: alpine:3.20 image: *zig_image
commands: commands:
- apk add --no-cache curl xz - zig build -Dtarget=x86_64-linux-musl -Doptimize=ReleaseSafe --prefix zig-out-linux-x86_64
- curl -sSL https://ziglang.org/download/0.16.0/zig-x86_64-linux-0.16.0.tar.xz | tar -xJ -C /usr/local - cp zig-out-linux-x86_64/bin/tpb tpb-linux-x86_64
- ln -s /usr/local/zig-x86_64-linux-0.16.0/zig /usr/local/bin/zig
- zig build -Dtarget=x86_64-linux-musl -Doptimize=ReleaseSafe
- cp zig-out/bin/tpb tpb-linux-x86_64
- name: build-linux-aarch64 - name: build-linux-aarch64
image: alpine:3.20 image: *zig_image
commands: commands:
- apk add --no-cache curl xz - zig build -Dtarget=aarch64-linux-musl -Doptimize=ReleaseSafe --prefix zig-out-linux-aarch64
- curl -sSL https://ziglang.org/download/0.16.0/zig-x86_64-linux-0.16.0.tar.xz | tar -xJ -C /usr/local - cp zig-out-linux-aarch64/bin/tpb tpb-linux-aarch64
- ln -s /usr/local/zig-x86_64-linux-0.16.0/zig /usr/local/bin/zig
- zig build -Dtarget=aarch64-linux-musl -Doptimize=ReleaseSafe
- cp zig-out/bin/tpb tpb-linux-aarch64
- name: build-macos-x86_64 - name: build-macos-x86_64
image: alpine:3.20 image: *zig_image
commands: commands:
- apk add --no-cache curl xz - zig build -Dtarget=x86_64-macos -Doptimize=ReleaseSafe --prefix zig-out-macos-x86_64 --sysroot /opt/MacOSX11.3.sdk
- curl -sSL https://ziglang.org/download/0.16.0/zig-x86_64-linux-0.16.0.tar.xz | tar -xJ -C /usr/local - cp zig-out-macos-x86_64/bin/tpb tpb-macos-x86_64
- ln -s /usr/local/zig-x86_64-linux-0.16.0/zig /usr/local/bin/zig
- zig build -Dtarget=x86_64-macos -Doptimize=ReleaseSafe
- cp zig-out/bin/tpb tpb-macos-x86_64
- name: build-macos-aarch64 - name: build-macos-aarch64
image: alpine:3.20 image: *zig_image
commands: commands:
- apk add --no-cache curl xz - zig build -Dtarget=aarch64-macos -Doptimize=ReleaseSafe --prefix zig-out-macos-aarch64 --sysroot /opt/MacOSX11.3.sdk
- curl -sSL https://ziglang.org/download/0.16.0/zig-x86_64-linux-0.16.0.tar.xz | tar -xJ -C /usr/local - cp zig-out-macos-aarch64/bin/tpb tpb-macos-aarch64
- ln -s /usr/local/zig-x86_64-linux-0.16.0/zig /usr/local/bin/zig
- zig build -Dtarget=aarch64-macos -Doptimize=ReleaseSafe
- cp zig-out/bin/tpb tpb-macos-aarch64
- name: release - name: release

View file

@ -29,12 +29,20 @@ pub fn build(b: *std.Build) void {
.language = .objective_c, .language = .objective_c,
.flags = &.{"-fobjc-arc"}, .flags = &.{"-fobjc-arc"},
}); });
exe.root_module.linkFramework("Cocoa", .{});
tests.root_module.addCSourceFiles(.{ tests.root_module.addCSourceFiles(.{
.files = &.{"src/Clip/NSPBBridge.m"}, .files = &.{"src/Clip/NSPBBridge.m"},
.language = .objective_c, .language = .objective_c,
.flags = &.{"-fobjc-arc"}, .flags = &.{"-fobjc-arc"},
}); });
if (b.sysroot) |sysroot| {
const framework_path = b.pathJoin(&.{ sysroot, "System/Library/Frameworks" });
const include_path = b.pathJoin(&.{ sysroot, "usr/include" });
exe.root_module.addSystemFrameworkPath(.{ .cwd_relative = framework_path });
exe.root_module.addSystemIncludePath(.{ .cwd_relative = include_path });
tests.root_module.addSystemFrameworkPath(.{ .cwd_relative = framework_path });
tests.root_module.addSystemIncludePath(.{ .cwd_relative = include_path });
}
exe.root_module.linkFramework("Cocoa", .{});
tests.root_module.linkFramework("Cocoa", .{}); tests.root_module.linkFramework("Cocoa", .{});
} }