diff options
Diffstat (limited to 'pkgs/games/build-support/monogame-patcher/default.nix')
-rw-r--r-- | pkgs/games/build-support/monogame-patcher/default.nix | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/pkgs/games/build-support/monogame-patcher/default.nix b/pkgs/games/build-support/monogame-patcher/default.nix new file mode 100644 index 00000000..fffa6825 --- /dev/null +++ b/pkgs/games/build-support/monogame-patcher/default.nix @@ -0,0 +1,31 @@ +{ lib, runCommand, makeWrapper, fetchNuGet, mono, dotnetPackages }: + +runCommand "monogame-patcher" { + nativeBuildInputs = [ mono makeWrapper ]; + + src = ./patcher.cs; + + cecil = "${fetchNuGet { + baseName = "Mono.Cecil"; + version = "0.10-beta7"; + sha256 = "03bina3llcnylrfrvp5psnwrfn757j7zch5r360rpdn7gmcjjcpl"; + outputFiles = [ "lib/net40/*" ]; + }}/lib/dotnet/Mono.Cecil"; + + cliparser = "${fetchNuGet { + baseName = "CommandLineParser"; + version = "2.2.1"; + sha256 = "0wf8mzr16d2ni008m60rrk738v8ypk74llk6g8mlyx7rrlchnxaf"; + outputFiles = [ "lib/net45/*" ]; + }}/lib/dotnet/CommandLineParser"; + +} '' + mkdir -p "$out/bin" "$out/libexec/monogame-patcher" + mcs "$src" -out:"$out/libexec/monogame-patcher/patcher.exe" \ + -lib:"$cecil" -lib:"$cliparser" \ + -r:Mono.Cecil -r:Mono.Cecil.Rocks -r:CommandLine + + makeWrapper ${lib.escapeShellArg "${mono}/bin/mono"} "$out/bin/$name" \ + --set MONO_PATH "$cecil:$cliparser" \ + --add-flags "$out/libexec/monogame-patcher/patcher.exe" +'' |