Add KF6 frameworks, threadweaver6 (#10526)

This commit is contained in:
Schrijvers Luc
2024-05-29 13:24:01 +02:00
committed by GitHub
parent 72397466e4
commit 5d4e239f39
2 changed files with 107 additions and 0 deletions

View File

@@ -0,0 +1,22 @@
From 9e1569073c8a77a85c485894719c9ee7dcb84358 Mon Sep 17 00:00:00 2001
From: Sergei Reznikov <diver@gelios.net>
Date: Thu, 18 Mar 2021 16:00:29 +0300
Subject: Fix build on Haiku
diff --git a/examples/ThumbNailer/AverageLoadManager.cpp b/examples/ThumbNailer/AverageLoadManager.cpp
index de27a85..16e063b 100644
--- a/examples/ThumbNailer/AverageLoadManager.cpp
+++ b/examples/ThumbNailer/AverageLoadManager.cpp
@@ -46,7 +46,7 @@ QPair<int, int> AverageLoadManager::workersRange() const
void AverageLoadManager::update()
{
-#if defined(Q_OS_UNIX) && !defined(Q_OS_ANDROID)
+#if defined(Q_OS_UNIX) && !defined(Q_OS_ANDROID) && !defined(Q_OS_HAIKU)
double averages[3];
if (getloadavg(averages, 3) == -1) {
return;
--
2.43.2

View File

@@ -0,0 +1,85 @@
SUMMARY="Helper for multithreaded programming"
DESCRIPTION="ThreadWeaver is a helper for multithreaded programming. It uses \
a job-based interface to queue tasks and execute them in an efficient way.
You simply divide the workload into jobs, state the dependencies between the \
jobs and ThreadWeaver will work out the most efficient way of dividing the \
work between threads within a set of resource limits.
See the information on [use cases](@ref usecases) and [why multithreading can \
help](@ref multithreading), as well as the usage section below, for more \
detailed information."
HOMEPAGE="https://invent.kde.org/frameworks/threadweaver"
COPYRIGHT="2010-2024 KDE Organisation"
LICENSE="GNU LGPL v2"
REVISION="1"
SOURCE_URI="https://download.kde.org/stable/frameworks/${portVersion%.*}/threadweaver-${portVersion}.tar.xz"
CHECKSUM_SHA256="e74de2df0bb50148acc8a6161f9809991ae4b2334b58a9ee092ba1d827044337"
SOURCE_DIR="threadweaver-$portVersion"
PATCHES="threadweaver-$portVersion.patchset"
ARCHITECTURES="all !x86_gcc2"
SECONDARY_ARCHITECTURES="x86"
libVersion="$portVersion"
libVersionCompat="$libVersion compat >= ${libVersion%%.*}"
PROVIDES="
threadweaver6$secondaryArchSuffix = $portVersion
lib:libKF6ThreadWeaver$secondaryArchSuffix = $libVersionCompat
"
REQUIRES="
haiku$secondaryArchSuffix
lib:libQt6Core$secondaryArchSuffix
"
PROVIDES_devel="
threadweaver6${secondaryArchSuffix}_devel = $portVersion
devel:libKF6ThreadWeaver$secondaryArchSuffix = $libVersionCompat
"
REQUIRES_devel="
threadweaver6$secondaryArchSuffix == $portVersion base
"
BUILD_REQUIRES="
haiku${secondaryArchSuffix}_devel
extra_cmake_modules$secondaryArchSuffix >= $portVersion
qt6_tools${secondaryArchSuffix}_devel
devel:libQt6Core$secondaryArchSuffix
"
BUILD_PREREQUIRES="
cmd:cmake
cmd:dot
cmd:doxygen >= 1.9
cmd:g++$secondaryArchSuffix
cmd:make
"
BUILD()
{
cmake -Bbuild -S. $cmakeDirArgs \
-DCMAKE_BUILD_TYPE=Release \
-DECM_DIR=/system/data/cmake/Modules/ECM/cmake \
-DBUILD_QCH=ON \
-DBUILD_TESTING=OFF
make -Cbuild $jobArgs
}
INSTALL()
{
make -Cbuild install
prepareInstalledDevelLib \
libKF6ThreadWeaver
packageEntries devel \
$developDir \
$dataDir/doc \
$libDir/cmake
}
TEST()
{
export LIBRARY_PATH="$sourceDir/build/bin${LIBRARY_PATH:+:$LIBRARY_PATH}"
make -Cbuild test
}