diff options
Diffstat (limited to 'nixpkgs/pkgs/games/space-station-14-launcher/space-station-14-launcher.nix')
-rw-r--r-- | nixpkgs/pkgs/games/space-station-14-launcher/space-station-14-launcher.nix | 143 |
1 files changed, 143 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/games/space-station-14-launcher/space-station-14-launcher.nix b/nixpkgs/pkgs/games/space-station-14-launcher/space-station-14-launcher.nix new file mode 100644 index 000000000000..5b4dc1b372ef --- /dev/null +++ b/nixpkgs/pkgs/games/space-station-14-launcher/space-station-14-launcher.nix @@ -0,0 +1,143 @@ +{ lib +, buildDotnetModule +, dotnetCorePackages +, fetchFromGitHub +, wrapGAppsHook +, iconConvTools +, copyDesktopItems +, makeDesktopItem +, libX11 +, libICE +, libSM +, libXi +, libXcursor +, libXext +, libXrandr +, fontconfig +, glew +, SDL2 +, glfw +, glibc +, libGL +, freetype +, openal +, fluidsynth +, gtk3 +, pango +, atk +, cairo +, zlib +, glib +, gdk-pixbuf +}: +let + version = "0.21.1"; + pname = "space-station-14-launcher"; +in +buildDotnetModule rec { + inherit pname; + + # Workaround to prevent buildDotnetModule from overriding assembly versions. + name = "${pname}-${version}"; + + src = fetchFromGitHub { + owner = "space-wizards"; + repo = "SS14.Launcher"; + rev = "v${version}"; + hash = "sha256-uJ/47cQZsGgrExemWCWeSM/U6eW2HoKWHCsVE2KypVQ="; + fetchSubmodules = true; + }; + + buildType = "Release"; + selfContainedBuild = false; + + projectFile = [ + "SS14.Loader/SS14.Loader.csproj" + "SS14.Launcher/SS14.Launcher.csproj" + ]; + + nugetDeps = ./deps.nix; + + passthru = { + inherit version; # Workaround so update script works. + updateScript = ./update.sh; + }; + + dotnet-sdk = dotnetCorePackages.sdk_7_0; + dotnet-runtime = dotnetCorePackages.runtime_7_0; + + dotnetFlags = [ + "-p:FullRelease=true" + "-p:RobustILLink=true" + "-nologo" + ]; + + nativeBuildInputs = [ wrapGAppsHook iconConvTools copyDesktopItems ]; + + runtimeDeps = [ + # Required by the game. + glfw + SDL2 + glibc + libGL + openal + freetype + fluidsynth + + # Needed for file dialogs. + gtk3 + pango + cairo + atk + zlib + glib + gdk-pixbuf + + # Avalonia UI dependencies. + libX11 + libICE + libSM + libXi + libXcursor + libXext + libXrandr + fontconfig + glew + ]; + + executables = [ "SS14.Launcher" ]; + + desktopItems = [ + (makeDesktopItem { + name = pname; + exec = meta.mainProgram; + icon = pname; + desktopName = "Space Station 14 Launcher"; + comment = meta.description; + categories = [ "Game" ]; + startupWMClass = meta.mainProgram; + }) + ]; + + postInstall = '' + mkdir -p $out/lib/space-station-14-launcher/loader + cp -r SS14.Loader/bin/${buildType}/*/* $out/lib/space-station-14-launcher/loader/ + + icoFileToHiColorTheme SS14.Launcher/Assets/icon.ico space-station-14-launcher $out + ''; + + dontWrapGApps = true; + + preFixup = '' + makeWrapperArgs+=("''${gappsWrapperArgs[@]}") + ''; + + meta = with lib; { + description = "Launcher for Space Station 14, a multiplayer game about paranoia and disaster"; + homepage = "https://spacestation14.io"; + license = licenses.mit; + maintainers = [ maintainers.zumorica ]; + platforms = [ "x86_64-linux" ]; + mainProgram = "SS14.Launcher"; + }; +} |