Unverified Commit 421028d6 authored by Vladimír Čunát's avatar Vladimír Čunát Committed by GitHub
Browse files

eternity: 4.02.00 -> 4.05.04 (#462047)

parents 6621eb08 4ed09e6a
Loading
Loading
Loading
Loading
+36 −13
Original line number Diff line number Diff line
@@ -8,43 +8,66 @@
  SDL2_net,
  fetchFromGitHub,
  makeWrapper,
  zlib,
}:

stdenv.mkDerivation rec {
stdenv.mkDerivation (finalAttrs: {
  pname = "eternity-engine";
  version = "4.02.00";
  version = "4.05.04";
  src = fetchFromGitHub {
    owner = "team-eternity";
    repo = "eternity";
    tag = version;
    sha256 = "0dlz7axbiw003bgwk2hl43w8r2bwnxhi042i1xwdiwaja0cpnf5y";
    tag = finalAttrs.version;
    hash = "sha256-uUQYTI6qDMMtL0Zc82wr3hOPayvAj5kH8CuexAKFE6I=";
    fetchSubmodules = true;
  };

  postPatch =
    # CMake 4 compatibility
    ''
      substituteInPlace acsvm/CMakeLists.txt \
        --replace-fail 'cmake_minimum_required(VERSION 2.6)' 'cmake_minimum_required(VERSION 3.10)'

      substituteInPlace zlib/CMakeLists.txt \
        --replace-fail 'cmake_minimum_required(VERSION 2.4.4)' 'cmake_minimum_required(VERSION 3.10)'

      substituteInPlace snes_spc/CMakeLists.txt \
        --replace-fail 'CMAKE_MINIMUM_REQUIRED (VERSION 2.4)' 'cmake_minimum_required(VERSION 3.10)'

      substituteInPlace libpng/CMakeLists.txt \
        --replace-fail 'cmake_minimum_required(VERSION 3.1)' 'cmake_minimum_required(VERSION 3.10)' \
        --replace-fail 'cmake_policy(VERSION 3.1)' 'cmake_policy(VERSION 3.10)'

      substituteInPlace adlmidi/libADLMIDI.pc.in \
        --replace-fail 'libdir=''${exec_prefix}/@CMAKE_INSTALL_LIBDIR@' 'libdir=@CMAKE_INSTALL_FULL_LIBDIR@' \
        --replace-fail 'includedir=''${prefix}/@CMAKE_INSTALL_INCLUDEDIR@' 'libdir=@CMAKE_INSTALL_FULL_INCLUDEDIR@'
    ''
    +
    # Find installed 'base' data directory
    ''
      substituteInPlace source/hal/i_directory.cpp \
        --replace-fail '/usr/local/share/eternity/base' "$out/share/eternity/base"
    '';

  nativeBuildInputs = [
    cmake
    makeWrapper
  ];

  buildInputs = [
    libGL
    SDL2
    SDL2_mixer
    SDL2_net
    zlib
  ];

  installPhase = ''
    install -Dm755 eternity/eternity $out/lib/eternity/eternity
    cp -r $src/base $out/lib/eternity/base
    mkdir $out/bin
    makeWrapper $out/lib/eternity/eternity $out/bin/eternity
  '';

  meta = {
    homepage = "https://doomworld.com/eternity";
    description = "New school Doom port by James Haley";
    mainProgram = "eternity";
    license = lib.licenses.gpl3;
    platforms = lib.platforms.linux;
    maintainers = [ ];
    maintainers = with lib.maintainers; [ aware70 ];
  };
}
})