{ fetchurl, stdenv, lib , cmake, libGLU, libGL , freetype, freeimage, zziplib, xorgproto, libXrandr , libXaw, freeglut, libXt, libpng, boost, ois , libX11, libXmu, libSM, pkgconfig , libXxf86vm, libICE , unzip , libXrender , withNvidiaCg ? false, nvidia_cg_toolkit , withSamples ? false }: stdenv.mkDerivation rec { pname = "ogre"; version = "1.12.1"; src = fetchurl { url = "https://github.com/OGRECave/ogre/archive/v${version}.zip"; sha256 = "1iv6k0dwdzg5nnzw2mcgcl663q4f7p2kj7nhs8afnsikrzxxgsi4"; }; cmakeFlags = [ "-DOGRE_BUILD_SAMPLES=${toString withSamples}" ] ++ map (x: "-DOGRE_BUILD_PLUGIN_${x}=on") ([ "BSP" "OCTREE" "PCZ" "PFX" ] ++ lib.optional withNvidiaCg "CG") ++ map (x: "-DOGRE_BUILD_RENDERSYSTEM_${x}=on") [ "GL" ]; enableParallelBuilding = true; buildInputs = [ cmake libGLU libGL freetype freeimage zziplib xorgproto libXrandr libXaw freeglut libXt libpng boost ois libX11 libXmu libSM pkgconfig libXxf86vm libICE libXrender ] ++ lib.optional withNvidiaCg nvidia_cg_toolkit; nativeBuildInputs = [ unzip ]; meta = { description = "A 3D engine"; homepage = https://www.ogre3d.org/; maintainers = [ stdenv.lib.maintainers.raskin ]; platforms = stdenv.lib.platforms.linux; license = stdenv.lib.licenses.mit; }; }