aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--flake.nix59
-rw-r--r--nix/default.nix129
-rw-r--r--nix/flake-compat.nix2
3 files changed, 100 insertions, 90 deletions
diff --git a/flake.nix b/flake.nix
index 5615a758..f173511c 100644
--- a/flake.nix
+++ b/flake.nix
@@ -3,35 +3,46 @@
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable";
- flake-compat = { url = "github:edolstra/flake-compat"; flake = false; };
- libnbtplusplus = { url = "github:PrismLauncher/libnbtplusplus"; flake = false; };
+ flake-compat = {
+ url = "github:edolstra/flake-compat";
+ flake = false;
+ };
+ libnbtplusplus = {
+ url = "github:PrismLauncher/libnbtplusplus";
+ flake = false;
+ };
};
- outputs = { self, nixpkgs, libnbtplusplus, ... }:
- let
- # User-friendly version number.
- version = builtins.substring 0 8 self.lastModifiedDate;
-
- # Supported systems (qtbase is currently broken for "aarch64-darwin")
- supportedSystems = [ "x86_64-linux" "x86_64-darwin" "aarch64-linux" ];
+ outputs = {
+ self,
+ nixpkgs,
+ libnbtplusplus,
+ ...
+ }: let
+ # User-friendly version number.
+ version = builtins.substring 0 8 self.lastModifiedDate;
- # Helper function to generate an attrset '{ x86_64-linux = f "x86_64-linux"; ... }'.
- forAllSystems = nixpkgs.lib.genAttrs supportedSystems;
+ # Supported systems (qtbase is currently broken for "aarch64-darwin")
+ supportedSystems = ["x86_64-linux" "x86_64-darwin" "aarch64-linux"];
- # Nixpkgs instantiated for supported systems.
- pkgs = forAllSystems (system: nixpkgs.legacyPackages.${system});
+ # Helper function to generate an attrset '{ x86_64-linux = f "x86_64-linux"; ... }'.
+ forAllSystems = nixpkgs.lib.genAttrs supportedSystems;
- packagesFn = pkgs: rec {
- prismlauncher-qt5 = pkgs.libsForQt5.callPackage ./nix { inherit version self libnbtplusplus; };
- prismlauncher = pkgs.qt6Packages.callPackage ./nix { inherit version self libnbtplusplus; };
- };
- in
- {
- packages = forAllSystems (system:
- let packages = packagesFn pkgs.${system}; in
- packages // { default = packages.prismlauncher; }
- );
+ # Nixpkgs instantiated for supported systems.
+ pkgs = forAllSystems (system: nixpkgs.legacyPackages.${system});
- overlay = final: packagesFn;
+ packagesFn = pkgs: rec {
+ prismlauncher-qt5 = pkgs.libsForQt5.callPackage ./nix {inherit version self libnbtplusplus;};
+ prismlauncher = pkgs.qt6Packages.callPackage ./nix {inherit version self libnbtplusplus;};
};
+ in {
+ packages = forAllSystems (
+ system: let
+ packages = packagesFn pkgs.${system};
+ in
+ packages // {default = packages.prismlauncher;}
+ );
+
+ overlay = final: packagesFn;
+ };
}
diff --git a/nix/default.nix b/nix/default.nix
index 99bb2231..6d4f3f24 100644
--- a/nix/default.nix
+++ b/nix/default.nix
@@ -1,52 +1,54 @@
-{ lib
-, stdenv
-, cmake
-, jdk8
-, jdk17
-, zlib
-, file
-, wrapQtAppsHook
-, xorg
-, libpulseaudio
-, qtbase
-, qtsvg
-, qtwayland
-, libGL
-, quazip
-, glfw
-, openal
-, extra-cmake-modules
-, tomlplusplus
-, ghc_filesystem
-, cmark
-, msaClientID ? ""
-, jdks ? [ jdk17 jdk8 ]
-
+{
+ lib,
+ stdenv,
+ cmake,
+ jdk8,
+ jdk17,
+ zlib,
+ file,
+ wrapQtAppsHook,
+ xorg,
+ libpulseaudio,
+ qtbase,
+ qtsvg,
+ qtwayland,
+ libGL,
+ quazip,
+ glfw,
+ openal,
+ extra-cmake-modules,
+ tomlplusplus,
+ ghc_filesystem,
+ cmark,
+ msaClientID ? "",
+ jdks ? [jdk17 jdk8],
# flake
-, self
-, version
-, libnbtplusplus
+ self,
+ version,
+ libnbtplusplus,
}:
-
stdenv.mkDerivation rec {
pname = "prismlauncher";
inherit version;
src = lib.cleanSource self;
- nativeBuildInputs = [ extra-cmake-modules cmake file jdk17 wrapQtAppsHook ];
- buildInputs = [
- qtbase
- qtsvg
- zlib
- quazip
- ghc_filesystem
- tomlplusplus
- cmark
- ] ++ lib.optional (lib.versionAtLeast qtbase.version "6") qtwayland;
+ nativeBuildInputs = [extra-cmake-modules cmake file jdk17 wrapQtAppsHook];
+ buildInputs =
+ [
+ qtbase
+ qtsvg
+ zlib
+ quazip
+ ghc_filesystem
+ tomlplusplus
+ cmark
+ ]
+ ++ lib.optional (lib.versionAtLeast qtbase.version "6") qtwayland;
- cmakeFlags = lib.optionals (msaClientID != "") [ "-DLauncher_MSA_CLIENT_ID=${msaClientID}" ]
- ++ lib.optionals (lib.versionOlder qtbase.version "6") [ "-DLauncher_QT_VERSION_MAJOR=5" ];
+ cmakeFlags =
+ lib.optionals (msaClientID != "") ["-DLauncher_MSA_CLIENT_ID=${msaClientID}"]
+ ++ lib.optionals (lib.versionOlder qtbase.version "6") ["-DLauncher_QT_VERSION_MAJOR=5"];
dontWrapQtApps = true;
postUnpack = ''
@@ -57,30 +59,27 @@ stdenv.mkDerivation rec {
chown -R $USER: source/libraries/libnbtplusplus
'';
- postInstall =
- let
- libpath = with xorg;
- lib.makeLibraryPath [
- libX11
- libXext
- libXcursor
- libXrandr
- libXxf86vm
- libpulseaudio
- libGL
- glfw
- openal
- stdenv.cc.cc.lib
- ];
- in
- ''
- # xorg.xrandr needed for LWJGL [2.9.2, 3) https://github.com/LWJGL/lwjgl/issues/128
- wrapQtApp $out/bin/prismlauncher \
- --set LD_LIBRARY_PATH /run/opengl-driver/lib:${libpath} \
- --prefix PRISMLAUNCHER_JAVA_PATHS : ${lib.makeSearchPath "bin/java" jdks} \
- --prefix PATH : ${lib.makeBinPath [xorg.xrandr]}
- '';
-
+ postInstall = let
+ libpath = with xorg;
+ lib.makeLibraryPath [
+ libX11
+ libXext
+ libXcursor
+ libXrandr
+ libXxf86vm
+ libpulseaudio
+ libGL
+ glfw
+ openal
+ stdenv.cc.cc.lib
+ ];
+ in ''
+ # xorg.xrandr needed for LWJGL [2.9.2, 3) https://github.com/LWJGL/lwjgl/issues/128
+ wrapQtApp $out/bin/prismlauncher \
+ --set LD_LIBRARY_PATH /run/opengl-driver/lib:${libpath} \
+ --prefix PRISMLAUNCHER_JAVA_PATHS : ${lib.makeSearchPath "bin/java" jdks} \
+ --prefix PATH : ${lib.makeBinPath [xorg.xrandr]}
+ '';
meta = with lib; {
homepage = "https://prismlauncher.org/";
@@ -93,6 +92,6 @@ stdenv.mkDerivation rec {
platforms = platforms.linux;
changelog = "https://github.com/PrismLauncher/PrismLauncher/releases/tag/${version}";
license = licenses.gpl3Only;
- maintainers = with maintainers; [ minion3665 Scrumplex ];
+ maintainers = with maintainers; [minion3665 Scrumplex];
};
}
diff --git a/nix/flake-compat.nix b/nix/flake-compat.nix
index 8b6cb99c..7162a6cf 100644
--- a/nix/flake-compat.nix
+++ b/nix/flake-compat.nix
@@ -6,4 +6,4 @@ let
sha256 = narHash;
};
in
-import flake-compat { src = ../.; }
+ import flake-compat {src = ../.;}