darktable: Fix compilation on macOS

Only compile X11 and other components on Linux. Use DYLD_LIBRARY_PATH on
macOS instead of LD_LIBRARY_PATH.
This commit is contained in:
Michael Hoang 2018-08-01 19:05:22 +10:00
parent 0ee70940b1
commit 61cbf57300

View File

@ -3,7 +3,7 @@
, ilmbase, gtk3, intltool, lcms2, lensfun, libX11, libexif, libgphoto2, libjpeg , ilmbase, gtk3, intltool, lcms2, lensfun, libX11, libexif, libgphoto2, libjpeg
, libpng, librsvg, libtiff, openexr, osm-gps-map, pkgconfig, sqlite, libxslt , libpng, librsvg, libtiff, openexr, osm-gps-map, pkgconfig, sqlite, libxslt
, openjpeg, lua, pugixml, colord, colord-gtk, libwebp, libsecret, gnome3 , openjpeg, lua, pugixml, colord, colord-gtk, libwebp, libsecret, gnome3
, ocl-icd , ocl-icd, pcre, gtk-mac-integration
}: }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
@ -18,24 +18,32 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ cmake ninja llvm pkgconfig intltool perl desktop-file-utils wrapGAppsHook ]; nativeBuildInputs = [ cmake ninja llvm pkgconfig intltool perl desktop-file-utils wrapGAppsHook ];
buildInputs = [ 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 libgphoto2 libjpeg libpng librsvg libtiff openexr sqlite libxslt
libsoup graphicsmagick json-glib openjpeg lua pugixml libsoup graphicsmagick json-glib openjpeg lua pugixml
colord colord-gtk libwebp libsecret gnome3.adwaita-icon-theme libwebp libsecret gnome3.adwaita-icon-theme osm-gps-map pcre
osm-gps-map ocl-icd ] ++ stdenv.lib.optionals stdenv.isLinux [
]; colord colord-gtk libX11 ocl-icd
] ++ stdenv.lib.optional stdenv.isDarwin gtk-mac-integration;
cmakeFlags = [ cmakeFlags = [
"-DBUILD_USERMANUAL=False" "-DBUILD_USERMANUAL=False"
] ++ stdenv.lib.optionals stdenv.isDarwin [
"-DUSE_COLORD=OFF"
"-DUSE_KWALLET=OFF"
]; ];
# darktable changed its rpath handling in commit # darktable changed its rpath handling in commit
# 83c70b876af6484506901e6b381304ae0d073d3c and as a result the # 83c70b876af6484506901e6b381304ae0d073d3c and as a result the
# binaries can't find libdarktable.so, so change LD_LIBRARY_PATH in # binaries can't find libdarktable.so, so change LD_LIBRARY_PATH in
# the wrappers: # 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+=( 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"; description = "Virtual lighttable and darkroom for photographers";
homepage = https://www.darktable.org; homepage = https://www.darktable.org;
license = licenses.gpl3Plus; license = licenses.gpl3Plus;
platforms = platforms.linux; platforms = platforms.linux ++ platforms.darwin;
maintainers = with maintainers; [ goibhniu rickynils flosse mrVanDalo ]; maintainers = with maintainers; [ goibhniu rickynils flosse mrVanDalo ];
}; };
} }