Files
haikuports/sci-visualization/labplot/labplot-2.12.1.recipe
2025-08-23 07:29:20 +00:00

231 lines
7.5 KiB
Bash

SUMMARY="Scientific data analysis and visualisation based on KDE Frameworks"
DESCRIPTION="FREE, open source and cross-platform Data Visualization and Analysis software \
accessible to everyone.
Feature highlights:
* High-quality data visualization and plotting with few clicks
* Reliable and easy data analysis and statistics, no coding required
* Intuitive and fast computing with interactive notebooks
* Effortless data extraction from images
* Smooth data import and export to and from multiple formats
* Available for Windows, macOS, Linux and FreeBSD."
HOMEPAGE="https://invent.kde.org/education/labplot"
COPYRIGHT="2010-2025 KDE Organisation"
LICENSE="GNU GPL v2"
REVISION="2"
SOURCE_URI="https://download.kde.org/stable/labplot/labplot-$portVersion.tar.xz"
CHECKSUM_SHA256="e28155bfddf40e5b6f7c4791313556d1e48138044f216f210d515b9f6d6c106a"
SOURCE_DIR="labplot-$portVersion"
PATCHES="labplot-$portVersion.patchset"
ADDITIONAL_FILES="labplot.rdef.in"
ARCHITECTURES="all !x86_gcc2"
SECONDARY_ARCHITECTURES="x86"
PROVIDES="
labplot$secondaryArchSuffix = $portVersion
app:LabPlot = $portVersion
lib:liblabplot$secondaryArchSuffix
"
REQUIRES="
haiku$secondaryArchSuffix
lib:libqtadvanceddocking_qt6$secondaryArchSuffix
lib:libcantorlibs$secondaryArchSuffix
lib:libcerf$secondaryArchSuffix
lib:libcfitsio$secondaryArchSuffix
lib:libfftw3f$secondaryArchSuffix
lib:libGL$secondaryArchSuffix
lib:libgsl$secondaryArchSuffix
lib:libgslcblas$secondaryArchSuffix
lib:libhdf5$secondaryArchSuffix
lib:libixion_0.20$secondaryArchSuffix
lib:liblz4$secondaryArchSuffix
lib:libmarkdown$secondaryArchSuffix
lib:libmatio$secondaryArchSuffix
lib:libnetcdf$secondaryArchSuffix
lib:liborcus_0.20$secondaryArchSuffix
lib:liborigin$secondaryArchSuffix
lib:libpoppler$secondaryArchSuffix
lib:libpoppler_qt6$secondaryArchSuffix
lib:libQXlsxQt6$secondaryArchSuffix
lib:libspectre$secondaryArchSuffix
lib:libz$secondaryArchSuffix
lib:libzstd$secondaryArchSuffix
# KF6
lib:libKF6Archive$secondaryArchSuffix
lib:libKF6Attica$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:libKF6ItemViews$secondaryArchSuffix
lib:libKF6KIOCore$secondaryArchSuffix
lib:libKF6JobWidgets$secondaryArchSuffix
lib:libKF6NewStuffCore$secondaryArchSuffix
lib:libKF6Parts$secondaryArchSuffix
lib:libKF6Purpose$secondaryArchSuffix
lib:libKF6Service$secondaryArchSuffix
lib:libKF6Solid$secondaryArchSuffix
lib:libKF6SonnetCore$secondaryArchSuffix
lib:libKF6SyntaxHighlighting$secondaryArchSuffix
lib:libKF6TextWidgets$secondaryArchSuffix
lib:libKF6UserFeedbackCore$secondaryArchSuffix
lib:libKF6WidgetsAddons$secondaryArchSuffix
lib:libKF6WindowSystem$secondaryArchSuffix
lib:libKF6XmlGui$secondaryArchSuffix
# Qt6
lib:libQt6Core$secondaryArchSuffix
lib:libQt6DBus$secondaryArchSuffix
lib:libQt6Gui$secondaryArchSuffix
lib:libQt6Mqtt$secondaryArchSuffix
lib:libQt6Network$secondaryArchSuffix
lib:libQt6PrintSupport$secondaryArchSuffix
lib:libQt6SerialPort$secondaryArchSuffix
lib:libQt6Sql$secondaryArchSuffix
lib:libQt6Svg$secondaryArchSuffix
lib:libQt6Xml$secondaryArchSuffix
"
BUILD_REQUIRES="
haiku${secondaryArchSuffix}_devel
devel:eigen$secondaryArchSuffix
devel:libqtadvanceddocking_qt6$secondaryArchSuffix
devel:libcantorlibs$secondaryArchSuffix
devel:libcerf$secondaryArchSuffix
devel:libcfitsio$secondaryArchSuffix >= 10.4
devel:libexecinfo$secondaryArchSuffix
devel:libfftw3f$secondaryArchSuffix
devel:libgsl$secondaryArchSuffix
devel:libhdf5$secondaryArchSuffix
devel:libiconv$secondaryArchSuffix
devel:liblz4$secondaryArchSuffix
devel:libmarkdown$secondaryArchSuffix
devel:libmatio$secondaryArchSuffix
devel:libnetcdf$secondaryArchSuffix
devel:liborcus_0.20$secondaryArchSuffix
devel:liborigin$secondaryArchSuffix
devel:libpoppler$secondaryArchSuffix >= 148
devel:libpoppler_qt6$secondaryArchSuffix >= 3.10
devel:libQXlsxQt6$secondaryArchSuffix
devel:libspectre$secondaryArchSuffix
devel:libssp_nonshared$secondaryArchSuffix
devel:libz$secondaryArchSuffix
devel:libzstd$secondaryArchSuffix
# KF6
extra_cmake_modules$secondaryArchSuffix
devel:libKF6Archive$secondaryArchSuffix
devel:libKF6Attica$secondaryArchSuffix
devel:libKF6Bookmarks$secondaryArchSuffix
devel:libKF6Completion$secondaryArchSuffix
devel:libKF6Codecs$secondaryArchSuffix
devel:libKF6ConfigCore$secondaryArchSuffix
devel:libKF6ConfigWidgets$secondaryArchSuffix
devel:libKF6CoreAddons$secondaryArchSuffix
devel:libKF6Crash$secondaryArchSuffix
devel:libKF6I18n$secondaryArchSuffix
devel:libKF6IconThemes$secondaryArchSuffix
devel:libKF6KIOCore$secondaryArchSuffix
devel:libKF6ItemViews$secondaryArchSuffix
devel:libKF6JobWidgets$secondaryArchSuffix
devel:libKF6NewStuffCore$secondaryArchSuffix
devel:libKF6Parts$secondaryArchSuffix
devel:libKF6Purpose$secondaryArchSuffix
devel:libKF6Service$secondaryArchSuffix
devel:libKF6Solid$secondaryArchSuffix
devel:libKF6SonnetUi$secondaryArchSuffix
devel:libKF6SyntaxHighlighting$secondaryArchSuffix
devel:libKF6TextWidgets$secondaryArchSuffix
devel:libKF6UserFeedbackCore$secondaryArchSuffix
devel:libKF6WidgetsAddons$secondaryArchSuffix
devel:libKF6WindowSystem$secondaryArchSuffix
devel:libKF6XmlGui$secondaryArchSuffix
# Qt6
devel:libQt6Core$secondaryArchSuffix
devel:libQt6Mqtt$secondaryArchSuffix
devel:libQt6SerialPort$secondaryArchSuffix
devel:libQt6Svg$secondaryArchSuffix
devel:libQt6Xml$secondaryArchSuffix
"
BUILD_PREREQUIRES="
cmd:awk
cmd:bison
cmd:cmake
cmd:g++$secondaryArchSuffix
cmd:ninja
cmd:msgfmt$secondaryArchSuffix
cmd:msgmerge$secondaryArchSuffix
cmd:pkg_config$secondaryArchSuffix
"
TEST_REQUIRES="
qthaikuplugins$secondaryArchSuffix
"
PATCH()
{
# use Haiku's icon theme
sed -e 's,\ KIconTheme::initTheme();,\// KIconTheme::initTheme();,g' -i src/frontend/LabPlot.cpp
}
BUILD()
{
cmake -B build -S . -G Ninja -DCMAKE_BUILD_TYPE=Release \
$cmakeDirArgs \
-DCMAKE_INSTALL_BINDIR=$appsDir \
-DECM_DIR=/system/data/cmake/Modules/ECM/cmake \
-DCMAKE_SKIP_RPATH=YES \
-DENABLE_READSTAT=OFF \
-DBUILD_TESTING=OFF \
-DENABLE_TESTS=OFF \
-Wno-dev
ninja -v -C build $jobArgs
}
INSTALL()
{
ninja -v -C build install
mv $appsDir/labplot $appsDir/LabPlot
# 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,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="LabPlot"
local LONG_INFO="$SUMMARY"
local APP_SIGNATURE="application/x-vnd.kde-labplot"
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/labplot.rdef.in > labplot.rdef
addResourcesToBinaries labplot.rdef $appsDir/LabPlot
addAppDeskbarSymlink $appsDir/LabPlot
}
TEST()
{
# 95% tests passed, 3 tests failed out of 65
ctest --test-dir build --output-on-failure
}