Files
haikuports/app-office/kmymoney/kmymoney-5.2.2.recipe
2026-02-24 18:15:33 +00:00

241 lines
8.4 KiB
Bash

SUMMARY="Personal finance manager based on KDE Frameworks"
DESCRIPTION="KMyMoney is a cross-platform personal finance manager build on KDE frameworks \
technologies for your desktop and notebook environment. It enables users to keep careful track of \
their personal finances by providing a broad array of financial features and tools."
HOMEPAGE="https://kmymoney.org/"
COPYRIGHT="2010-2026 KDE Organisation"
LICENSE="GNU GPL v2"
REVISION="1"
SOURCE_URI="https://download.kde.org/stable/kmymoney/$portVersion/kmymoney-$portVersion.tar.xz"
CHECKSUM_SHA256="40b6639e6a216100d20248ed74fa154202f9ccdfbc335227cedc1bef8ea5d377"
PATCHES="kmymoney-$portVersion.patchset"
ADDITIONAL_FILES="kmymoney.rdef.in"
ARCHITECTURES="all !x86_gcc2"
SECONDARY_ARCHITECTURES="x86"
libVersion="$portVersion"
libVersionCompat="$libVersion compat >= ${libVersion%%.*}"
PROVIDES="
kmymoney$secondaryArchSuffix = $portVersion
app:KMyMoney = $portVersion
lib:libkmm_base_dialogs$secondaryArchSuffix = $libVersionCompat
lib:libkmm_base_widgets$secondaryArchSuffix = $libVersionCompat
lib:libkmm_csvimportercore$secondaryArchSuffix = $libVersionCompat
lib:libkmm_codec$secondaryArchSuffix = $libVersionCompat
lib:libkmm_extended_dialogs$secondaryArchSuffix = $libVersionCompat
lib:libkmm_gpgfile$secondaryArchSuffix = $libVersionCompat
lib:libkmm_keychain$secondaryArchSuffix = $libVersionCompat
lib:libkmm_icons$secondaryArchSuffix = $libVersionCompat
lib:libkmm_menuactionexchanger$secondaryArchSuffix = $libVersionCompat
lib:libkmm_menus$secondaryArchSuffix = $libVersionCompat
lib:libkmm_models$secondaryArchSuffix = $libVersionCompat
lib:libkmm_mymoney$secondaryArchSuffix = $libVersionCompat
lib:libkmm_payeeidentifier$secondaryArchSuffix = $libVersionCompat
lib:libkmm_plugin$secondaryArchSuffix = $libVersionCompat
lib:libkmm_printer$secondaryArchSuffix = $libVersionCompat
lib:libkmm_selections$secondaryArchSuffix = $libVersionCompat
lib:libkmm_settings$secondaryArchSuffix = $libVersionCompat
lib:libkmm_templates$secondaryArchSuffix = $libVersionCompat
lib:libkmm_webconnect$secondaryArchSuffix = $libVersionCompat
lib:libkmm_widgets$secondaryArchSuffix = $libVersionCompat
lib:libkmm_wizard$secondaryArchSuffix = $libVersionCompat
lib:libkmm_yesno$secondaryArchSuffix = $libVersionCompat
lib:libonlinetask_interfaces$secondaryArchSuffix = $libVersionCompat
"
REQUIRES="
haiku$secondaryArchSuffix
lib:libalkimia6$secondaryArchSuffix
lib:libgpgmepp$secondaryArchSuffix
lib:libgmp$secondaryArchSuffix
lib:libical$secondaryArchSuffix
lib:libKChart6$secondaryArchSuffix
lib:libqt6keychain$secondaryArchSuffix
lib:libsqlcipher$secondaryArchSuffix
# KF6
lib:libKF6ColorScheme$secondaryArchSuffix
lib:libKF6Completion$secondaryArchSuffix
lib:libKF6ConfigCore$secondaryArchSuffix
lib:libKF6ConfigWidgets$secondaryArchSuffix
lib:libKF6Crash$secondaryArchSuffix
lib:libKF6CoreAddons$secondaryArchSuffix
lib:libKF6Holidays$secondaryArchSuffix
lib:libKF6I18n$secondaryArchSuffix
lib:libKF6KCMutils$secondaryArchSuffix
lib:libKF6ItemViews$secondaryArchSuffix
lib:libKF6KIOCore$secondaryArchSuffix
lib:libKF6ItemModels$secondaryArchSuffix
lib:libKF6JobWidgets$secondaryArchSuffix
lib:libKF6SonnetUi$secondaryArchSuffix
lib:libKF6WidgetsAddons$secondaryArchSuffix
lib:libKF6TextWidgets$secondaryArchSuffix
lib:libKF6XmlGui$secondaryArchSuffix
# Plasma6
lib:libPlasmaActivities$secondaryArchSuffix
# Qt6
lib:libQt6Core$secondaryArchSuffix
lib:libQt6Core5Compat$secondaryArchSuffix
lib:libQt6Gui$secondaryArchSuffix
lib:libQt6Widgets$secondaryArchSuffix
"
PROVIDES_devel="
kmymoney${secondaryArchSuffix}_devel = $portVersion
devel:libkmm_base_dialogs$secondaryArchSuffix = $libVersionCompat
devel:libkmm_base_widgets$secondaryArchSuffix = $libVersionCompat
devel:libkmm_csvimportercore$secondaryArchSuffix = $libVersionCompat
devel:libkmm_codec$secondaryArchSuffix = $libVersionCompat
devel:libkmm_extended_dialogs$secondaryArchSuffix = $libVersionCompat
devel:libkmm_gpgfile$secondaryArchSuffix = $libVersionCompat
devel:libkmm_keychain$secondaryArchSuffix = $libVersionCompat
devel:libkmm_icons$secondaryArchSuffix = $libVersionCompat
devel:libkmm_menuactionexchanger$secondaryArchSuffix = $libVersionCompat
devel:libkmm_menus$secondaryArchSuffix = $libVersionCompat
devel:libkmm_models$secondaryArchSuffix = $libVersionCompat
devel:libkmm_mymoney$secondaryArchSuffix = $libVersionCompat
devel:libkmm_payeeidentifier$secondaryArchSuffix = $libVersionCompat
devel:libkmm_plugin$secondaryArchSuffix = $libVersionCompat
devel:libkmm_printer$secondaryArchSuffix = $libVersionCompat
devel:libkmm_selections$secondaryArchSuffix = $libVersionCompat
devel:libkmm_settings$secondaryArchSuffix = $libVersionCompat
devel:libkmm_templates$secondaryArchSuffix = $libVersionCompat
devel:libkmm_webconnect$secondaryArchSuffix = $libVersionCompat
devel:libkmm_widgets$secondaryArchSuffix = $libVersionCompat
devel:libkmm_wizard$secondaryArchSuffix = $libVersionCompat
devel:libkmm_yesno$secondaryArchSuffix = $libVersionCompat
devel:libonlinetask_interfaces$secondaryArchSuffix = $libVersionCompat
"
REQUIRES_devel="
kmymoney$secondaryArchSuffix == $portVersion base
"
BUILD_REQUIRES="
haiku${secondaryArchSuffix}_devel
devel:libalkimia6$secondaryArchSuffix
devel:libgpgmepp$secondaryArchSuffix
devel:libqgpgmeqt6$secondaryArchSuffix
devel:libgmp$secondaryArchSuffix
devel:libical$secondaryArchSuffix
devel:libKChart6$secondaryArchSuffix
devel:libofx$secondaryArchSuffix
devel:libqt6keychain$secondaryArchSuffix
devel:libsqlcipher$secondaryArchSuffix
# KF6
extra_cmake_modules$secondaryArchSuffix
devel:libKF6Archive$secondaryArchSuffix
devel:libKF6Contacts$secondaryArchSuffix
devel:libKF6Completion$secondaryArchSuffix
devel:libKF6ConfigCore$secondaryArchSuffix
devel:libKF6ConfigWidgets$secondaryArchSuffix
devel:libKF6CoreAddons$secondaryArchSuffix
devel:libKF6Holidays$secondaryArchSuffix
devel:libKF6I18n$secondaryArchSuffix
devel:libKF6ItemModels$secondaryArchSuffix
devel:libKF6ItemViews$secondaryArchSuffix
devel:libKF6KIOCore$secondaryArchSuffix
devel:libKF6KCMutils$secondaryArchSuffix
devel:libKF6Notifications$secondaryArchSuffix
devel:libKF6Service$secondaryArchSuffix
devel:libKF6TextWidgets$secondaryArchSuffix
devel:libKF6XmlGui$secondaryArchSuffix
# Plasma6
devel:libPlasmaActivities$secondaryArchSuffix
# Qt6
devel:libQt6Core$secondaryArchSuffix
devel:libQt6Core5Compat$secondaryArchSuffix
devel:libQt6Svg$secondaryArchSuffix
devel:libQt6QuickWidgets$secondaryArchSuffix
"
BUILD_PREREQUIRES="
cmd:cmake
cmd:g++$secondaryArchSuffix
cmd:make
cmd:msgfmt$secondaryArchSuffix
cmd:msgmerge$secondaryArchSuffix
cmd:pkg_config$secondaryArchSuffix
cmd:python3.10
"
TEST_REQUIRES="
qthaikuplugins$secondaryArchSuffix
"
BUILD()
{
cmake -B build -S . -DCMAKE_BUILD_TYPE=Release \
$cmakeDirArgs \
-DKDE_INSTALL_BINDIR=$appsDir \
-DBUILD_WITH_QT6=ON \
-DCMAKE_SKIP_RPATH=ON \
-DBUILD_TESTING=OFF \
-Wno-dev
make -C build $jobArgs
}
INSTALL()
{
make -C build install
rm -rf $dataDir/mime/{aliases,generic-icons,globs,globs2,icons,magic}
rm -rf $dataDir/mime/{mime.cache,subclasses,treemagic,types,version,XMLnamespaces}
mv $appsDir/kmymoney $appsDir/KMyMoney
# we are not linux
rm -rf $dataDir/{applications,icons,metainfo}
local MAJOR="`echo "$portVersion" | cut -d. -f1`"
local MIDDLE="`echo "$portVersion" | cut -d. -f2`"
local MINOR="`echo "$portVersion" | cut -d. -f3`"
local APP_NAME="KMyMoney"
local LONG_INFO="$SUMMARY"
local APP_SIGNATURE="application/x-kmymoney"
sed \
-e "s|@MAJOR@|$MAJOR|" \
-e "s|@MIDDLE@|$MIDDLE|" \
-e "s|@MINOR@|$MINOR|" \
-e "s|@LONG_INFO@|$LONG_INFO|" \
-e "s|@APP_NAME@|$APP_NAME|" \
-e "s|@APP_SIGNATURE@|$APP_SIGNATURE|" \
$portDir/additional-files/kmymoney.rdef.in > kmymoney.rdef
addResourcesToBinaries kmymoney.rdef $appsDir/KMyMoney
addAppDeskbarSymlink $appsDir/KMyMoney
prepareInstalledDevelLibs \
libkmm_base_dialogs \
libkmm_base_widgets \
libkmm_csvimportercore \
libkmm_codec \
libkmm_extended_dialogs \
libkmm_gpgfile \
libkmm_keychain \
libkmm_icons \
libkmm_menuactionexchanger \
libkmm_menus \
libkmm_models \
libkmm_mymoney \
libkmm_payeeidentifier \
libkmm_plugin \
libkmm_printer \
libkmm_selections \
libkmm_settings \
libkmm_templates \
libkmm_webconnect \
libkmm_widgets \
libkmm_wizard \
libkmm_yesno \
libonlinetask_interfaces
packageEntries devel \
$developDir
}
TEST()
{
ctest --test-dir build --output-on-failure
}