aboutsummaryrefslogtreecommitdiff
path: root/nix/package.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nix/package.nix')
-rw-r--r--nix/package.nix88
1 files changed, 48 insertions, 40 deletions
diff --git a/nix/package.nix b/nix/package.nix
index edc266dc..074214c4 100644
--- a/nix/package.nix
+++ b/nix/package.nix
@@ -1,7 +1,10 @@
{
lib,
stdenv,
+ canonicalize-jars-hook,
cmake,
+ cmark,
+ Cocoa,
ninja,
jdk17,
zlib,
@@ -9,57 +12,62 @@
quazip,
extra-cmake-modules,
tomlplusplus,
- cmark,
ghc_filesystem,
gamemode,
msaClientID ? null,
- gamemodeSupport ? true,
+ gamemodeSupport ? stdenv.isLinux,
self,
version,
libnbtplusplus,
}:
-stdenv.mkDerivation rec {
- pname = "prismlauncher-unwrapped";
- inherit version;
+assert lib.assertMsg (stdenv.isLinux || !gamemodeSupport) "gamemodeSupport is only available on Linux";
+ stdenv.mkDerivation rec {
+ pname = "prismlauncher-unwrapped";
+ inherit version;
- src = lib.cleanSource self;
+ src = lib.cleanSource self;
- nativeBuildInputs = [extra-cmake-modules cmake jdk17 ninja];
- buildInputs =
- [
- qtbase
- zlib
- quazip
- ghc_filesystem
- tomlplusplus
- cmark
- ]
- ++ lib.optional gamemodeSupport gamemode;
+ nativeBuildInputs = [extra-cmake-modules cmake jdk17 ninja canonicalize-jars-hook];
+ buildInputs =
+ [
+ qtbase
+ zlib
+ quazip
+ ghc_filesystem
+ tomlplusplus
+ cmark
+ ]
+ ++ lib.optional gamemodeSupport gamemode
+ ++ lib.optionals stdenv.isDarwin [Cocoa];
- hardeningEnable = ["pie"];
+ hardeningEnable = lib.optionals stdenv.isLinux ["pie"];
- cmakeFlags =
- lib.optionals (msaClientID != null) ["-DLauncher_MSA_CLIENT_ID=${msaClientID}"]
- ++ lib.optionals (lib.versionOlder qtbase.version "6") ["-DLauncher_QT_VERSION_MAJOR=5"];
+ cmakeFlags =
+ [
+ "-DLauncher_BUILD_PLATFORM=nixpkgs"
+ ]
+ ++ lib.optionals (msaClientID != null) ["-DLauncher_MSA_CLIENT_ID=${msaClientID}"]
+ ++ lib.optionals (lib.versionOlder qtbase.version "6") ["-DLauncher_QT_VERSION_MAJOR=5"]
+ ++ lib.optionals stdenv.isDarwin ["-DINSTALL_BUNDLE=nodeps" "-DMACOSX_SPARKLE_UPDATE_FEED_URL=''"];
- postUnpack = ''
- rm -rf source/libraries/libnbtplusplus
- ln -s ${libnbtplusplus} source/libraries/libnbtplusplus
- '';
+ postUnpack = ''
+ rm -rf source/libraries/libnbtplusplus
+ ln -s ${libnbtplusplus} source/libraries/libnbtplusplus
+ '';
- dontWrapQtApps = true;
+ dontWrapQtApps = true;
- meta = with lib; {
- homepage = "https://prismlauncher.org/";
- description = "A free, open source launcher for Minecraft";
- longDescription = ''
- Allows you to have multiple, separate instances of Minecraft (each with
- their own mods, texture packs, saves, etc) and helps you manage them and
- their associated options with a simple interface.
- '';
- platforms = platforms.linux;
- changelog = "https://github.com/PrismLauncher/PrismLauncher/releases/tag/${version}";
- license = licenses.gpl3Only;
- maintainers = with maintainers; [minion3665 Scrumplex];
- };
-}
+ meta = with lib; {
+ homepage = "https://prismlauncher.org/";
+ description = "A free, open source launcher for Minecraft";
+ longDescription = ''
+ Allows you to have multiple, separate instances of Minecraft (each with
+ their own mods, texture packs, saves, etc) and helps you manage them and
+ their associated options with a simple interface.
+ '';
+ platforms = with platforms; linux ++ darwin;
+ changelog = "https://github.com/PrismLauncher/PrismLauncher/releases/tag/${version}";
+ license = licenses.gpl3Only;
+ maintainers = with maintainers; [minion3665 Scrumplex getchoo];
+ };
+ }