{ stdenv, makeWrapper , dxx-rebirth, descent1-assets, descent2-assets }: let generic = ver: assets: stdenv.mkDerivation { name = "d${toString ver}x-rebirth-full-${assets.version}"; nativeBuildInputs = [ makeWrapper ]; buildCommand = '' mkdir -p $out/bin makeWrapper ${dxx-rebirth}/bin/d${toString ver}x-rebirth $out/bin/descent${toString ver} \ --add-flags "-hogdir ${assets}/share/games/descent${toString ver}" ''; meta = with stdenv.lib; { description = "Descent ${toString ver} using the DXX-Rebirth project engine and game assets from GOG"; homepage = "https://www.dxx-rebirth.com/"; license = with licenses; [ free unfree ]; maintainers = with maintainers; [ peterhoeg ]; platforms = with platforms; linux; hydraPlatforms = []; }; }; in { d1x-rebirth-full = generic 1 descent1-assets; d2x-rebirth-full = generic 2 descent2-assets; }