gameboy-rust/flake.nix
0xrsydn a28b830b38 feat(testing): pin public ARM fixture and document compatibility baseline
Add a standard-library Python adapter and SHA-256/size lock for jsmolka/gba-tests ARM at a7113b67e63f83a9b321696ddd7042ccfad6c881. Retain sources and license locally, refuse tracked output paths or overwrites, verify offline inputs, and generate the source-verified eval/r12 suite checkpoint without patching the ROM.

Add Python to the pinned Nix shell, offline adapter regressions, and public-test provenance/results documentation. Verified on Darwin arm64: Rust debug/release workspace tests, adapter tests, Clippy, rustdoc, native ROM and all demo window checks. The public test remains a failing baseline at instruction 0xe5b00004, PC 0x0800132c, in test 360.
2026-10-05 20:01:08 +07:00

23 lines
952 B
Nix

{
description = "Game Boy family emulation in Rust, starting with the GBA";
inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
outputs = { nixpkgs, ... }:
let
systems = [ "aarch64-darwin" "x86_64-darwin" "aarch64-linux" "x86_64-linux" ];
in {
devShells = nixpkgs.lib.genAttrs systems (system:
let pkgs = import nixpkgs { inherit system; };
in {
default = pkgs.mkShell ({
packages = with pkgs; [ rustc cargo rustfmt clippy python3 ];
} // pkgs.lib.optionalAttrs pkgs.stdenv.hostPlatform.isDarwin {
# minifb 0.28 hard-codes macOS 10.10 before user CFLAGS.
# Match the Nix SDK's deployment target so Metal APIs are available.
# Its Objective-C files also share a tentative g_metal_device definition.
CFLAGS = "-mmacosx-version-min=${pkgs.stdenv.hostPlatform.darwinMinVersion} -fcommon";
});
});
};
}