diff --git a/.crow/build.yml b/.crow/build.yml index e6945f6..5859643 100644 --- a/.crow/build.yml +++ b/.crow/build.yml @@ -7,42 +7,33 @@ clone: settings: tags: true +variables: + - &zig_image 'ghcr.io/rust-cross/cargo-zigbuild:0.23' + steps: - name: build-linux-x86_64 - image: alpine:3.20 + image: *zig_image commands: - - apk add --no-cache curl xz - - curl -sSL https://ziglang.org/download/0.16.0/zig-x86_64-linux-0.16.0.tar.xz | tar -xJ -C /usr/local - - 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 + - zig build -Dtarget=x86_64-linux-musl -Doptimize=ReleaseSafe --prefix zig-out-linux-x86_64 + - cp zig-out-linux-x86_64/bin/tpb tpb-linux-x86_64 - name: build-linux-aarch64 - image: alpine:3.20 + image: *zig_image commands: - - apk add --no-cache curl xz - - curl -sSL https://ziglang.org/download/0.16.0/zig-x86_64-linux-0.16.0.tar.xz | tar -xJ -C /usr/local - - 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 + - zig build -Dtarget=aarch64-linux-musl -Doptimize=ReleaseSafe --prefix zig-out-linux-aarch64 + - cp zig-out-linux-aarch64/bin/tpb tpb-linux-aarch64 - name: build-macos-x86_64 - image: alpine:3.20 + image: *zig_image commands: - - apk add --no-cache curl xz - - curl -sSL https://ziglang.org/download/0.16.0/zig-x86_64-linux-0.16.0.tar.xz | tar -xJ -C /usr/local - - 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 + - zig build -Dtarget=x86_64-macos -Doptimize=ReleaseSafe --prefix zig-out-macos-x86_64 --sysroot /opt/MacOSX11.3.sdk + - cp zig-out-macos-x86_64/bin/tpb tpb-macos-x86_64 - name: build-macos-aarch64 - image: alpine:3.20 + image: *zig_image commands: - - apk add --no-cache curl xz - - curl -sSL https://ziglang.org/download/0.16.0/zig-x86_64-linux-0.16.0.tar.xz | tar -xJ -C /usr/local - - 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 + - zig build -Dtarget=aarch64-macos -Doptimize=ReleaseSafe --prefix zig-out-macos-aarch64 --sysroot /opt/MacOSX11.3.sdk + - cp zig-out-macos-aarch64/bin/tpb tpb-macos-aarch64 - name: release diff --git a/build.zig b/build.zig index 59c2f26..76e2321 100644 --- a/build.zig +++ b/build.zig @@ -29,12 +29,20 @@ pub fn build(b: *std.Build) void { .language = .objective_c, .flags = &.{"-fobjc-arc"}, }); - exe.root_module.linkFramework("Cocoa", .{}); tests.root_module.addCSourceFiles(.{ .files = &.{"src/Clip/NSPBBridge.m"}, .language = .objective_c, .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", .{}); }