nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1{ lib
2, stdenv
3, symlinkJoin
4, prismlauncher-unwrapped
5, wrapQtAppsHook
6, qtbase # needed for wrapQtAppsHook
7, qtsvg
8, qtwayland
9, xorg
10, libpulseaudio
11, libGL
12, glfw
13, openal
14, jdk8
15, jdk17
16, gamemode
17
18, msaClientID ? null
19, gamemodeSupport ? true
20, jdks ? [ jdk17 jdk8 ]
21, additionalLibs ? [ ]
22}:
23let
24 prismlauncherFinal = prismlauncher-unwrapped.override {
25 inherit msaClientID gamemodeSupport;
26 };
27in
28symlinkJoin {
29 name = "prismlauncher-${prismlauncherFinal.version}";
30
31 paths = [ prismlauncherFinal ];
32
33 nativeBuildInputs = [
34 wrapQtAppsHook
35 ];
36
37 buildInputs = [
38 qtbase
39 qtsvg
40 ]
41 ++ lib.optional (lib.versionAtLeast qtbase.version "6") qtwayland;
42
43 postBuild = ''
44 wrapQtAppsHook
45 '';
46
47 qtWrapperArgs =
48 let
49 libs = (with xorg; [
50 libX11
51 libXext
52 libXcursor
53 libXrandr
54 libXxf86vm
55 ])
56 ++ [
57 libpulseaudio
58 libGL
59 glfw
60 openal
61 stdenv.cc.cc.lib
62 ]
63 ++ lib.optional gamemodeSupport gamemode.lib
64 ++ additionalLibs;
65
66 in
67 [
68 "--set LD_LIBRARY_PATH /run/opengl-driver/lib:${lib.makeLibraryPath libs}"
69 "--prefix PRISMLAUNCHER_JAVA_PATHS : ${lib.makeSearchPath "bin/java" jdks}"
70 # xorg.xrandr needed for LWJGL [2.9.2, 3) https://github.com/LWJGL/lwjgl/issues/128
71 "--prefix PATH : ${lib.makeBinPath [xorg.xrandr]}"
72 ];
73
74 inherit (prismlauncherFinal) meta;
75}