diff --git a/pkgs/applications/graphics/darktable/default.nix b/pkgs/applications/graphics/darktable/default.nix index d16a87640f25..d62addea4fea 100644 --- a/pkgs/applications/graphics/darktable/default.nix +++ b/pkgs/applications/graphics/darktable/default.nix @@ -1,10 +1,59 @@ -{ lib, stdenv, fetchurl, libsoup, graphicsmagick, json-glib, wrapGAppsHook -, cairo, cmake, ninja, curl, perl, llvm_13, desktop-file-utils, exiv2, glib -, ilmbase, gtk3, intltool, lcms2, lensfun, libX11, libexif, libgphoto2, libjpeg -, libpng, librsvg, libtiff, openexr_3, osm-gps-map, pkg-config, sqlite, libxslt -, openjpeg, pugixml, colord, colord-gtk, libwebp, libsecret, gnome, SDL2 -, ocl-icd, pcre, gtk-mac-integration, isocodes, llvmPackages, gmic, libavif, icu -, jasper, libheif, libaom, portmidi, fetchpatch, lua5_4, ... +{ lib +, stdenv +, fetchurl +, libsoup +, graphicsmagick +, json-glib +, wrapGAppsHook +, cairo +, cmake +, ninja +, curl +, perl +, llvm_13 +, desktop-file-utils +, exiv2 +, glib +, ilmbase +, gtk3 +, intltool +, lcms2 +, lensfun +, libX11 +, libexif +, libgphoto2 +, libjpeg +, libpng +, librsvg +, libtiff +, openexr_3 +, osm-gps-map +, pkg-config +, sqlite +, libxslt +, openjpeg +, pugixml +, colord +, colord-gtk +, libwebp +, libsecret +, gnome +, SDL2 +, ocl-icd +, pcre +, gtk-mac-integration +, isocodes +, llvmPackages +, gmic +, libavif +, icu +, jasper +, libheif +, libaom +, portmidi +, fetchpatch +, lua5_4 +, ... }: stdenv.mkDerivation rec { @@ -19,15 +68,50 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ cmake ninja llvm_13 pkg-config intltool perl desktop-file-utils wrapGAppsHook ]; buildInputs = [ - cairo curl exiv2 glib gtk3 ilmbase lcms2 lensfun libexif - libgphoto2 libjpeg libpng librsvg libtiff openexr_3 sqlite libxslt - libsoup graphicsmagick json-glib openjpeg pugixml - libwebp libsecret SDL2 gnome.adwaita-icon-theme osm-gps-map pcre isocodes gmic libavif icu - jasper libheif libaom portmidi lua5_4 + cairo + curl + exiv2 + glib + gtk3 + ilmbase + lcms2 + lensfun + libexif + libgphoto2 + libjpeg + libpng + librsvg + libtiff + openexr_3 + sqlite + libxslt + libsoup + graphicsmagick + json-glib + openjpeg + pugixml + libwebp + libsecret + SDL2 + gnome.adwaita-icon-theme + osm-gps-map + pcre + isocodes + gmic + libavif + icu + jasper + libheif + libaom + portmidi + lua5_4 ] ++ lib.optionals stdenv.isLinux [ - colord colord-gtk libX11 ocl-icd + colord + colord-gtk + libX11 + ocl-icd ] ++ lib.optional stdenv.isDarwin gtk-mac-integration - ++ lib.optional stdenv.cc.isClang llvmPackages.openmp; + ++ lib.optional stdenv.cc.isClang llvmPackages.openmp; cmakeFlags = [ "-DBUILD_USERMANUAL=False" @@ -49,18 +133,20 @@ stdenv.mkDerivation rec { # 83c70b876af6484506901e6b381304ae0d073d3c and as a result the # binaries can't find libdarktable.so, so change LD_LIBRARY_PATH in # the wrappers: - preFixup = let - libPathEnvVar = if stdenv.isDarwin then "DYLD_LIBRARY_PATH" else "LD_LIBRARY_PATH"; - libPathPrefix = "$out/lib/darktable" + lib.optionalString stdenv.isLinux ":${ocl-icd}/lib"; - in '' - for f in $out/share/darktable/kernels/*.cl; do - sed -r "s|#include \"(.*)\"|#include \"$out/share/darktable/kernels/\1\"|g" -i "$f" - done + preFixup = + let + libPathEnvVar = if stdenv.isDarwin then "DYLD_LIBRARY_PATH" else "LD_LIBRARY_PATH"; + libPathPrefix = "$out/lib/darktable" + lib.optionalString stdenv.isLinux ":${ocl-icd}/lib"; + in + '' + for f in $out/share/darktable/kernels/*.cl; do + sed -r "s|#include \"(.*)\"|#include \"$out/share/darktable/kernels/\1\"|g" -i "$f" + done - gappsWrapperArgs+=( - --prefix ${libPathEnvVar} ":" "${libPathPrefix}" - ) - ''; + gappsWrapperArgs+=( + --prefix ${libPathEnvVar} ":" "${libPathPrefix}" + ) + ''; meta = with lib; { description = "Virtual lighttable and darkroom for photographers";