1{
2 lib,
3 stdenv,
4 fetchzip,
5 libGLU,
6 libGL,
7 libXrandr,
8 libX11,
9 libXxf86vm,
10 zlib,
11}:
12
13let
14 common = import ./common.nix { inherit fetchzip; };
15in
16
17stdenv.mkDerivation {
18 pname = common.pname;
19 version = common.version;
20
21 src = common.src;
22
23 postPatch = ''
24 sed -i -e '/sys\/sysctl.h/d' source/Irrlicht/COSOperator.cpp
25 ''
26 + lib.optionalString stdenv.hostPlatform.isAarch64 ''
27 substituteInPlace source/Irrlicht/Makefile \
28 --replace "-DIRRLICHT_EXPORTS=1" "-DIRRLICHT_EXPORTS=1 -DPNG_ARM_NEON_OPT=0"
29 '';
30
31 preConfigure = ''
32 cd source/Irrlicht
33 '';
34
35 preBuild = ''
36 makeFlagsArray+=(sharedlib NDEBUG=1 LDFLAGS="-lX11 -lGL -lXxf86vm")
37 '';
38
39 enableParallelBuilding = true;
40
41 preInstall = ''
42 sed -i s,/usr/local/lib,$out/lib, Makefile
43 mkdir -p $out/lib
44 '';
45
46 buildInputs = [
47 libGLU
48 libGL
49 libXrandr
50 libX11
51 libXxf86vm
52 ]
53 ++ lib.optional stdenv.hostPlatform.isAarch64 zlib;
54
55 meta = {
56 homepage = "https://irrlicht.sourceforge.io/";
57 license = lib.licenses.zlib;
58 description = "Open source high performance realtime 3D engine written in C++";
59 platforms = lib.platforms.linux ++ lib.platforms.darwin;
60 };
61}