nix: add support for non-flake builds
This commit is contained in:
		
							
								
								
									
										9
									
								
								packages/nix/flake-compat.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								packages/nix/flake-compat.nix
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,9 @@
 | 
			
		||||
let
 | 
			
		||||
  lock = builtins.fromJSON (builtins.readFile ../../flake.lock);
 | 
			
		||||
  inherit (lock.nodes.flake-compat.locked) rev narHash;
 | 
			
		||||
  flake-compat = fetchTarball {
 | 
			
		||||
    url = "https://github.com/edolstra/flake-compat/archive/${rev}.tar.gz";
 | 
			
		||||
    sha256 = narHash;
 | 
			
		||||
  };
 | 
			
		||||
in
 | 
			
		||||
import flake-compat { src = ../..; }
 | 
			
		||||
@@ -2,8 +2,6 @@
 | 
			
		||||
, mkDerivation
 | 
			
		||||
, fetchFromGitHub
 | 
			
		||||
, makeDesktopItem
 | 
			
		||||
, substituteAll
 | 
			
		||||
, fetchpatch
 | 
			
		||||
, cmake
 | 
			
		||||
, ninja
 | 
			
		||||
, jdk8
 | 
			
		||||
@@ -15,14 +13,16 @@
 | 
			
		||||
, libpulseaudio
 | 
			
		||||
, qtbase
 | 
			
		||||
, libGL
 | 
			
		||||
# submodules
 | 
			
		||||
 | 
			
		||||
# flake
 | 
			
		||||
, self
 | 
			
		||||
, submoduleNbt
 | 
			
		||||
, submoduleQuazip
 | 
			
		||||
}:
 | 
			
		||||
 | 
			
		||||
let
 | 
			
		||||
  gameLibraryPath = with xorg; lib.makeLibraryPath [
 | 
			
		||||
  # Libraries required to run Minecraft
 | 
			
		||||
  libpath = with xorg; lib.makeLibraryPath [
 | 
			
		||||
    libX11
 | 
			
		||||
    libXext
 | 
			
		||||
    libXcursor
 | 
			
		||||
@@ -30,7 +30,10 @@ let
 | 
			
		||||
    libXxf86vm
 | 
			
		||||
    libpulseaudio
 | 
			
		||||
    libGL
 | 
			
		||||
  ];
 | 
			
		||||
  ]; 
 | 
			
		||||
 | 
			
		||||
  # This variable will be passed to Minecraft by PolyMC
 | 
			
		||||
  gameLibraryPath = libpath + ":/run/opengl-driver/lib";
 | 
			
		||||
in
 | 
			
		||||
 | 
			
		||||
mkDerivation rec {
 | 
			
		||||
@@ -42,7 +45,10 @@ mkDerivation rec {
 | 
			
		||||
  nativeBuildInputs = [ cmake ninja file makeWrapper ];
 | 
			
		||||
  buildInputs = [ qtbase jdk8 zlib ];
 | 
			
		||||
 | 
			
		||||
  dontWrapQtApps = true;
 | 
			
		||||
 | 
			
		||||
  postUnpack = ''
 | 
			
		||||
    # Copy submodules inputs
 | 
			
		||||
    rm -rf source/libraries/{libnbtplusplus,quazip}
 | 
			
		||||
    mkdir source/libraries/{libnbtplusplus,quazip}
 | 
			
		||||
    cp -a ${submoduleNbt}/* source/libraries/libnbtplusplus
 | 
			
		||||
@@ -69,11 +75,13 @@ mkDerivation rec {
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  postInstall = ''
 | 
			
		||||
    install -Dm644 ../launcher/resources/multimc/scalable/launcher.svg $out/share/pixmaps/multimc.svg
 | 
			
		||||
    install -Dm755 ${desktopItem}/share/applications/polymc.desktop -t $out/share/applications
 | 
			
		||||
    install -Dm644 ../launcher/resources/multimc/scalable/launcher.svg $out/share/pixmaps/polymc.svg
 | 
			
		||||
    install -Dm644 ${desktopItem}/share/applications/polymc.desktop $out/share/applications/org.polymc.PolyMC.desktop
 | 
			
		||||
 | 
			
		||||
    # xorg.xrandr needed for LWJGL [2.9.2, 3) https://github.com/LWJGL/lwjgl/issues/128
 | 
			
		||||
    wrapProgram $out/bin/polymc \
 | 
			
		||||
      --set GAME_LIBRARY_PATH /run/opengl-driver/lib:${gameLibraryPath} \
 | 
			
		||||
      "''${qtWrapperArgs[@]}" \
 | 
			
		||||
      --set GAME_LIBRARY_PATH ${gameLibraryPath} \
 | 
			
		||||
      --prefix PATH : ${lib.makeBinPath [ xorg.xrandr jdk ]}
 | 
			
		||||
  '';
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user