Files
haikuports/app-office/calligra/calligra-25.12.0.recipe
2025-12-22 17:48:48 +01:00

332 lines
12 KiB
Bash

SUMMARY="The integrated work applications suite"
DESCRIPTION="Calligra Suite is a collection of office applications linked \
together by a common base. This common base assures that all office \
application can work together and also share a common look and feel."
HOMEPAGE="https://www.calligra.org/"
COPYRIGHT="2010-2025 KDE Organisation"
LICENSE="GNU LGPL v2
GNU GPL v2"
REVISION="1"
SOURCE_URI="https://download.kde.org/stable/release-service/$portVersion/src/calligra-$portVersion.tar.xz"
CHECKSUM_SHA256="0e1590961131c5ca7690f6d691131239b685403d14f346c0138dbc7e2f8a69fb"
PATCHES="calligra-$portVersion.patchset"
ADDITIONAL_FILES="
karbon.rdef.in
sheets.rdef.in
stage.rdef.in
words.rdef.in
"
ARCHITECTURES="all !x86_gcc2"
SECONDARY_ARCHITECTURES="?x86"
PROVIDES="
calligra$secondaryArchSuffix = $portVersion
app:Karbon = $portVersion
app:Words = $portVersion
app:Sheets = $portVersion
app:Stage = $portVersion
cmd:calligraconverter = $portVersion
cmd:visualimagecompare = $portVersion
lib:libautocorrection$secondaryArchSuffix = $portVersion
lib:libbasicflakes$secondaryArchSuffix = $portVersion
lib:libcalligrasheetscore$secondaryArchSuffix = $portVersion
lib:libcalligrasheetsengine$secondaryArchSuffix = $portVersion
lib:libcalligrasheetspartlib$secondaryArchSuffix = $portVersion
lib:libcalligrasheetsui$secondaryArchSuffix = $portVersion
lib:libcalligrastageprivate$secondaryArchSuffix = $portVersion
lib:libflake$secondaryArchSuffix = $portVersion
lib:libkarboncommon$secondaryArchSuffix = $portVersion
lib:libkarbonui$secondaryArchSuffix = $portVersion
lib:libkoformula$secondaryArchSuffix = $portVersion
lib:libkomain$secondaryArchSuffix = $portVersion
lib:libkomsooxml$secondaryArchSuffix = $portVersion
lib:libkoodf$secondaryArchSuffix = $portVersion
lib:libkoodf2$secondaryArchSuffix = $portVersion
lib:libkoodfreader$secondaryArchSuffix = $portVersion
lib:libkookularGenerator_odp$secondaryArchSuffix = $portVersion
lib:libkookularGenerator_odt$secondaryArchSuffix = $portVersion
lib:libkopageapp$secondaryArchSuffix = $portVersion
lib:libkoplugin$secondaryArchSuffix = $portVersion
lib:libkostore$secondaryArchSuffix = $portVersion
lib:libkotext$secondaryArchSuffix = $portVersion
lib:libkotextlayout$secondaryArchSuffix = $portVersion
lib:libkovectorimage$secondaryArchSuffix = $portVersion
lib:libkowidgets$secondaryArchSuffix = $portVersion
lib:libkowidgetutils$secondaryArchSuffix = $portVersion
lib:libkowv2$secondaryArchSuffix = $portVersion
lib:libkundo2$secondaryArchSuffix = $portVersion
lib:libpigmentcms$secondaryArchSuffix = $portVersion
lib:librtfreader$secondaryArchSuffix = $portVersion
lib:libwordsprivate$secondaryArchSuffix = $portVersion
"
REQUIRES="
haiku$secondaryArchSuffix
lib:libboost_system$secondaryArchSuffix
lib:libetonyek_0.1$secondaryArchSuffix
lib:libfontconfig$secondaryArchSuffix
lib:libfreetype$secondaryArchSuffix
lib:libGL$secondaryArchSuffix
lib:libgsl$secondaryArchSuffix
lib:libiconv$secondaryArchSuffix
lib:libIex_3_2$secondaryArchSuffix
lib:libIlmThread_3_2$secondaryArchSuffix
lib:libImath_3_1$secondaryArchSuffix
lib:libKChart6$secondaryArchSuffix
lib:libKGantt6$secondaryArchSuffix
lib:liblcms2$secondaryArchSuffix
lib:libodfgen_0.1$secondaryArchSuffix
lib:libOkular6Core$secondaryArchSuffix
lib:libOpenEXR_3_2$secondaryArchSuffix
lib:libOpenEXRUtil_3_2$secondaryArchSuffix
lib:libphonon4qt6$secondaryArchSuffix
lib:libpoppler$secondaryArchSuffix
lib:libpoppler_qt6$secondaryArchSuffix
lib:libqca_qt6$secondaryArchSuffix
lib:librevenge_0.0$secondaryArchSuffix
lib:libssl$secondaryArchSuffix
lib:libvisio_0.1$secondaryArchSuffix
lib:libwpd_0.10$secondaryArchSuffix
lib:libwpg_0.3$secondaryArchSuffix
lib:libwps_0.4$secondaryArchSuffix
lib:libz$secondaryArchSuffix
# KF6
lib:libKF6Archive$secondaryArchSuffix
lib:libKF6AuthCore$secondaryArchSuffix
lib:libKF6Bookmarks$secondaryArchSuffix
lib:libKF6Codecs$secondaryArchSuffix
lib:libKF6ColorScheme$secondaryArchSuffix
lib:libKF6Completion$secondaryArchSuffix
lib:libKF6ConfigCore$secondaryArchSuffix
lib:libKF6ConfigGui$secondaryArchSuffix
lib:libKF6ConfigWidgets$secondaryArchSuffix
lib:libKF6CoreAddons$secondaryArchSuffix
lib:libKF6Crash$secondaryArchSuffix
lib:libKF6GuiAddons$secondaryArchSuffix
lib:libKF6I18n$secondaryArchSuffix
lib:libKF6IconThemes$secondaryArchSuffix
lib:libKF6ItemModels$secondaryArchSuffix
lib:libKF6ItemViews$secondaryArchSuffix
lib:libKF6JobWidgets$secondaryArchSuffix
lib:libKF6KCMUtils$secondaryArchSuffix
lib:libKF6KCMUtilsCore$secondaryArchSuffix
lib:libKF6KCMUtilsQuick$secondaryArchSuffix
lib:libKF6KIOCore$secondaryArchSuffix
lib:libKF6KIOGui$secondaryArchSuffix
lib:libKF6KIOWidgets$secondaryArchSuffix
lib:libKF6Notifications$secondaryArchSuffix
lib:libKF6NotifyConfig$secondaryArchSuffix
lib:libKF6Parts$secondaryArchSuffix
lib:libKF6Service$secondaryArchSuffix
lib:libKF6Solid$secondaryArchSuffix
lib:libKF6SonnetUi$secondaryArchSuffix
lib:libKF6TextWidgets$secondaryArchSuffix
lib:libKF6ThreadWeaver$secondaryArchSuffix
lib:libKF6UnitConversion$secondaryArchSuffix
lib:libKF6Wallet$secondaryArchSuffix
lib:libKF6WidgetsAddons$secondaryArchSuffix
lib:libKF6WindowSystem$secondaryArchSuffix
lib:libKF6XmlGui$secondaryArchSuffix
# Qt6
lib:libQt6Core$secondaryArchSuffix
lib:libQt6Gui$secondaryArchSuffix
lib:libQt6Keychain$secondaryArchSuffix
lib:libQt6Network$secondaryArchSuffix
lib:libQt6PrintSupport$secondaryArchSuffix
lib:libQt6Qml$secondaryArchSuffix
lib:libQt6Svg$secondaryArchSuffix
lib:libQt6Widgets$secondaryArchSuffix
lib:libQt6Xml$secondaryArchSuffix
"
BUILD_REQUIRES="
haiku${secondaryArchSuffix}_devel
devel:eigen$secondaryArchSuffix
devel:libboost_system$secondaryArchSuffix >= 1.88.0
devel:libetonyek_0.1$secondaryArchSuffix
devel:libfontconfig$secondaryArchSuffix
devel:libfreetype$secondaryArchSuffix
devel:libgsl$secondaryArchSuffix
devel:libgit2$secondaryArchSuffix >= 1.8
devel:libOkular6Core$secondaryArchSuffix
# okular6
devel:libiconv$secondaryArchSuffix
devel:libIex_3_2$secondaryArchSuffix
devel:libIlmThread_3_2$secondaryArchSuffix
devel:libImath_3_1$secondaryArchSuffix
devel:libKChart6$secondaryArchSuffix
devel:libKGantt6$secondaryArchSuffix
devel:liblangtag$secondaryArchSuffix
devel:liblcms2$secondaryArchSuffix
devel:libodfgen_0.1$secondaryArchSuffix
devel:libOpenEXR_3_2$secondaryArchSuffix
devel:libOpenEXRUtil_3_2$secondaryArchSuffix
devel:libphonon4qt6$secondaryArchSuffix
devel:libpoppler$secondaryArchSuffix >= 148
devel:libpoppler_qt6$secondaryArchSuffix >= 3.10
devel:libqca_qt6$secondaryArchSuffix >= 2
devel:librevenge_0.0$secondaryArchSuffix
devel:libssl$secondaryArchSuffix
devel:libvisio_0.1$secondaryArchSuffix
devel:libwpd_0.10$secondaryArchSuffix
devel:libwpg_0.3$secondaryArchSuffix
devel:libwps_0.4$secondaryArchSuffix
devel:libz$secondaryArchSuffix
# KF6
extra_cmake_modules$secondaryArchSuffix
devel:libKF6Archive$secondaryArchSuffix
devel:libKF6AuthCore$secondaryArchSuffix
devel:libKF6Bookmarks$secondaryArchSuffix
devel:libKF6Codecs$secondaryArchSuffix
devel:libKF6ColorScheme$secondaryArchSuffix
devel:libKF6Completion$secondaryArchSuffix
devel:libKF6ConfigCore$secondaryArchSuffix
devel:libKF6ConfigGui$secondaryArchSuffix
devel:libKF6ConfigWidgets$secondaryArchSuffix
devel:libKF6CoreAddons$secondaryArchSuffix
devel:libKF6Crash$secondaryArchSuffix
devel:libKF6DBusAddons$secondaryArchSuffix
devel:libKF6GuiAddons$secondaryArchSuffix
devel:libKF6Holidays$secondaryArchSuffix
devel:libKF6I18n$secondaryArchSuffix
devel:libKF6IconThemes$secondaryArchSuffix
devel:libKF6ItemModels$secondaryArchSuffix
devel:libKF6ItemViews$secondaryArchSuffix
devel:libKF6JobWidgets$secondaryArchSuffix
devel:libKF6KCMUtils$secondaryArchSuffix
devel:libKF6KIOCore$secondaryArchSuffix
devel:libKF6Notifications$secondaryArchSuffix
devel:libKF6NotifyConfig$secondaryArchSuffix
devel:libKF6Parts$secondaryArchSuffix
devel:libKF6Service$secondaryArchSuffix
devel:libKF6Solid$secondaryArchSuffix
devel:libKF6SonnetCore$secondaryArchSuffix
devel:libKF6TextWidgets$secondaryArchSuffix
devel:libKF6ThreadWeaver$secondaryArchSuffix
devel:libKF6UnitConversion$secondaryArchSuffix
devel:libKF6Wallet$secondaryArchSuffix
devel:libKF6WidgetsAddons$secondaryArchSuffix
devel:libKF6WindowSystem$secondaryArchSuffix
devel:libKF6XmlGui$secondaryArchSuffix
# Qt6
qt6_tools${secondaryArchSuffix}_devel
devel:libQt6Core$secondaryArchSuffix
devel:libQt6Keychain$secondaryArchSuffix
devel:libQt6Qml$secondaryArchSuffix
devel:libQt6Svg$secondaryArchSuffix
"
BUILD_PREREQUIRES="
cmd:cmake
cmd:g++$secondaryArchSuffix
cmd:gettext$secondaryArchSuffix
cmd:make
cmd:perl
cmd:pkg_config$secondaryArchSuffix
"
PATCH()
{
# disable docs generation
sed -e 's|DocTools||' -i CMakeLists.txt
}
BUILD()
{
cmake -B build -S . -DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=$appsDir/Calligra \
-DCMAKE_INSTALL_BINDIR=$appsDir/Calligra \
-DCMAKE_INSTALL_LIBDIR=$libDir \
-DCMAKE_INSTALL_DATAROOTDIR=$dataDir \
-DKDE_INSTALL_INCLUDEDIR=$includeDir \
-DKDE_INSTALL_PLUGINDIR=$addOnsDir/Qt6 \
-DKDE_INSTALL_QMLDIR=$dataDir/Qt6/qml \
-DECM_MKSPECS_INSTALL_DIR=$dataDir/Qt6/mkspecs \
-DECM_DIR=/system/data/cmake/Modules/ECM/cmake \
-DICONV_INCLUDE_DIR=/system/$relativeIncludeDir \
-DKDE_INSTALL_DATAROOTDIR=$dataDir \
-DCMAKE_CXX_FLAGS="-DKDE_NO_DEBUG_OUTPUT" \
-DCMAKE_AUTOGEN_PARALLEL=4 \
-DRELEASE_BUILD=ON \
-DBUILD_TESTING=OFF \
-Wno-dev
make -C build $jobArgs
}
INSTALL()
{
make -C build install
cd $appsDir/Calligra
mv calligrasheets Sheets
mv calligrawords Words
mv calligrastage Stage
mv karbon Karbon
mkdir $prefix/bin
mv $appsDir/Calligra/{calligraconverter,visualimagecompare} $prefix/bin
rm -rf $appsDir/Calligra/{etc,calligralauncher,cstester,cstrunner}
rm -rf $dataDir/mime/{aliases,generic-icons,globs,globs2,icons,magic}
rm -rf $dataDir/mime/{mime.cache,subclasses,treemagic,types,version,XMLnamespaces}
mkdir -p "$dataDir/deskbar/menu/Applications/Calligra"
local APP_SIGNATURE="application/x-vnd.calligra-sheets"
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/sheets.rdef.in > $sourceDir/build/sheets.rdef
addResourcesToBinaries $sourceDir/build/sheets.rdef $appsDir/Calligra/Sheets
addAppDeskbarSymlink $appsDir/Calligra/Sheets "Calligra/Sheets"
local APP_SIGNATURE="application/x-vnd.calligra-words"
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/words.rdef.in > $sourceDir/build/words.rdef
addResourcesToBinaries $sourceDir/build/words.rdef $appsDir/Calligra/Words
addAppDeskbarSymlink $appsDir/Calligra/Words "Calligra/Words"
local APP_SIGNATURE="application/x-vnd.calligra-stage"
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/stage.rdef.in > $sourceDir/build/stage.rdef
addResourcesToBinaries $sourceDir/build/stage.rdef $appsDir/Calligra/Stage
addAppDeskbarSymlink $appsDir/Calligra/Stage "Calligra/Stage"
local APP_SIGNATURE="application/x-vnd.calligra-karbon"
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/karbon.rdef.in > $sourceDir/build/karbon.rdef
addResourcesToBinaries $sourceDir/build/karbon.rdef $appsDir/Calligra/Karbon
addAppDeskbarSymlink $appsDir/Calligra/Karbon "Calligra/Karbon"
}
TEST()
{
ctest --test-dir build --output-on-failure
}