Files
haikuports/media-gfx/digikam/digikam-9.0.0.recipe
2026-03-09 16:01:16 +01:00

285 lines
9.9 KiB
Bash

SUMMARY="Professional Photo Management with the Power of Open Source"
DESCRIPTION="digiKam is an advanced open-source digital photo management \
application that runs on Linux, Windows, and MacOS. The application provides \
a comprehensive set of tools for importing, managing, editing, and sharing \
photos and RAW files."
HOMEPAGE="https://digikam.org/"
COPYRIGHT="2010-2026 KDE Organisation"
LICENSE="GNU LGPL v2"
REVISION="2"
SOURCE_URI="https://download.kde.org/stable/digikam/$portVersion/digiKam-$portVersion.tar.xz"
CHECKSUM_SHA256="7680ea024fe00e10c96090e45fe4b7b4a1c3993bc5e87576eddd4e0eefd08ef3"
SOURCE_DIR="digikam-$portVersion"
PATCHES="digikam-$portVersion.patchset"
ADDITIONAL_FILES="
digikam.rdef.in
showfoto.rdef.in
"
ARCHITECTURES="all !x86_gcc2"
SECONDARY_ARCHITECTURES="x86"
libVersion="$portVersion"
libVersionCompat="$libVersion compat >= ${libVersion%%.*}"
PROVIDES="
digikam$secondaryArchSuffix = $portVersion
app:digiKam = $portVersion
app:showFoto = $portVersion
lib:libdigikamcore$secondaryArchSuffix = $libVersionCompat
lib:libdigikamdatabase$secondaryArchSuffix = $libVersionCompat
lib:libdigikamgui$secondaryArchSuffix = $libVersionCompat
"
REQUIRES="
haiku$secondaryArchSuffix
cmd:exiftool
lib:libavcodec$secondaryArchSuffix
lib:libavdevice$secondaryArchSuffix
lib:libavfilter$secondaryArchSuffix
lib:libavutil$secondaryArchSuffix
lib:libexiv2$secondaryArchSuffix
lib:libexpat$secondaryArchSuffix
lib:libGL$secondaryArchSuffix
lib:libGLU$secondaryArchSuffix
lib:libglib_2.0$secondaryArchSuffix
lib:libgomp$secondaryArchSuffix
lib:libgphoto2$secondaryArchSuffix
lib:libheif$secondaryArchSuffix
lib:libiconv$secondaryArchSuffix
lib:libintl$secondaryArchSuffix
lib:libjasper$secondaryArchSuffix
lib:libjpeg$secondaryArchSuffix
lib:libjxl$secondaryArchSuffix
lib:libkdeinit5_kded5$secondaryArchSuffix
lib:libkdeinit5_klauncher$secondaryArchSuffix
lib:libKF5Archive$secondaryArchSuffix
lib:libKF5Auth$secondaryArchSuffix
lib:libKF5Bookmarks$secondaryArchSuffix
lib:libKF5CalendarCore$secondaryArchSuffix
lib:libKF5Codecs$secondaryArchSuffix
lib:libKF5Completion$secondaryArchSuffix
lib:libKF5ConfigCore$secondaryArchSuffix
lib:libKF5ConfigGui$secondaryArchSuffix
lib:libKF5ConfigWidgets$secondaryArchSuffix
lib:libKF5CoreAddons$secondaryArchSuffix
lib:libKF5Crash$secondaryArchSuffix
lib:libKF5DBusAddons$secondaryArchSuffix
lib:libKF5DocTools$secondaryArchSuffix
lib:libKF5Emoticons$secondaryArchSuffix
lib:libKF5FileMetadata$secondaryArchSuffix
lib:libKF5GuiAddons$secondaryArchSuffix
lib:libKF5I18n$secondaryArchSuffix
lib:libKF5IconThemes$secondaryArchSuffix
lib:libKF5ItemModels$secondaryArchSuffix
lib:libKF5ItemViews$secondaryArchSuffix
lib:libKF5JobWidgets$secondaryArchSuffix
lib:libKF5KIOCore$secondaryArchSuffix
lib:libKF5KIOFileWidgets$secondaryArchSuffix
lib:libKF5KIOWidgets$secondaryArchSuffix
lib:libKF5Notifications$secondaryArchSuffix
lib:libKF5NotifyConfig$secondaryArchSuffix
lib:libKF5Parts$secondaryArchSuffix
lib:libKF5Sane$secondaryArchSuffix
lib:libKF5Service$secondaryArchSuffix
lib:libKF5Solid$secondaryArchSuffix
lib:libKF5SonnetUi$secondaryArchSuffix
lib:libKF5TextWidgets$secondaryArchSuffix
lib:libKF5ThreadWeaver$secondaryArchSuffix
lib:libKF5UnitConversion$secondaryArchSuffix
lib:libKF5WidgetsAddons$secondaryArchSuffix
lib:libKF5WindowSystem$secondaryArchSuffix
lib:libKF5XmlGui$secondaryArchSuffix
lib:liblcms2$secondaryArchSuffix
lib:liblensfun$secondaryArchSuffix
lib:liblqr_1$secondaryArchSuffix
lib:libMagick++_7.Q16HDRI$secondaryArchSuffix
lib:libopenal$secondaryArchSuffix
lib:libopencv_core$secondaryArchSuffix
lib:libopencv_imgcodecs$secondaryArchSuffix
lib:libopencv_imgproc$secondaryArchSuffix
lib:libopencv_objdetect$secondaryArchSuffix
lib:libpng16$secondaryArchSuffix
lib:libQt5Core$secondaryArchSuffix
lib:libQt5DBus$secondaryArchSuffix
lib:libQt5Gui$secondaryArchSuffix
lib:libQt5Network$secondaryArchSuffix
lib:libQt5PrintSupport$secondaryArchSuffix
lib:libQt5Widgets$secondaryArchSuffix
lib:libQt5WebEngine$secondaryArchSuffix
lib:libQt5WebEngineCore$secondaryArchSuffix
lib:libQt5WebEngineWidgets$secondaryArchSuffix
lib:libQt5Xml$secondaryArchSuffix
lib:libswscale$secondaryArchSuffix
lib:libswresample$secondaryArchSuffix
lib:libtiff$secondaryArchSuffix
lib:libx265$secondaryArchSuffix
lib:libxml2$secondaryArchSuffix
lib:libxslt$secondaryArchSuffix
lib:libz$secondaryArchSuffix
"
PROVIDES_devel="
digikam${secondaryArchSuffix}_devel = $portVersion compat >= 9
devel:libdigikamcore$secondaryArchSuffix = $libVersionCompat
devel:libdigikamdatabase$secondaryArchSuffix = $libVersionCompat
devel:libdigikamgui$secondaryArchSuffix = $libVersionCompat
"
REQUIRES_devel="
haiku$secondaryArchSuffix
digikam$secondaryArchSuffix == $portVersion base
"
BUILD_REQUIRES="
haiku${secondaryArchSuffix}_devel
extra_cmake_modules$secondaryArchSuffix
ffmpeg7${secondaryArchSuffix}_devel
devel:eigen$secondaryArchSuffix
devel:libGL$secondaryArchSuffix
devel:libGLU$secondaryArchSuffix
devel:libboost_filesystem$secondaryArchSuffix >= 1.90.0
devel:libexiv2$secondaryArchSuffix
devel:libexpat$secondaryArchSuffix
devel:libglib_2.0$secondaryArchSuffix
devel:libgomp$secondaryArchSuffix
devel:libgphoto2$secondaryArchSuffix
devel:libheif$secondaryArchSuffix
devel:libiconv$secondaryArchSuffix
devel:libintl$secondaryArchSuffix
devel:libjasper$secondaryArchSuffix
devel:libjpeg$secondaryArchSuffix
devel:libjxl$secondaryArchSuffix
devel:libkdeinit5_kded5$secondaryArchSuffix
devel:libkdeinit5_klauncher$secondaryArchSuffix
devel:libKF5Archive$secondaryArchSuffix
devel:libKF5Auth$secondaryArchSuffix
devel:libKF5Bookmarks$secondaryArchSuffix
devel:libKF5CalendarCore$secondaryArchSuffix
devel:libKF5Codecs$secondaryArchSuffix
devel:libKF5Completion$secondaryArchSuffix
devel:libKF5ConfigCore$secondaryArchSuffix
devel:libKF5ConfigGui$secondaryArchSuffix
devel:libKF5ConfigWidgets$secondaryArchSuffix
devel:libKF5CoreAddons$secondaryArchSuffix
devel:libKF5Crash$secondaryArchSuffix
devel:libKF5DBusAddons$secondaryArchSuffix
devel:libKF5DesignerPlugin$secondaryArchSuffix
devel:libKF5DocTools$secondaryArchSuffix
devel:libKF5Emoticons$secondaryArchSuffix
devel:libKF5FileMetadata$secondaryArchSuffix
devel:libKF5GuiAddons$secondaryArchSuffix
devel:libKF5I18n$secondaryArchSuffix
devel:libKF5IconThemes$secondaryArchSuffix
devel:libKF5ItemModels$secondaryArchSuffix
devel:libKF5ItemViews$secondaryArchSuffix
devel:libKF5JobWidgets$secondaryArchSuffix
devel:libKF5KIOCore$secondaryArchSuffix
devel:libKF5KIOFileWidgets$secondaryArchSuffix
devel:libKF5KIOWidgets$secondaryArchSuffix
devel:libKF5Notifications$secondaryArchSuffix
devel:libKF5NotifyConfig$secondaryArchSuffix
devel:libKF5Parts$secondaryArchSuffix
devel:libKF5Sane$secondaryArchSuffix
devel:libKF5Service$secondaryArchSuffix
devel:libKF5Solid$secondaryArchSuffix
devel:libKF5SonnetUi$secondaryArchSuffix
devel:libKF5TextWidgets$secondaryArchSuffix
devel:libKF5ThreadWeaver$secondaryArchSuffix
devel:libKF5UnitConversion$secondaryArchSuffix
devel:libKF5WidgetsAddons$secondaryArchSuffix
devel:libKF5WindowSystem$secondaryArchSuffix
devel:libKF5XmlGui$secondaryArchSuffix
devel:liblcms2$secondaryArchSuffix
devel:liblensfun$secondaryArchSuffix
devel:liblqr_1$secondaryArchSuffix
devel:libMagick++_7.Q16HDRI$secondaryArchSuffix
devel:libopenal$secondaryArchSuffix
devel:libopencv_core$secondaryArchSuffix >= 4.13
devel:libopencv_cvv$secondaryArchSuffix >= 4.13
devel:libpng16$secondaryArchSuffix
devel:libQt5Core$secondaryArchSuffix
devel:libQt5WebEngine$secondaryArchSuffix
devel:libtiff$secondaryArchSuffix
devel:libx265$secondaryArchSuffix
devel:libxml2$secondaryArchSuffix
devel:libxslt$secondaryArchSuffix
devel:libz$secondaryArchSuffix
"
BUILD_PREREQUIRES="
cmd:bison
cmd:cmake
cmd:flex
cmd:g++$secondaryArchSuffix
cmd:git
cmd:lrelease$secondaryArchSuffix >= 5
cmd:make
cmd:pkg_config$secondaryArchSuffix
cmd:qdbuscpp2xml$secondaryArchSuffix >= 5
"
BUILD()
{
cmake -B build -S . -DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=$appsDir/digiKam \
-DCMAKE_INSTALL_DATAROOTDIR=$dataDir \
-DCMAKE_INSTALL_LIBDIR=$libDir \
-DCMAKE_INSTALL_INCLUDEDIR=$includeDir \
-DINCLUDE_INSTALL_DIR=$includeDir \
-DSHARE_INSTALL_PREFIX=$dataDir \
-DKDE_INSTALL_QTPLUGINDIR=$addOnsDir/Qt5 \
-DECM_MKSPECS_INSTALL_DIR=$dataDir/Qt5/mkspecs \
-DECM_DIR=/system/data/cmake/Modules/ECM/cmake \
-DCMAKE_CXX_FLAGS="-D_BSD_SOURCE" \
-DENABLE_DBUS=OFF \
-DENABLE_MEDIAPLAYER=ON \
-DENABLE_APPSTYLES=ON \
-DENABLE_QWEBENGINE=ON \
-DCMAKE_AUTOGEN_PARALLEL=4 \
-Wno-dev
LIBRARY_PATH=$LIBRARY_PATH:$sourceDir/build/bin \
make -C build $jobArgs
}
INSTALL()
{
LIBRARY_PATH=$LIBRARY_PATH:$sourceDir/build/bin \
make -C build install
mv $appsDir/digiKam/bin/digikam $appsDir/digiKam/digiKam
mv $appsDir/digiKam/bin/showfoto $appsDir/digiKam/showFoto
rm -rf $appsDir/digiKam/bin
prepareInstalledDevelLibs libdigikamcore libdigikamdatabase libdigikamgui
packageEntries devel \
$developDir \
$libDir/cmake \
local APP_SIGNATURE="application/x-vnd.qt5-digikam"
local MAJOR="`echo "$portVersion" | cut -d. -f1`"
local MIDDLE="`echo "$portVersion" | cut -d. -f2`"
local MINOR="`echo "$portVersion" | cut -d. -f3`"
local LONG_INFO="$SUMMARY"
sed \
-e "s|@APP_SIGNATURE@|$APP_SIGNATURE|" \
-e "s|@MAJOR@|$MAJOR|" \
-e "s|@MIDDLE@|$MIDDLE|" \
-e "s|@MINOR@|$MINOR|" \
-e "s|@LONG_INFO@|$LONG_INFO|" \
$portDir/additional-files/digikam.rdef.in > digikam.rdef
addResourcesToBinaries digikam.rdef $appsDir/digiKam/digiKam
local APP_SIGNATURE="application/x-vnd.qt5-showfoto"
sed \
-e "s|@APP_SIGNATURE@|$APP_SIGNATURE|" \
-e "s|@MAJOR@|$MAJOR|" \
-e "s|@MIDDLE@|$MIDDLE|" \
-e "s|@MINOR@|$MINOR|" \
-e "s|@LONG_INFO@|$LONG_INFO|" \
$portDir/additional-files/showfoto.rdef.in > showfoto.rdef
addResourcesToBinaries showfoto.rdef $appsDir/digiKam/showFoto
addAppDeskbarSymlink $appsDir/digiKam/showFoto
addAppDeskbarSymlink $appsDir/digiKam/digiKam
}