summary refs log tree commit diff
path: root/pkgs/tools/graphics/luxcorerender
diff options
context:
space:
mode:
authorChris Hodapp <hodapp87@gmail.com>2018-06-20 10:44:40 -0400
committerChris Hodapp <hodapp87@gmail.com>2018-06-21 13:12:02 -0400
commit1b187b3961832451abed4261af82a3e68e8e80e5 (patch)
tree454cf630e674e55ccbc54b7c2c40bc23b2e52f2a /pkgs/tools/graphics/luxcorerender
parentbf1c28e978149e586206af642808aee113156b0a (diff)
downloadnixpkgs-1b187b3961832451abed4261af82a3e68e8e80e5.tar
nixpkgs-1b187b3961832451abed4261af82a3e68e8e80e5.tar.gz
nixpkgs-1b187b3961832451abed4261af82a3e68e8e80e5.tar.bz2
nixpkgs-1b187b3961832451abed4261af82a3e68e8e80e5.tar.lz
nixpkgs-1b187b3961832451abed4261af82a3e68e8e80e5.tar.xz
nixpkgs-1b187b3961832451abed4261af82a3e68e8e80e5.tar.zst
nixpkgs-1b187b3961832451abed4261af82a3e68e8e80e5.zip
luxcorerender: init at 2.0, embree: init at 2.17.4
Diffstat (limited to 'pkgs/tools/graphics/luxcorerender')
-rw-r--r--pkgs/tools/graphics/luxcorerender/default.nix87
1 files changed, 87 insertions, 0 deletions
diff --git a/pkgs/tools/graphics/luxcorerender/default.nix b/pkgs/tools/graphics/luxcorerender/default.nix
new file mode 100644
index 00000000000..387c8c0595e
--- /dev/null
+++ b/pkgs/tools/graphics/luxcorerender/default.nix
@@ -0,0 +1,87 @@
+{ stdenv, fetchFromGitHub, cmake, boost165, pkgconfig, python35
+, tbb, openimageio, libjpeg, libpng, zlib, libtiff, ilmbase
+, freetype, openexr, libXdmcp, libxkbcommon, epoxy, at-spi2-core
+, dbus, doxygen, qt5, c-blosc, mesa_glu, gnome3, pcre
+, bison, flex, libpthreadstubs, libX11
+, embree2, makeWrapper, gsettings_desktop_schemas, glib
+, withOpenCL ? true , opencl-headers, ocl-icd, opencl-clhpp
+}:
+
+let boost_static = boost165.override {
+      python = python35;
+      enableStatic = true;
+    };
+
+in stdenv.mkDerivation rec {
+  name = "luxcorerender-${version}";
+  version = "2.0";
+
+  src = fetchFromGitHub {
+    owner = "LuxCoreRender";
+    repo = "LuxCore";
+    rev = "luxcorerender_v2.0";
+    sha256 = "15nn39ybsfjf3cw3xgkbarvxn4a9ymfd579ankm7yjxkw5gcif38";
+  };
+
+  buildInputs =
+   [ embree2 pkgconfig cmake zlib boost_static libjpeg
+     libtiff libpng ilmbase freetype openexr openimageio
+     tbb qt5.full c-blosc mesa_glu pcre bison
+     flex libX11 libpthreadstubs python35 libXdmcp libxkbcommon
+     epoxy at-spi2-core dbus doxygen
+     # needed for GSETTINGS_SCHEMAS_PATH
+     gsettings_desktop_schemas glib gnome3.gtk
+     # needed for XDG_ICON_DIRS
+     gnome3.defaultIconTheme
+     makeWrapper
+     (stdenv.lib.getLib gnome3.dconf)
+   ] ++ stdenv.lib.optionals withOpenCL [opencl-headers ocl-icd opencl-clhpp];
+
+  cmakeFlags = [
+    "-DOpenEXR_Iex_INCLUDE_DIR=${openexr.dev}/include/OpenEXR"
+    "-DOpenEXR_IlmThread_INCLUDE_DIR=${ilmbase.dev}/include/OpenEXR"
+    "-DOpenEXR_Imath_INCLUDE_DIR=${openexr.dev}/include/OpenEXR"
+    "-DOpenEXR_half_INCLUDE_DIR=${ilmbase.dev}/include"
+    "-DPYTHON_LIBRARY=${python35}/lib/libpython3.so"
+    "-DPYTHON_INCLUDE_DIR=${python35}/include/python3.5"
+    "-DEMBREE_INCLUDE_PATH=${embree2}/include"
+    "-DEMBREE_LIBRARY=${embree2}/lib/libembree.so"
+    "-DBoost_PYTHON_LIBRARY_RELEASE=${boost_static}/lib/libboost_python3-mt.so"
+  ] ++ stdenv.lib.optional withOpenCL
+       "-DOPENCL_INCLUDE_DIR=${opencl-headers}/include";
+  preConfigure = ''
+    NIX_CFLAGS_COMPILE+=" -isystem ${python35}/include/python3.5"
+    NIX_LDFLAGS+=" -lpython3"
+  '';
+
+  installPhase = ''
+    mkdir -p $out/bin
+    mkdir -p $out/lib
+    cp -va bin/* $out/bin
+    cp -va lib/* $out/lib
+  '';
+
+  preFixup = ''
+    wrapProgram "$out/bin/luxcoreui" \
+      --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH" \
+      --suffix XDG_DATA_DIRS : '${gnome3.defaultIconTheme}/share' \
+      --prefix GIO_EXTRA_MODULES : "${stdenv.lib.getLib gnome3.dconf}/lib/gio/modules"
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Open source, physically based, unbiased rendering engine";
+    homepage = https://luxcorerender.org/;
+    maintainers = with maintainers; [ hodapp ];
+    license = licenses.asl20;
+    platforms = platforms.linux;
+  };
+}
+
+
+# TODO (might not be necessary):
+#
+# luxcoreui still gives warnings like: "failed to commit changes to
+# dconf: GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown: The
+# name ca.desrt.dconf was not provided by any .service files"
+
+# CMake complains of the FindOpenGL/GLVND preference