|
|
|
@ -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 = '' |
|
|
|
@ -70,9 +98,9 @@ let |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
v5 = { |
|
|
|
|
version = "5.4.1"; |
|
|
|
|
sha256 = "062ilb7s377q3hwfhl8q06vvcw2raydz5ljzlzwy2dmyzmdcndb8"; |
|
|
|
|
dataSha256 = "0i45lbnikvgj9kxdp0yphpjjwjcgp4ibn49xkj78j5ic1s9n8jd4"; |
|
|
|
|
version = "5.5.0"; |
|
|
|
|
sha256 = "sha256-V+ggqvZibSQrJbrtNCEkmRYHhgSKTQsdBh3c8+t6WeA="; |
|
|
|
|
dataSha256 = "sha256-6ZS3EET3nm09eL0czCGadwzon35/EBfAg2KjPX3ZP/0="; |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
in { |
|
|
|
|