Skip to content

Latest commit

 

History

History
88 lines (74 loc) · 4 KB

nix_expr_usage_docs.md

File metadata and controls

88 lines (74 loc) · 4 KB

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 so it can run on normal distros.
  • --argstr buildConfig Debug builds the BizHawk solution in Debug configuration.
  • --argstr extraDefines "CoolFeatureFlag" adds to <DefineConstants/>.
  • --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:

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

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