aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--flake.lock16
-rw-r--r--flake.nix13
-rw-r--r--nix/distribution.nix29
-rw-r--r--nix/pkg/default.nix1
-rw-r--r--nix/pkg/wrapper.nix3
5 files changed, 53 insertions, 9 deletions
diff --git a/flake.lock b/flake.lock
index 6fbcf052..8096fceb 100644
--- a/flake.lock
+++ b/flake.lock
@@ -89,6 +89,21 @@
"type": "github"
}
},
+ "nix-filter": {
+ "locked": {
+ "lastModified": 1693833173,
+ "narHash": "sha256-hlMABKrGbEiJD5dwUSfnw1CQ3bG7KKwDV+Nx3bEZd7U=",
+ "owner": "numtide",
+ "repo": "nix-filter",
+ "rev": "ac030bd9ba98e318e1f4c4328d60766ade8ebe8b",
+ "type": "github"
+ },
+ "original": {
+ "owner": "numtide",
+ "repo": "nix-filter",
+ "type": "github"
+ }
+ },
"nixpkgs": {
"locked": {
"lastModified": 1694760568,
@@ -156,6 +171,7 @@
"flake-compat": "flake-compat",
"flake-parts": "flake-parts",
"libnbtplusplus": "libnbtplusplus",
+ "nix-filter": "nix-filter",
"nixpkgs": "nixpkgs",
"pre-commit-hooks": "pre-commit-hooks"
}
diff --git a/flake.nix b/flake.nix
index d45282aa..afb0ec63 100644
--- a/flake.nix
+++ b/flake.nix
@@ -4,6 +4,7 @@
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable";
flake-parts.url = "github:hercules-ci/flake-parts";
+ nix-filter.url = "github:numtide/nix-filter";
pre-commit-hooks = {
url = "github:cachix/pre-commit-hooks.nix";
inputs.nixpkgs.follows = "nixpkgs";
@@ -20,12 +21,14 @@
};
};
- outputs = inputs:
- inputs.flake-parts.lib.mkFlake
- {inherit inputs;}
- {
+ outputs = {
+ flake-parts,
+ pre-commit-hooks,
+ ...
+ } @ inputs:
+ flake-parts.lib.mkFlake {inherit inputs;} {
imports = [
- inputs.pre-commit-hooks.flakeModule
+ pre-commit-hooks.flakeModule
./nix/dev.nix
./nix/distribution.nix
diff --git a/nix/distribution.nix b/nix/distribution.nix
index 6b93d355..ca9999dc 100644
--- a/nix/distribution.nix
+++ b/nix/distribution.nix
@@ -9,7 +9,7 @@
...
}: {
packages = let
- ourPackages = lib.fix (final: self.overlays.default ({inherit (pkgs) darwin;} // final) pkgs);
+ ourPackages = lib.fix (final: self.overlays.default final pkgs);
in {
inherit
(ourPackages)
@@ -26,19 +26,40 @@
overlays.default = final: prev: let
version = builtins.substring 0 8 self.lastModifiedDate or "dirty";
+ filteredSelf = inputs.nix-filter.lib.filter {
+ root = ../.;
+ include = [
+ "buildconfig"
+ "cmake"
+ "launcher"
+ "libraries"
+ "program_info"
+ "tests"
+ ../COPYING.md
+ ../CMakeLists.txt
+ ];
+ };
+
# common args for prismlauncher evaluations
unwrappedArgs = {
+ self = filteredSelf;
+
inherit (inputs) libnbtplusplus;
- inherit (final.darwin.apple_sdk.frameworks) Cocoa;
- inherit self version;
+ inherit ((final.darwin or prev.darwin).apple_sdk.frameworks) Cocoa;
+ inherit version;
};
in {
prismlauncher-qt5-unwrapped = prev.libsForQt5.callPackage ./pkg unwrappedArgs;
+
prismlauncher-qt5 = prev.libsForQt5.callPackage ./pkg/wrapper.nix {
prismlauncher-unwrapped = final.prismlauncher-qt5-unwrapped;
};
+
prismlauncher-unwrapped = prev.qt6Packages.callPackage ./pkg unwrappedArgs;
- prismlauncher = prev.qt6Packages.callPackage ./pkg/wrapper.nix {inherit (final) prismlauncher-unwrapped;};
+
+ prismlauncher = prev.qt6Packages.callPackage ./pkg/wrapper.nix {
+ inherit (final) prismlauncher-unwrapped;
+ };
};
};
}
diff --git a/nix/pkg/default.nix b/nix/pkg/default.nix
index 074214c4..fd19a0b3 100644
--- a/nix/pkg/default.nix
+++ b/nix/pkg/default.nix
@@ -58,6 +58,7 @@ assert lib.assertMsg (stdenv.isLinux || !gamemodeSupport) "gamemodeSupport is on
dontWrapQtApps = true;
meta = with lib; {
+ mainProgram = "prismlauncher";
homepage = "https://prismlauncher.org/";
description = "A free, open source launcher for Minecraft";
longDescription = ''
diff --git a/nix/pkg/wrapper.nix b/nix/pkg/wrapper.nix
index 8d160143..8bc255e7 100644
--- a/nix/pkg/wrapper.nix
+++ b/nix/pkg/wrapper.nix
@@ -18,9 +18,11 @@
flite,
mesa-demos,
udev,
+ libusb1,
msaClientID ? null,
gamemodeSupport ? stdenv.isLinux,
textToSpeechSupport ? stdenv.isLinux,
+ controllerSupport ? stdenv.isLinux,
jdks ? [jdk17 jdk8],
additionalLibs ? [],
additionalPrograms ? [],
@@ -71,6 +73,7 @@ in
]
++ lib.optional gamemodeSupport gamemode.lib
++ lib.optional textToSpeechSupport flite
+ ++ lib.optional controllerSupport libusb1
++ additionalLibs;
runtimePrograms =