Files
haikuports/net-libs/qxmpp/qxmpp-1.14.5.recipe
2026-04-03 19:31:06 +02:00

108 lines
3.1 KiB
Bash

SUMMARY="C++ XMPP client and server library"
DESCRIPTION="QXmpp is a cross-platform C++ XMPP client and server library. It is written in C++ \
and uses the Qt framework.
QXmpp strives to be as easy to use as possible. The underlying TCP socket, the core XMPP RFCs \
(RFC6120 and RFC6121) and the supported XMPP extensions have been nicely encapsulated in \
classes. With QXmpp, it is possible to build XMPP clients complying with the XMPP Compliance \
Suites 2022 for IM and Advanced Mobile. It comes with full API documentation, automatic tests \
and examples.
QXmpp uses Qt extensively. Thus, users need to have a good knowledge of C++ and Qt basics \
(including the concept of signals/slots and Qt's data types). Qt is the only third party \
library required to build QXmpp, but libraries such as GStreamer enable additional features."
HOMEPAGE="https://invent.kde.org/libraries/qxmpp"
COPYRIGHT="2010-2026 KDE Organisation"
LICENSE="GNU LGPL v2.1"
REVISION="1"
SOURCE_URI="https://download.kde.org/unstable/qxmpp/qxmpp-$portVersion.tar.xz"
CHECKSUM_SHA256="fcf809743cf9bf10884d700ad7d47e4d3e7063bdda30f6341d96f88e93809576"
PATCHES="qxmpp-$portVersion.patchset"
ARCHITECTURES="all !x86_gcc2"
SECONDARY_ARCHITECTURES="x86"
libVersion="$portVersion"
libVersionCompat="$libVersion compat >= ${libVersion%%.*}"
PROVIDES="
qxmpp$secondaryArchSuffix = $portVersion
lib:libQXmppOmemoQt6$secondaryArchSuffix = $libVersionCompat
lib:libQXmppQt6$secondaryArchSuffix = $libVersionCompat
"
REQUIRES="
haiku$secondaryArchSuffix
gst_plugins_good$secondaryArchSuffix
lib:libglib_2.0$secondaryArchSuffix
lib:libgobject_2.0$secondaryArchSuffix
lib:libgstreamer_1.0$secondaryArchSuffix
lib:libintl$secondaryArchSuffix
lib:libomemo_c$secondaryArchSuffix
lib:libqca_qt6$secondaryArchSuffix
lib:libQt6Core$secondaryArchSuffix
lib:libQt6Network$secondaryArchSuffix
lib:libQt6Xml$secondaryArchSuffix
"
PROVIDES_devel="
qxmpp${secondaryArchSuffix}_devel = $portVersion
devel:libQXmppOmemoQt6$secondaryArchSuffix = $libVersionCompat
devel:libQXmppQt6$secondaryArchSuffix = $libVersionCompat
"
REQUIRES_devel="
qxmpp$secondaryArchSuffix == $portVersion base
"
BUILD_REQUIRES="
haiku${secondaryArchSuffix}_devel
gst_plugins_good$secondaryArchSuffix
devel:libgstreamer_1.0$secondaryArchSuffix
devel:libomemo_c$secondaryArchSuffix
devel:libqca_qt6$secondaryArchSuffix
devel:libQt6Core$secondaryArchSuffix
devel:libQt6Core5Compat$secondaryArchSuffix
"
BUILD_PREREQUIRES="
cmd:cmake
cmd:gcc$secondaryArchSuffix
cmd:make
cmd:pkg_config$secondaryArchSuffix
"
defineDebugInfoPackage qxmpp$secondaryArchSuffix \
"$libDir"/libQXmppQt6.so.$libVersion \
"$libDir"/libQXmppOmemoQt6.so.$libVersion
BUILD()
{
cmake -B build -S . -DCMAKE_BUILD_TYPE=RelWithDebInfo \
$cmakeDirArgs \
-DBUILD_WITH_QT6=ON \
-DWITH_GSTREAMER=ON \
-DWITH_QCA:BOOL=ON \
-DBUILD_EXAMPLES=OFF \
-DBUILD_OMEMO=ON \
-DBUILD_TESTS=OFF
make -C build $jobArgs
}
INSTALL()
{
make -C build install
prepareInstalledDevelLibs \
libQXmppOmemoQt6 \
libQXmppQt6
fixPkgconfig
packageEntries devel \
$developDir \
$libDir/cmake
}
TEST()
{
ctest --test-dir build --output-on-failure
}