Merge pull request #268619 from tweag/lib-descriptions
[NixPkgs.git] / pkgs / games / spring / default.nix
blob0a2eb6cfc91135187476f8a9c452ce2fa19a9e65
1 { lib
2 , stdenv
3 , asciidoc
4 , boost
5 , cmake
6 , curl
7 , docbook_xsl
8 , docbook_xsl_ns
9 , fetchurl
10 , freetype
11 , glew
12 , jdk
13 , libdevil
14 , libGL
15 , libGLU
16 , libunwind
17 , libvorbis
18 , makeWrapper
19 , minizip
20 , openal
21 , p7zip
22 , python3
23 , SDL2
24 , xorg
25 , xz
26 , zlib
27 , withAI ? true # support for AI Interfaces and Skirmish AIs
30 stdenv.mkDerivation rec {
31   pname = "spring";
32   version = "106.0";
34   src = fetchurl {
35     url = "https://springrts.com/dl/buildbot/default/master/${version}/source/spring_${version}_src.tar.gz";
36     sha256 = "sha256-mSA4ioIv68NMEB72lYnwDb1QOuWr1VHwu4+grAoHlV0=";
37   };
39   postPatch = ''
40     patchShebangs .
42     substituteInPlace ./rts/build/cmake/FindAsciiDoc.cmake \
43       --replace "PATHS /usr /usr/share /usr/local /usr/local/share" "PATHS ${docbook_xsl}"\
44       --replace "xsl/docbook/manpages" "share/xml/docbook-xsl/manpages"
46     # The cmake included module correcly finds nix's glew, however
47     # it has to be the bundled FindGLEW for headless or dedicated builds
48     rm rts/build/cmake/FindGLEW.cmake
49   '';
51   cmakeFlags = [
52     "-DCMAKE_BUILD_WITH_INSTALL_RPATH:BOOL=ON"
53     "-DCMAKE_INSTALL_RPATH_USE_LINK_PATH:BOOL=ON"
54     "-DPREFER_STATIC_LIBS:BOOL=OFF"
55   ];
57   nativeBuildInputs = [ cmake makeWrapper docbook_xsl docbook_xsl_ns asciidoc ];
58   buildInputs = [
59     boost
60     curl
61     freetype
62     glew
63     libdevil
64     libGL
65     libGLU
66     libunwind
67     libvorbis
68     minizip
69     openal
70     p7zip
71     SDL2
72     xorg.libX11
73     xorg.libXcursor
74     xz
75     zlib
76   ]
77   ++ lib.optionals withAI [ python3 jdk ];
79   postInstall = ''
80     wrapProgram "$out/bin/spring" \
81       --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ stdenv.cc.cc ]}"
82   '';
84   meta = with lib; {
85     homepage = "https://springrts.com/";
86     description = "A powerful real-time strategy (RTS) game engine";
87     license = licenses.gpl2Plus;
88     maintainers = with maintainers; [ qknight domenkozar sorki ];
89     platforms = [ "x86_64-linux" ];
90     broken = true;
91   };