diff options
author | Aaron Andersen <aaron@fosslib.net> | 2021-11-03 22:05:53 -0400 |
---|---|---|
committer | Aaron Andersen <aaron@fosslib.net> | 2021-11-07 07:49:59 -0500 |
commit | 565d63295200f44948f384e0523336c511b60fb6 (patch) | |
tree | f62a6fe5e8a7d44319ff7f862afd59c33fc3b50d | |
parent | 573849ce89f5fc5b18a8979d4496f09ac031880c (diff) | |
download | nixpkgs-565d63295200f44948f384e0523336c511b60fb6.tar nixpkgs-565d63295200f44948f384e0523336c511b60fb6.tar.gz nixpkgs-565d63295200f44948f384e0523336c511b60fb6.tar.bz2 nixpkgs-565d63295200f44948f384e0523336c511b60fb6.tar.lz nixpkgs-565d63295200f44948f384e0523336c511b60fb6.tar.xz nixpkgs-565d63295200f44948f384e0523336c511b60fb6.tar.zst nixpkgs-565d63295200f44948f384e0523336c511b60fb6.zip |
devilutionx: 1.2.1 -> 1.3.0
-rw-r--r-- | pkgs/games/devilutionx/default.nix | 76 |
1 files changed, 61 insertions, 15 deletions
diff --git a/pkgs/games/devilutionx/default.nix b/pkgs/games/devilutionx/default.nix index fa457b1f1bc..c1ba16bea1d 100644 --- a/pkgs/games/devilutionx/default.nix +++ b/pkgs/games/devilutionx/default.nix @@ -1,32 +1,78 @@ -{ lib, stdenv, fetchFromGitHub, cmake, SDL2, SDL2_mixer, SDL2_ttf, libsodium, pkg-config }: +{ lib +, stdenv +, fetchFromGitHub +, fetchurl +, fetchzip +, cmake +, gettext +, SDL2 +, fmt +, libpng +, smpq +}: + +let + # TODO: submit a PR upstream to allow system copies of these libraries + asio = fetchurl { + url = "https://github.com/diasurgical/asio/archive/ebeff99f539da23d27c2e8d4bdbc1ee011968644.tar.gz"; + sha256 = "0vhb4cig40mm0a98i74grpmfkcmby8zxg6vqa38dpryxpgvp5fw8"; + }; + + SDL_audiolib = fetchurl { + url = "https://github.com/realnc/SDL_audiolib/archive/aa79660eba4467a44f9dcaecf26b0f0a000abfd7.tar.gz"; + sha256 = "0z4rizncp6gqsy72b3709zc9fr915wgcwnlx1fhhy7mrczsly630"; + }; + + SDL_image = fetchurl { + url = "https://github.com/libsdl-org/SDL_image/archive/refs/tags/release-2.0.5.tar.gz"; + sha256 = "1zw3k40kbmwc2w9l8fkzrk8maidapmciw3lgcml86pqs9izzddvn"; + }; + + simpleini = fetchzip { + url = "https://github.com/brofield/simpleini/archive/7bca74f6535a37846162383e52071f380c99a43a.zip"; + sha256 = "07kf1jjbc9v04hsysa6v2wh1m9csf5qz0b1wmlkf9sj00kf47zj7"; + }; +in stdenv.mkDerivation rec { pname = "devilutionx"; - version = "1.2.1"; + version = "1.3.0"; src = fetchFromGitHub { owner = "diasurgical"; repo = "devilutionX"; rev = version; - sha256 = "sha256-PgYlNO1p78d0uiL474bDJOL++SxJfeBLK65czdaylHU="; + sha256 = "0acrkqi0pr3cbr5i1a1vfrnxv1n3xmql5d86bm2gywvpdb94xads"; }; postPatch = '' substituteInPlace Source/init.cpp --replace "/usr/share/diasurgical/devilutionx/" "${placeholder "out"}/share/diasurgical/devilutionx/" - ''; - NIX_CFLAGS_COMPILE = [ - "-I${SDL2_ttf}/include/SDL2" - ''-DTTF_FONT_PATH="${placeholder "out"}/share/fonts/truetype/CharisSILB.ttf"'' - ]; + # download dependencies ahead of time + substituteInPlace 3rdParty/asio/CMakeLists.txt --replace "https://github.com/diasurgical/asio/archive/ebeff99f539da23d27c2e8d4bdbc1ee011968644.tar.gz" "${asio}" + substituteInPlace 3rdParty/SDL_audiolib/CMakeLists.txt --replace "https://github.com/realnc/SDL_audiolib/archive/aa79660eba4467a44f9dcaecf26b0f0a000abfd7.tar.gz" "${SDL_audiolib}" + substituteInPlace 3rdParty/SDL_image/CMakeLists.txt --replace "https://github.com/libsdl-org/SDL_image/archive/refs/tags/release-2.0.5.tar.gz" "${SDL_image}" + substituteInPlace 3rdParty/simpleini/CMakeLists.txt --replace "https://github.com/brofield/simpleini/archive/7bca74f6535a37846162383e52071f380c99a43a.zip" "${simpleini}" + ''; cmakeFlags = [ "-DBINARY_RELEASE=ON" "-DVERSION_NUM=${version}" + "-DPACKET_ENCRYPTION=OFF" # FIXME: build with libsodium + "-DDISABLE_ZERO_TIER=ON" # FIXME: build with libzt ]; - nativeBuildInputs = [ pkg-config cmake ]; - buildInputs = [ libsodium SDL2 SDL2_mixer SDL2_ttf ]; + nativeBuildInputs = [ + cmake + gettext + smpq # used to build devilutionx.mpq + ]; + + buildInputs = [ + fmt + libpng + (SDL2.override { withStatic = true; }) + ]; installPhase = '' runHook preInstall @@ -36,10 +82,10 @@ stdenv.mkDerivation rec { mv devilutionx.app $out/Applications '' else '' install -Dm755 -t $out/bin devilutionx - install -Dt $out/share/fonts/truetype ../Packaging/resources/CharisSILB.ttf - install -Dt $out/share/diasurgical/devilutionx ../Packaging/resources/devilutionx.mpq - - # TODO: icons and .desktop (see Packages/{debian,fedora}/*) + install -Dm755 -t $out/share/diasurgical/devilutionx devilutionx.mpq + install -Dm755 -t $out/share/applications ../Packaging/nix/devilutionx-hellfire.desktop ../Packaging/nix/devilutionx.desktop + install -Dm755 ../Packaging/resources/icon.png $out/share/icons/hicolor/512x512/apps/devilution.png + install -Dm755 ../Packaging/resources/hellfire.png $out/share/icons/hicolor/512x512/apps/devilution-hellfire.png '') + '' runHook postInstall @@ -50,7 +96,7 @@ stdenv.mkDerivation rec { description = "Diablo build for modern operating systems"; longDescription = "In order to play this game a copy of diabdat.mpq is required. Place a copy of diabdat.mpq in ~/.local/share/diasurgical/devilution before executing the game."; license = licenses.unlicense; - maintainers = [ maintainers.karolchmist ]; + maintainers = with maintainers; [ karolchmist aanderse ]; platforms = platforms.linux ++ platforms.windows; }; } |