## Available attributes Installables: Version | Attr for asms | Attr for EmuHawk | Attr for DiscoHawk --:|:--|:--|:-- 2.9.2 dev (CWD) | `bizhawkAssemblies` | `emuhawk` | `discohawk` 2.9.1 | (`bizhawkAssemblies-latest-bin` = ) `bizhawkAssemblies-2_9_1-bin` | (`emuhawk-latest-bin` = ) `emuhawk-2_9_1-bin` | (`discohawk-latest-bin` = ) `discohawk-2_9_1-bin` 2.9.1 from source | (`bizhawkAssemblies-latest` = ) `bizhawkAssemblies-2_9_1` | (`emuhawk-latest` = ) `emuhawk-2_9_1` | (`discohawk-latest` = ) `discohawk-2_9_1` ||| 2.9 | `bizhawkAssemblies-2_9-bin` | `emuhawk-2_9-bin` | DIY 2.9 from source | DIY | `emuhawk-2_9` | DIY 2.8 | `bizhawkAssemblies-2_8-bin` | `emuhawk-2_8-bin` | DIY 2.8 from source | DIY | `emuhawk-2_8` | DIY 2.7 | `bizhawkAssemblies-2_7-bin` | `emuhawk-2_7-bin` | DIY 2.7 from source | DIY | `emuhawk-2_7` | DIY 2.6.3 | `bizhawkAssemblies-2_6_3-bin` | `emuhawk-2_6_3-bin` | DIY 2.6.3 from source | DIY | `emuhawk-2_6_3` | DIY 2.6.2 | `bizhawkAssemblies-2_6_2-bin` | `emuhawk-2_6_2-bin` | DIY 2.6.2 from source | DIY | `emuhawk-2_6_2` | DIY 2.6.1 | `bizhawkAssemblies-2_6_1-bin` | `emuhawk-2_6_1-bin` | DIY 2.6.1 from source | DIY | `emuhawk-2_6_1` | DIY 2.6 | `bizhawkAssemblies-2_6-bin` | `emuhawk-2_6-bin` | DIY 2.6 from source | DIY | `emuhawk-2_6` | DIY 2.5.2 | `bizhawkAssemblies-2_5_2-bin` | `emuhawk-2_5_2-bin` | DIY 2.5.1 | `bizhawkAssemblies-2_5_1-bin` | `emuhawk-2_5_1-bin` | DIY 2.5 | `bizhawkAssemblies-2_5-bin` | `emuhawk-2_5-bin` | DIY 2.4.2 | `bizhawkAssemblies-2_4_2-bin` | `emuhawk-2_4_2-bin` | DIY 2.4.1 | `bizhawkAssemblies-2_4_1-bin` | `emuhawk-2_4_1-bin` | DIY 2.4 | `bizhawkAssemblies-2_4-bin` | `emuhawk-2_4-bin` | DIY 2.3.3 | `bizhawkAssemblies-2_3_3-bin` | `emuhawk-2_3_3-bin` | DIY 2.3.2 | `bizhawkAssemblies-2_3_2-bin` | `emuhawk-2_3_2-bin` | DIY Nix functions and data: - `buildAssembliesFor` - `buildDiscoHawkInstallableFor` - `buildEmuHawkInstallableFor` - `buildExtraManagedDepsFor` - `buildUnmanagedDepsFor` - `depsForHistoricalRelease` - `launchScriptsForLocalBuild` - `releaseTagSourceInfos` - `splitReleaseArtifact` There are a few parameters you can tweak without writing a full Nix expression: - `--arg forNixOS false` wraps the final executable with [nixGL](https://github.com/nix-community/nixGL) so it can run on normal distros. - `--argstr buildConfig Debug` builds the BizHawk solution in Debug configuration. - `--argstr extraDefines "CoolFeatureFlag"` adds to ``. - `--arg initConfig {}` can be used to set up keybinds and such, though you probably won't want to use `--arg` for that. - Check the source for the full list. Every installable can also be used with `nix-shell`. Omitting `-A` is the same as `nix-shell -A emuhawk-latest`. The `emuhawk-*` (and `discohawk-*`) attrs are wrappers, so `nix-build --check` won't rebuild the assemblies. You can use e.g. `-A emuhawk-latest.assemblies --check`. The `bizhawkAssemblies-*` attrs (and `*.assemblies`) each have 4 outputs: `!out`, `!assets`, `!extraUnmanagedDeps`, and `!waterboxCores`. See `packages.nix` for more detail and help with overriding. ## Building local copy of repo (incl. changes) ### Use Nix on local source (CWD) As per the above table: ```sh nix-build --pure -A emuhawk result/bin/emuhawk-* --mono-no-redirect # may need to run this first if the checked-in copy of `Dist/deps.nix` hasn't been updated: nix-build --pure -A emuhawk.fetch-deps && ./result ``` ### Use dotnet from Nix ```sh nix-shell # = `nix-shell -A emuhawk-latest` # (in shell): Dist/BuildDebug.sh # = `dotnet build -c Debug BizHawk.sln` emuhawk-monort-local # = `cd output && mono EmuHawk.exe` # if deps (besides NuGet packages) have changed, may need to do this instead, but it will do a slow copy of the repo to the Nix store nix-shell -A emuhawk ```