Merge pull request #268619 from tweag/lib-descriptions
[NixPkgs.git] / pkgs / games / gemrb / default.nix
blob7768ccf762534d643c3b4fa3f41bb1262de893f8
1 { lib
2 , stdenv
3 , fetchFromGitHub
4 , cmake
5 , SDL2
6 , SDL2_mixer
7 , freetype
8 , libGL
9 , libiconv
10 , libpng
11 , libvlc
12 , libvorbis
13 , openal
14 , python3
15 , zlib
18 let
19   # the GLES backend on rpi is untested as I don't have the hardware
20   backend =
21     if stdenv.hostPlatform.isx86 then "OpenGL" else "GLES";
23   withVLC = stdenv.isDarwin;
25   inherit (lib) optional optionalString;
28 stdenv.mkDerivation rec {
29   pname = "gemrb";
30   version = "0.9.2";
32   src = fetchFromGitHub {
33     owner = "gemrb";
34     repo = "gemrb";
35     rev = "v${version}";
36     hash = "sha256-riea48Jc9zYb19mf5sBunTp5l27PGRFd/B5KdCUWr6Y=";
37   };
39   buildInputs = [
40     SDL2
41     SDL2_mixer
42     freetype
43     libGL
44     libiconv
45     libpng
46     libvorbis
47     openal
48     python3
49     zlib
50   ]
51   ++ optional withVLC libvlc;
53   nativeBuildInputs = [ cmake ];
55   # libvlc isn't being detected properly as of 0.9.0, so set it
56   LIBVLC_INCLUDE_PATH = optionalString withVLC "${lib.getDev libvlc}/include";
57   LIBVLC_LIBRARY_PATH = optionalString withVLC "${lib.getLib libvlc}/lib";
59   cmakeFlags = [
60     "-DDATA_DIR=${placeholder "out"}/share/gemrb"
61     "-DEXAMPLE_CONF_DIR=${placeholder "out"}/share/doc/gemrb/examples"
62     "-DSYSCONF_DIR=/etc"
63     # use the Mesa drivers for video on ARM (harmless on x86)
64     "-DDISABLE_VIDEOCORE=ON"
65     "-DLAYOUT=opt"
66     "-DOPENGL_BACKEND=${backend}"
67     "-DOpenGL_GL_PREFERENCE=GLVND"
68   ];
70   postInstall = ''
71     for s in 36 48 72 96 144; do
72       install -Dm444 ../artwork/gemrb-logo-glow-''${s}px.png $out/share/icons/hicolor/''${s}x''${s}/gemrb.png
73     done
74     install -Dm444 ../artwork/gemrb-logo.png $out/share/icons/gemrb.png
75   '';
77   meta = with lib; {
78     description = "A reimplementation of the Infinity Engine, used by games such as Baldur's Gate";
79     longDescription = ''
80       GemRB (Game engine made with pre-Rendered Background) is a portable
81       open-source implementation of Bioware's Infinity Engine. It was written to
82       support pseudo-3D role playing games based on the Dungeons & Dragons
83       ruleset (Baldur's Gate and Icewind Dale series, Planescape: Torment).
84     '';
85     homepage = "https://gemrb.org/";
86     license = licenses.gpl2Only;
87     maintainers = with maintainers; [ peterhoeg ];
88   };