Files
haikuports/kde-apps/cantor/cantor-25.12.0.recipe
2025-12-22 11:33:32 +01:00

217 lines
7.0 KiB
Bash

SUMMARY="KDE Frontend to mathematical applications"
DESCRIPTION="Cantor is a KDE Application aimed to provide a nice Interface for doing Mathematics \
and Scientific Computing. It doesn't implement its own Computation Logic, but instead is built \
around different Backends.
Available Backends
* Julia Programming Language: http://julialang.org/
* KAlgebra for Calculation and Plotting: http://edu.kde.org/kalgebra/
* Lua Programming Language: http://lua.org/
* Maxima Computer Algebra System: http://maxima.sourceforge.net/
* Octave for Numerical Computation: https://gnu.org/software/octave/
* Python 2 Programming Language: http://python.org/
* Python 3 Programming Language: http://python.org/
* Qalculate Desktop Calculator: http://qalculate.sourceforge.net/
* R Project for Statistical Computing: http://r-project.org/
* Sage Mathematics Software: http://sagemath.org/
* Scilab for Numerical Computation: http://scilab.org/"
HOMEPAGE="https://apps.kde.org/cantor/"
COPYRIGHT="2010-2025 KDE Organisation
2016 Filipe Saraiva
2009-2015 Alexander Rieder"
LICENSE="GNU GPL v2"
REVISION="1"
SOURCE_URI="https://download.kde.org/stable/release-service/$portVersion/src/cantor-$portVersion.tar.xz"
CHECKSUM_SHA256="072a3bbe238654404f17fef51c4e0aadb1b7862eed8eb8f9fed7d42628802d89"
SOURCE_DIR="cantor-$portVersion"
PATCHES="cantor-$portVersion.patchset"
ADDITIONAL_FILES="cantor.rdef.in"
ARCHITECTURES="all !x86_gcc2"
SECONDARY_ARCHITECTURES="x86"
libVersion="$portVersion"
libVersionCompat="$libVersion compat >= ${libVersion%%.*}"
PROVIDES="
cantor$secondaryArchSuffix = $portVersion
app:Cantor = $portVersion
cmd:cantor$secondaryArchSuffix = $portVersion
cmd:cantor_pythonserver$secondaryArchSuffix = $portVersion
cmd:cantor_rserver$secondaryArchSuffix = $portVersion
cmd:cantor_scripteditor$secondaryArchSuffix = $portVersion
lib:cantor_pythonbackend$secondaryArchSuffix
lib:libcantor_config$secondaryArchSuffix
lib:libcantorlibs$secondaryArchSuffix = $libVersionCompat
"
REQUIRES="
haiku$secondaryArchSuffix
lib:libGL$secondaryArchSuffix
lib:libAnalitza$secondaryArchSuffix
lib:libgfortran$secondaryArchSuffix
lib:libluajit_5.1$secondaryArchSuffix
lib:libmarkdown$secondaryArchSuffix
lib:libpoppler$secondaryArchSuffix
lib:libpoppler_qt6$secondaryArchSuffix
lib:libpython3.10$secondaryArchSuffix
lib:libqalculate$secondaryArchSuffix
lib:libRmath$secondaryArchSuffix
lib:libspectre$secondaryArchSuffix
lib:libxml2$secondaryArchSuffix
lib:libxslt$secondaryArchSuffix
# KF6
lib:libKF6Archive$secondaryArchSuffix
lib:libKF6Attica$secondaryArchSuffix
lib:libKF6Bookmarks$secondaryArchSuffix
lib:libKF6ColorScheme$secondaryArchSuffix
lib:libKF6Completion$secondaryArchSuffix
lib:libKF6ConfigCore$secondaryArchSuffix
lib:libKF6ConfigWidgets$secondaryArchSuffix
lib:libKF6CoreAddons$secondaryArchSuffix
lib:libKF6Crash$secondaryArchSuffix
lib:libKF6GuiAddons$secondaryArchSuffix
lib:libKF6I18n$secondaryArchSuffix
lib:libKF6IconThemes$secondaryArchSuffix
lib:libKF6ItemViews$secondaryArchSuffix
lib:libKF6KIOCore$secondaryArchSuffix
lib:libKF6JobWidgets$secondaryArchSuffix
lib:libKF6NewStuffCore$secondaryArchSuffix
lib:libKF6Parts$secondaryArchSuffix
lib:libKF6Service$secondaryArchSuffix
lib:libKF6Solid$secondaryArchSuffix
lib:libKF6SyntaxHighlighting$secondaryArchSuffix
lib:libKF6TextEditor$secondaryArchSuffix
lib:libKF6WidgetsAddons$secondaryArchSuffix
lib:libKF6XmlGui$secondaryArchSuffix
# Qt6
lib:libQt6Core$secondaryArchSuffix
lib:libQt6Gui$secondaryArchSuffix
lib:libQt6Network$secondaryArchSuffix
lib:libQt6Svg$secondaryArchSuffix
lib:libQt6Widgets$secondaryArchSuffix
lib:libQt6Xml$secondaryArchSuffix
"
PROVIDES_devel="
cantor${secondaryArchSuffix}_devel = $portVersion
devel:libcantorlibs$secondaryArchSuffix = $libVersionCompat
"
REQUIRES_devel="
cantor$secondaryArchSuffix == $portVersion base
"
BUILD_REQUIRES="
haiku${secondaryArchSuffix}_devel
shared_mime_info$secondaryArchSuffix
devel:libAnalitza$secondaryArchSuffix >= 9.0.0
devel:libluajit_5.1$secondaryArchSuffix
devel:libmarkdown$secondaryArchSuffix
devel:libpoppler$secondaryArchSuffix >= 148
devel:libpoppler_Qt6$secondaryArchSuffix >= 3.10
devel:libqalculate$secondaryArchSuffix
devel:libRmath$secondaryArchSuffix
devel:libspectre$secondaryArchSuffix
devel:libxml2$secondaryArchSuffix
devel:libxslt$secondaryArchSuffix
# KF6
extra_cmake_modules$secondaryArchSuffix
devel:libKF6Archive$secondaryArchSuffix
devel:libKF6Completion$secondaryArchSuffix
devel:libKF6ConfigCore$secondaryArchSuffix
devel:libKF6CoreAddons$secondaryArchSuffix
devel:libKF6Crash$secondaryArchSuffix
devel:libKF6GuiAddons$secondaryArchSuffix
devel:libKF6I18n$secondaryArchSuffix
devel:libKF6IconThemes$secondaryArchSuffix
devel:libKF6KIOCore$secondaryArchSuffix
devel:libKF6NewStuffCore$secondaryArchSuffix
devel:libKF6Parts$secondaryArchSuffix
devel:libKF6SyntaxHighlighting$secondaryArchSuffix
devel:libKF6TextEditor$secondaryArchSuffix
devel:libKF6TextWidgets$secondaryArchSuffix
devel:libKF6XmlGui$secondaryArchSuffix
# Qt6
devel:libQt6Core$secondaryArchSuffix
devel:libQt6Core5Compat$secondaryArchSuffix
devel:libQt6Svg$secondaryArchSuffix
# required for embedded documentation
# devel:libQt6Help$secondaryArchSuffix
# devel:libQt6Webengine$secondaryArchSuffix
"
BUILD_PREREQUIRES="
cmd:cmake
cmd:g++$secondaryArchSuffix
cmd:ninja
cmd:msgfmt$secondaryArchSuffix
cmd:msgmerge$secondaryArchSuffix
cmd:pkg_config$secondaryArchSuffix
cmd:python3.10
cmd:r
cmd:which
"
TEST_REQUIRES="
qthaikuplugins$secondaryArchSuffix
"
BUILD()
{
cmake -B build -S . -G Ninja -DCMAKE_BUILD_TYPE=Release \
$cmakeDirArgs \
-DCMAKE_INSTALL_BINDIR=$prefix/bin \
-DENABLE_EMBEDDED_DOCUMENTATION=OFF \
-DBUILD_DOC=OFF \
-DCMAKE_SKIP_RPATH=YES \
-DBUILD_TESTING=OFF \
-Wno-dev
ninja -v -C build $jobArgs
}
INSTALL()
{
ninja -C build install
# don't mess with shared_mime_info files
rm -rf $dataDir/mime/{aliases,generic-icons,globs,globs2,icons,magic}
rm -rf $dataDir/mime/{mime.cache,subclasses,treemagic,types,version,XMLnamespaces}
# cleanup
rm -rf $dataDir/{applications,config.kcfg,knsrcfiles,metainfo}
mkdir -p $appsDir
mv $prefix/bin/cantor $appsDir/Cantor
ln -s $appsDir/Cantor $prefix/bin/cantor
local MAJOR="`echo "$portVersion" | cut -d. -f1`"
local MIDDLE="`echo "$portVersion" | cut -d. -f2`"
local MINOR="`echo "$portVersion" | cut -d. -f3`"
local APP_NAME="Cantor"
local LONG_INFO="$SUMMARY"
local APP_SIGNATURE="application/x-vnd.kde-cantor"
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/cantor.rdef.in > cantor.rdef
addResourcesToBinaries cantor.rdef $appsDir/Cantor
addAppDeskbarSymlink $appsDir/Cantor
prepareInstalledDevelLib \
libcantorlibs
packageEntries devel \
$developDir \
$libDir/cmake
}
TEST()
{
export LIBRARY_PATH="$sourceDir/build/src/lib${LIBRARY_PATH:+:$LIBRARY_PATH}"
export LIBRARY_PATH="$sourceDir/build/src/lib/test${LIBRARY_PATH:+:$LIBRARY_PATH}"
make -C build test
}