diff options
Diffstat (limited to 'pkgs/games/vcmi/default.nix')
-rw-r--r-- | pkgs/games/vcmi/default.nix | 97 |
1 files changed, 97 insertions, 0 deletions
diff --git a/pkgs/games/vcmi/default.nix b/pkgs/games/vcmi/default.nix new file mode 100644 index 00000000000..d16f3870d82 --- /dev/null +++ b/pkgs/games/vcmi/default.nix @@ -0,0 +1,97 @@ +{ lib +, stdenv +, fetchFromGitHub +, SDL2 +, SDL2_image +, SDL2_mixer +, SDL2_ttf +, boost +, cmake +, ffmpeg +, innoextract +, luajit +, minizip +, ninja +, pkg-config +, python3 +, qtbase +, tbb +, wrapQtAppsHook +, zlib +, testers +, vcmi +}: + +stdenv.mkDerivation rec { + pname = "vcmi"; + version = "1.0.0"; + + src = fetchFromGitHub { + owner = "vcmi"; + repo = "vcmi"; + rev = version; + fetchSubmodules = true; + hash = "sha256-5PuFq6wDSj5Ye2fUjqcr/VRU0ocus6h2nn+myQTOrhU="; + }; + + postPatch = '' + substituteInPlace Version.cpp.in \ + --subst-var-by GIT_SHA1 "0000000"; + ''; + + nativeBuildInputs = [ + cmake + ninja + pkg-config + python3 + wrapQtAppsHook + ]; + + buildInputs = [ + SDL2 + SDL2_image + SDL2_mixer + SDL2_ttf + boost + ffmpeg + luajit + minizip + qtbase + tbb + zlib + ]; + + cmakeFlags = [ + "-DENABLE_TEST:BOOL=NO" + "-DENABLE_PCH:BOOL=NO" + # Make libvcmi.so discoverable in a non-standard location. + "-DCMAKE_INSTALL_RPATH:STRING=${placeholder "out"}/lib/vcmi" + # Upstream assumes relative value while Nixpkgs passes absolute. + # Both should be allowed: https://cmake.org/cmake/help/latest/module/GNUInstallDirs.html + # Meanwhile work it around by passing a relative value. + "-DCMAKE_INSTALL_LIBDIR:STRING=lib" + ]; + + postFixup = '' + wrapProgram $out/bin/vcmibuilder \ + --prefix PATH : "${lib.makeBinPath [ innoextract ]}" + ''; + + passthru.tests.version = testers.testVersion { + package = vcmi; + command = '' + XDG_DATA_HOME=$PWD XDG_CACHE_HOME=$PWD XDG_CONFIG_HOME=$PWD \ + vcmiclient --version + ''; + }; + + meta = with lib; { + description = "Open-source engine for Heroes of Might and Magic III"; + homepage = "https://vcmi.eu"; + changelog = "https://github.com/vcmi/vcmi/blob/${src.rev}/ChangeLog"; + license = with licenses; [ gpl2Only cc-by-sa-40 ]; + maintainers = with maintainers; [ azahi ]; + platforms = platforms.linux; + mainProgram = "vcmiclient"; + }; +} |