diff options
Diffstat (limited to 'nixpkgs/pkgs/development/tools/godot/3/mono/default.nix')
-rw-r--r-- | nixpkgs/pkgs/development/tools/godot/3/mono/default.nix | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/tools/godot/3/mono/default.nix b/nixpkgs/pkgs/development/tools/godot/3/mono/default.nix new file mode 100644 index 000000000000..22e95fb0e51a --- /dev/null +++ b/nixpkgs/pkgs/development/tools/godot/3/mono/default.nix @@ -0,0 +1,65 @@ +{ godot3 +, callPackage +, mkNugetDeps +, mkNugetSource +, mono +, dotnet-sdk +, writeText +}: + +godot3.overrideAttrs (self: base: { + pname = "godot3-mono"; + + godotBuildDescription = "mono build"; + + nativeBuildInputs = base.nativeBuildInputs ++ [ mono dotnet-sdk ]; + + glue = callPackage ./glue.nix {}; + + nugetDeps = mkNugetDeps { name = "deps"; nugetDeps = import ./deps.nix; }; + + nugetSource = + mkNugetSource { + name = "${self.pname}-nuget-source"; + description = "A Nuget source with dependencies for ${self.pname}"; + deps = [ self.nugetDeps ]; + }; + + nugetConfig = writeText "NuGet.Config" '' + <?xml version="1.0" encoding="utf-8"?> + <configuration> + <packageSources> + <add key="${self.pname}-deps" value="${self.nugetSource}/lib" /> + </packageSources> + </configuration> + ''; + + sconsFlags = base.sconsFlags ++ [ + "module_mono_enabled=true" + "mono_prefix=${mono}" + ]; + + shouldConfigureNuget = true; + + postConfigure = '' + echo "Setting up buildhome." + mkdir buildhome + export HOME="$PWD"/buildhome + + echo "Overlaying godot glue." + cp -R --no-preserve=mode "$glue"/. . + + if [ -n "$shouldConfigureNuget" ]; then + echo "Configuring NuGet." + mkdir -p ~/.nuget/NuGet + ln -s "$nugetConfig" ~/.nuget/NuGet/NuGet.Config + fi + ''; + + installedGodotShortcutFileName = "org.godotengine.GodotMono3.desktop"; + installedGodotShortcutDisplayName = "Godot Engine (Mono) 3"; + + passthru = { + make-deps = callPackage ./make-deps.nix {}; + }; +}) |