1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
|
{ 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.26.0";
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-Gh2gQucn3VsfFrPAS/vehfVy5WqlVpvSeISB4/j08MQ=";
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;
};
# SDK 6.0 required for Robust.LoaderApi
dotnet-sdk = with dotnetCorePackages; combinePackages [ sdk_8_0 sdk_6_0 ];
dotnet-runtime = dotnetCorePackages.runtime_8_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 = [ ];
platforms = [ "x86_64-linux" ];
mainProgram = "SS14.Launcher";
};
}
|