04ebd83f08
Replace the single-target musl cc with cargo-zigbuild + zig in the flake devShell — one universal cross cc/linker (incl. rusqlite's bundled SQLite C) for all four non-macOS D1 targets, added to rust-toolchain.toml: x86_64/aarch64-unknown-linux-musl (static, D2) x86_64-pc-windows-gnu, aarch64-pc-windows-gnullvm (standalone .exe) Windows links -lsynchronization (std WaitOnAddress), which rust-overlay's toolchain and zig's mingw don't ship; the symbols are forwarded by kernel32, so an empty stub libsynchronization.a (ci/winstub/, wired via .cargo/config.toml for the windows targets only) satisfies the linker. Verified: all four build; linux static; windows valid PE32+.
22 lines
1.1 KiB
TOML
22 lines
1.1 KiB
TOML
[toolchain]
|
|
# Pinned to an exact stable release (not the floating "stable" channel) so
|
|
# `nix flake update` cannot surprise-bump Rust into new clippy lints that would
|
|
# fail the `-D warnings` CI gate. Matches the host toolchain and the datamage
|
|
# flake's convention (its ADR 0046). Bump deliberately, in its own commit.
|
|
channel = "1.95.0"
|
|
# rustfmt + clippy back the `fmt`/`clippy` CI stages; no coverage or WASM
|
|
# tooling is needed here (pure-Rust TUI).
|
|
components = ["rustfmt", "clippy"]
|
|
# The non-macOS D1 release matrix, all cross-built from Linux x86_64 via
|
|
# `cargo zigbuild` (D1: cross-platform binaries; D2: single static binary).
|
|
# Linux uses musl + crt-static for fully static, portable binaries; Windows
|
|
# uses the gnu/gnullvm ABIs (Zig statically links libc, so the .exe is
|
|
# standalone). macOS is deferred — its arboard/AppKit link needs Apple's SDK,
|
|
# which a Linux runner can't supply cleanly (see docs/ci/adr ADR-ci-001).
|
|
targets = [
|
|
"x86_64-unknown-linux-musl",
|
|
"aarch64-unknown-linux-musl",
|
|
"x86_64-pc-windows-gnu",
|
|
"aarch64-pc-windows-gnullvm",
|
|
]
|