prismlauncher: introduce unwrapped packages

Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
This commit is contained in:
Sefa Eyeoglu 2023-05-04 17:18:52 +02:00
parent f73acb5733
commit 97516c6034
No known key found for this signature in database
GPG Key ID: E13DFD4B47127951
3 changed files with 86 additions and 45 deletions

View File

@ -3,29 +3,17 @@
, fetchFromGitHub
, cmake
, ninja
, jdk8
, jdk17
, zlib
, file
, wrapQtAppsHook
, xorg
, libpulseaudio
, qtbase
, qtsvg
, qtwayland
, libGL
, quazip
, glfw
, openal
, extra-cmake-modules
, tomlplusplus
, ghc_filesystem
, msaClientID ? ""
, jdks ? [ jdk17 jdk8 ]
, gamemodeSupport ? true
, gamemode
, msaClientID ? ""
, gamemodeSupport ? true
}:
let
libnbtplusplus = fetchFromGitHub {
owner = "PrismLauncher";
@ -34,9 +22,8 @@ let
sha256 = "sha256-TvVOjkUobYJD9itQYueELJX3wmecvEdCbJ0FinW2mL4=";
};
in
stdenv.mkDerivation rec {
pname = "prismlauncher";
pname = "prismlauncher-unwrapped";
version = "6.3";
src = fetchFromGitHub {
@ -46,17 +33,14 @@ stdenv.mkDerivation rec {
sha256 = "sha256-7tptHKWkbdxTn6VIPxXE1K3opKRiUW2zv9r6J05dcS8=";
};
nativeBuildInputs = [ extra-cmake-modules cmake file jdk17 ninja wrapQtAppsHook ];
nativeBuildInputs = [ extra-cmake-modules cmake jdk17 ninja ];
buildInputs = [
qtbase
qtsvg
zlib
quazip
ghc_filesystem
tomlplusplus
]
++ lib.optional (lib.versionAtLeast qtbase.version "6") qtwayland
++ lib.optional gamemodeSupport gamemode.dev;
] ++ lib.optional gamemodeSupport gamemode;
cmakeFlags = lib.optionals (msaClientID != "") [ "-DLauncher_MSA_CLIENT_ID=${msaClientID}" ]
++ lib.optionals (lib.versionAtLeast qtbase.version "6") [ "-DLauncher_QT_VERSION_MAJOR=6" ];
@ -69,28 +53,7 @@ stdenv.mkDerivation rec {
chown -R $USER: source/libraries/libnbtplusplus
'';
qtWrapperArgs =
let
libpath = with xorg;
lib.makeLibraryPath ([
libX11
libXext
libXcursor
libXrandr
libXxf86vm
libpulseaudio
libGL
glfw
openal
stdenv.cc.cc.lib
] ++ lib.optional gamemodeSupport gamemode.lib);
in
[
"--set LD_LIBRARY_PATH /run/opengl-driver/lib:${libpath}"
"--prefix PRISMLAUNCHER_JAVA_PATHS : ${lib.makeSearchPath "bin/java" jdks}"
# xorg.xrandr needed for LWJGL [2.9.2, 3) https://github.com/LWJGL/lwjgl/issues/128
"--prefix PATH : ${lib.makeBinPath [xorg.xrandr]}"
];
dontWrapQtApps = true;
meta = with lib; {
homepage = "https://prismlauncher.org/";

View File

@ -0,0 +1,74 @@
{ lib
, stdenv
, symlinkJoin
, prismlauncher-unwrapped
, wrapQtAppsHook
, qtbase # needed for wrapQtAppsHook
, qtsvg
, qtwayland
, xorg
, libpulseaudio
, libGL
, glfw
, openal
, jdk8
, jdk17
, jdks ? [ jdk17 jdk8 ]
, gamemode
, gamemodeSupport ? true
, additionalLibs ? [ ]
}:
let
prismlauncherFinal = prismlauncher-unwrapped.override {
inherit gamemodeSupport;
inherit gamemode;
};
in
symlinkJoin {
name = "prismlauncher-${prismlauncherFinal.version}";
paths = [ prismlauncherFinal ];
nativeBuildInputs = [
wrapQtAppsHook
];
buildInputs = [
qtbase
qtsvg
]
++ lib.optional (lib.versionAtLeast qtbase.version "6") qtwayland;
postBuild = ''
wrapQtAppsHook
'';
qtWrapperArgs =
let
libs = (with xorg; [
libX11
libXext
libXcursor
libXrandr
libXxf86vm
])
++ [
libpulseaudio
libGL
glfw
openal
stdenv.cc.cc.lib
]
++ lib.optional gamemodeSupport gamemode.lib
++ additionalLibs;
in
[
"--set LD_LIBRARY_PATH /run/opengl-driver/lib:${lib.makeLibraryPath libs}"
"--prefix PRISMLAUNCHER_JAVA_PATHS : ${lib.makeSearchPath "bin/java" jdks}"
# xorg.xrandr needed for LWJGL [2.9.2, 3) https://github.com/LWJGL/lwjgl/issues/128
"--prefix PATH : ${lib.makeBinPath [xorg.xrandr]}"
];
inherit (prismlauncherFinal) meta;
}

View File

@ -36527,9 +36527,13 @@ with pkgs;
principia = callPackage ../games/principia { };
prismlauncher-qt5 = libsForQt5.callPackage ../games/prismlauncher { };
prismlauncher-qt5-unwrapped = libsForQt5.callPackage ../games/prismlauncher { };
prismlauncher = qt6Packages.callPackage ../games/prismlauncher { };
prismlauncher-qt5 = libsForQt5.callPackage ../games/prismlauncher/wrapper.nix { prismlauncher-unwrapped = prismlauncher-qt5-unwrapped; };
prismlauncher-unwrapped = qt6Packages.callPackage ../games/prismlauncher { };
prismlauncher = qt6Packages.callPackage ../games/prismlauncher/wrapper.nix { };
pong3d = callPackage ../games/pong3d { };