From 61cbf57300c91d9895c79e3d758ba75dbfb4e020 Mon Sep 17 00:00:00 2001 From: Michael Hoang Date: Wed, 1 Aug 2018 19:05:22 +1000 Subject: [PATCH] darktable: Fix compilation on macOS Only compile X11 and other components on Linux. Use DYLD_LIBRARY_PATH on macOS instead of LD_LIBRARY_PATH. --- .../graphics/darktable/default.nix | 26 ++++++++++++------- 1 file changed, 17 insertions(+), 9 deletions(-) diff --git a/pkgs/applications/graphics/darktable/default.nix b/pkgs/applications/graphics/darktable/default.nix index ac44a1e875c0..51a401d4b8c8 100644 --- a/pkgs/applications/graphics/darktable/default.nix +++ b/pkgs/applications/graphics/darktable/default.nix @@ -3,7 +3,7 @@ , ilmbase, gtk3, intltool, lcms2, lensfun, libX11, libexif, libgphoto2, libjpeg , libpng, librsvg, libtiff, openexr, osm-gps-map, pkgconfig, sqlite, libxslt , openjpeg, lua, pugixml, colord, colord-gtk, libwebp, libsecret, gnome3 -, ocl-icd +, ocl-icd, pcre, gtk-mac-integration }: stdenv.mkDerivation rec { @@ -18,24 +18,32 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ cmake ninja llvm pkgconfig intltool perl desktop-file-utils wrapGAppsHook ]; buildInputs = [ - cairo curl exiv2 glib gtk3 ilmbase lcms2 lensfun libX11 libexif + cairo curl exiv2 glib gtk3 ilmbase lcms2 lensfun libexif libgphoto2 libjpeg libpng librsvg libtiff openexr sqlite libxslt libsoup graphicsmagick json-glib openjpeg lua pugixml - colord colord-gtk libwebp libsecret gnome3.adwaita-icon-theme - osm-gps-map ocl-icd - ]; - + libwebp libsecret gnome3.adwaita-icon-theme osm-gps-map pcre + ] ++ stdenv.lib.optionals stdenv.isLinux [ + colord colord-gtk libX11 ocl-icd + ] ++ stdenv.lib.optional stdenv.isDarwin gtk-mac-integration; + cmakeFlags = [ "-DBUILD_USERMANUAL=False" + ] ++ stdenv.lib.optionals stdenv.isDarwin [ + "-DUSE_COLORD=OFF" + "-DUSE_KWALLET=OFF" ]; + # darktable changed its rpath handling in commit # 83c70b876af6484506901e6b381304ae0d073d3c and as a result the # binaries can't find libdarktable.so, so change LD_LIBRARY_PATH in # the wrappers: - preFixup = '' + preFixup = let + libPathEnvVar = if stdenv.isDarwin then "DYLD_LIBRARY_PATH" else "LD_LIBRARY_PATH"; + libPathPrefix = "$out/lib/darktable" + stdenv.lib.optionalString stdenv.isLinux ":${ocl-icd}/lib"; + in '' gappsWrapperArgs+=( - --prefix LD_LIBRARY_PATH ":" "$out/lib/darktable:${ocl-icd}/lib" + --prefix ${libPathEnvVar} ":" "${libPathPrefix}" ) ''; @@ -43,7 +51,7 @@ stdenv.mkDerivation rec { description = "Virtual lighttable and darkroom for photographers"; homepage = https://www.darktable.org; license = licenses.gpl3Plus; - platforms = platforms.linux; + platforms = platforms.linux ++ platforms.darwin; maintainers = with maintainers; [ goibhniu rickynils flosse mrVanDalo ]; }; }