diff options
Diffstat (limited to 'pkgs/games/minetest/default.nix')
-rw-r--r-- | pkgs/games/minetest/default.nix | 59 |
1 files changed, 41 insertions, 18 deletions
diff --git a/pkgs/games/minetest/default.nix b/pkgs/games/minetest/default.nix index 7ffa361da559c..9e94bb6a4a7dc 100644 --- a/pkgs/games/minetest/default.nix +++ b/pkgs/games/minetest/default.nix @@ -1,7 +1,8 @@ { lib, stdenv, fetchFromGitHub, cmake, irrlicht, libpng, bzip2, curl, libogg, jsoncpp , libjpeg, libXxf86vm, libGLU, libGL, openal, libvorbis, sqlite, luajit , freetype, gettext, doxygen, ncurses, graphviz, xorg, gmp, libspatialindex -, leveldb, postgresql, hiredis, libiconv, OpenGL, OpenAL ? openal, Carbon, Cocoa +, leveldb, postgresql, hiredis, libiconv, zlib, libXrandr, libX11, ninja, prometheus-cpp +, OpenGL, OpenAL ? openal, Carbon, Cocoa }: with lib; @@ -9,6 +10,21 @@ with lib; let boolToCMake = b: if b then "ON" else "OFF"; + irrlichtMt = stdenv.mkDerivation rec { + pname = "irrlichtMt"; + version = "1.9.0mt4"; + src = fetchFromGitHub { + owner = "minetest"; + repo = "irrlicht"; + rev = version; + sha256 = "sha256-YlXn9LrfGkjdb8+zQGDgrInolUYj9nVSF2AXWFpEEkw="; + }; + nativeBuildInputs = [ cmake ]; + buildInputs = [ zlib libjpeg libpng libGLU libGL libXrandr libX11 libXxf86vm ]; + outputs = [ "out" "dev" ]; + meta = irrlicht.meta; + }; + generic = { version, rev ? version, sha256, dataRev ? version, dataSha256, buildClient ? true, buildServer ? false }: let sources = { src = fetchFromGitHub { @@ -30,29 +46,41 @@ let src = sources.src; cmakeFlags = [ + "-G Ninja" "-DBUILD_CLIENT=${boolToCMake buildClient}" "-DBUILD_SERVER=${boolToCMake buildServer}" - "-DENABLE_FREETYPE=1" "-DENABLE_GETTEXT=1" + "-DENABLE_SPATIAL=1" "-DENABLE_SYSTEM_JSONCPP=1" - "-DIRRLICHT_INCLUDE_DIR=${irrlicht}/include/irrlicht" + "-DIRRLICHT_INCLUDE_DIR=${irrlichtMt.dev}/include/irrlicht" + + # Remove when https://github.com/NixOS/nixpkgs/issues/144170 is fixed + "-DCMAKE_INSTALL_BINDIR=bin" + "-DCMAKE_INSTALL_DATADIR=share" + "-DCMAKE_INSTALL_DOCDIR=share/doc" + "-DCMAKE_INSTALL_DOCDIR=share/doc" + "-DCMAKE_INSTALL_MANDIR=share/man" + "-DCMAKE_INSTALL_LOCALEDIR=share/locale" + ] ++ optionals buildClient [ "-DOpenGL_GL_PREFERENCE=GLVND" + ] ++ optionals buildServer [ + "-DENABLE_PROMETHEUS=1" ]; NIX_CFLAGS_COMPILE = "-DluaL_reg=luaL_Reg"; # needed since luajit-2.1.0-beta3 - nativeBuildInputs = [ cmake doxygen graphviz ]; + nativeBuildInputs = [ cmake doxygen graphviz ninja ]; buildInputs = [ - irrlicht luajit jsoncpp gettext freetype sqlite curl bzip2 ncurses + irrlichtMt luajit jsoncpp gettext freetype sqlite curl bzip2 ncurses gmp libspatialindex ] ++ optionals stdenv.isDarwin [ libiconv OpenGL OpenAL Carbon Cocoa ] ++ optionals buildClient [ libpng libjpeg libGLU libGL openal libogg libvorbis xorg.libX11 libXxf86vm ] ++ optionals buildServer [ - leveldb postgresql hiredis + leveldb postgresql hiredis prometheus-cpp ]; postInstall = '' @@ -66,25 +94,20 @@ let license = licenses.lgpl21Plus; platforms = platforms.linux ++ platforms.darwin; maintainers = with maintainers; [ pyrolagus fpletz ]; + # never built on Hydra + # https://hydra.nixos.org/job/nixpkgs/trunk/minetestclient_4.x86_64-darwin + # https://hydra.nixos.org/job/nixpkgs/trunk/minetestserver_4.x86_64-darwin + broken = (lib.versionOlder version "5.0.0") && stdenv.isDarwin; }; }; - v4 = { - version = "0.4.17.1"; - sha256 = "19sfblgh9mchkgw32n7gdvm7a8a9jxsl9cdlgmxn9bk9m939a2sg"; - dataSha256 = "1g8iw2pya32ifljbdx6z6rpcinmzm81i9minhi2bi1d500ailn7s"; - }; - v5 = { - version = "5.4.1"; - sha256 = "062ilb7s377q3hwfhl8q06vvcw2raydz5ljzlzwy2dmyzmdcndb8"; - dataSha256 = "0i45lbnikvgj9kxdp0yphpjjwjcgp4ibn49xkj78j5ic1s9n8jd4"; + version = "5.5.0"; + sha256 = "sha256-V+ggqvZibSQrJbrtNCEkmRYHhgSKTQsdBh3c8+t6WeA="; + dataSha256 = "sha256-6ZS3EET3nm09eL0czCGadwzon35/EBfAg2KjPX3ZP/0="; }; in { - minetestclient_4 = generic (v4 // { buildClient = true; buildServer = false; }); - minetestserver_4 = generic (v4 // { buildClient = false; buildServer = true; }); - minetestclient_5 = generic (v5 // { buildClient = true; buildServer = false; }); minetestserver_5 = generic (v5 // { buildClient = false; buildServer = true; }); } |