nixpkgs/pkgs/applications/graphics/digikam/default.nix

136 lines
2.2 KiB
Nix

{ mkDerivation, lib, fetchurl, cmake, doxygen, extra-cmake-modules, wrapGAppsHook
# For `digitaglinktree`
, perl, sqlite
, qtbase
, qtxmlpatterns
, qtsvg
, qtwebengine
, akonadi-contacts
, kcalendarcore
, kconfigwidgets
, kcoreaddons
, kdoctools
, kfilemetadata
, knotifications
, knotifyconfig
, ktextwidgets
, kwidgetsaddons
, kxmlgui
, bison
, boost
, eigen
, exiv2
, ffmpeg
, flex
, graphviz
, imagemagick
, lcms2
, lensfun
, libgphoto2
, libkipi
, libksane
, liblqr1
, libqtav
, libusb1
, marble
, libGL
, libGLU
, opencv3
, pcre
, threadweaver
, x265
# For panorama and focus stacking
, enblend-enfuse
, hugin
, gnumake
, breeze-icons
, oxygen
}:
mkDerivation rec {
pname = "digikam";
version = "7.1.0";
src = fetchurl {
url = "mirror://kde/stable/${pname}/${version}/${pname}-${version}.tar.xz";
sha256 = "1gmblnsm0aida3yynyddm6jdh59hx3w177hrhfar616z793ch0xi";
};
nativeBuildInputs = [ cmake doxygen extra-cmake-modules kdoctools wrapGAppsHook ];
buildInputs = [
bison
boost
eigen
exiv2
ffmpeg
flex
graphviz
imagemagick
lcms2
lensfun
libgphoto2
libkipi
libksane
liblqr1
libqtav
libusb1
libGL
libGLU
opencv3
pcre
x265
qtbase
qtxmlpatterns
qtsvg
qtwebengine
akonadi-contacts
kcalendarcore
kconfigwidgets
kcoreaddons
kfilemetadata
knotifications
knotifyconfig
ktextwidgets
kwidgetsaddons
kxmlgui
breeze-icons
marble
oxygen
threadweaver
];
enableParallelBuilding = true;
cmakeFlags = [
"-DENABLE_MYSQLSUPPORT=1"
"-DENABLE_INTERNALMYSQL=1"
"-DENABLE_MEDIAPLAYER=1"
"-DENABLE_QWEBENGINE=on"
];
preFixup = ''
gappsWrapperArgs+=(--prefix PATH : ${lib.makeBinPath [ gnumake hugin enblend-enfuse ]})
gappsWrapperArgs+=(--suffix DK_PLUGIN_PATH : ${placeholder "out"}/${qtbase.qtPluginPrefix}/${pname})
substituteInPlace $out/bin/digitaglinktree \
--replace "/usr/bin/perl" "${perl}/bin/perl" \
--replace "/usr/bin/sqlite3" "${sqlite}/bin/sqlite3"
'';
meta = with lib; {
description = "Photo Management Program";
license = licenses.gpl2;
homepage = "https://www.digikam.org";
platforms = platforms.linux;
};
}