Files
haikuports/dev-qt/qtwebengine/qtwebengine-5.15.18.recipe
2024-11-28 19:02:33 +01:00

207 lines
6.2 KiB
Bash

SUMMARY="Chromium-based rendering library for the Qt5 framework"
DESCRIPTION="QtWebEngine provides a Web browser engine that integrates \
Chromium's fast moving web capabilities into Qt. "
HOMEPAGE="https://www.qt.io"
COPYRIGHT="2015-2024 The Qt Company Ltd."
LICENSE="BSD (3-clause)
GNU LGPL v2.1"
REVISION="1"
SOURCE_URI="https://github.com/qt/qtwebengine/archive/refs/tags/v${portVersion}-lts.tar.gz"
CHECKSUM_SHA256="495d61af1002a1423a81a437fcc0c8ca8606d4c1082c8b4c14823a41184c4cc6"
SOURCE_DIR="qtwebengine-${portVersion}-lts"
SOURCE_URI_2="https://github.com/qt/qtwebengine-chromium/archive/87-based.tar.gz"
CHECKSUM_SHA256_2="117cdcfeea4638e2e04fe3fbe895b961b3da7713d227486ca68f9ca68bec8dcd"
SOURCE_DIR_2="qtwebengine-chromium-87-based"
PATCHES="qtwebengine-$portVersion.patchset"
PATCHES_2="qtwebengine-chromium-$portVersion.patchset"
# disabled: takes too long to compile on builder
ARCHITECTURES="!x86_gcc2 ?x86_64"
SECONDARY_ARCHITECTURES="?x86"
libVersion="$portVersion"
libVersionCompat="$libVersion compat >= ${libVersion%%.*}"
Qt5Version="5.15.16"
WebEngineApiVersion="5.15.18"
PROVIDES="
qtwebengine$secondaryArchSuffix = $portVersion compat >= 5
cmd:qwebengine_convert_dict$secondaryArchSuffix = $portVersion compat >= 5
lib:libQt5Pdf$secondaryArchSuffix = $libVersionCompat
lib:libQt5PdfWidgets$secondaryArchSuffix = $libVersionCompat
lib:libQt5WebEngine$secondaryArchSuffix = $libVersionCompat
lib:libQt5WebEngineCore$secondaryArchSuffix = $libVersionCompat
lib:libQt5WebEngineWidgets$secondaryArchSuffix = $libVersionCompat
"
REQUIRES="
haiku$secondaryArchSuffix
lib:libexecinfo$secondaryArchSuffix
lib:libexpat$secondaryArchSuffix
lib:libfontconfig$secondaryArchSuffix
lib:libfreetype$secondaryArchSuffix
lib:libgl$secondaryArchSuffix
lib:libharfbuzz$secondaryArchSuffix
lib:libharfbuzz_subset$secondaryArchSuffix
lib:libicuuc$secondaryArchSuffix
lib:libicui18n$secondaryArchSuffix
lib:libicudata$secondaryArchSuffix
lib:libjpeg$secondaryArchSuffix
lib:liblcms2$secondaryArchSuffix
lib:libminizip$secondaryArchSuffix
lib:libnspr4$secondaryArchSuffix
lib:libnss3$secondaryArchSuffix
lib:libnssutil3$secondaryArchSuffix
lib:libopus$secondaryArchSuffix
lib:libplc4$secondaryArchSuffix
lib:libplds4$secondaryArchSuffix
lib:libpng16$secondaryArchSuffix
lib:libQt5Core$secondaryArchSuffix
lib:libQt5Gui$secondaryArchSuffix
lib:libQt5Network$secondaryArchSuffix
lib:libQt5Positioning$secondaryArchSuffix
lib:libQt5Qml$secondaryArchSuffix
lib:libQt5QmlModels$secondaryArchSuffix
lib:libQt5Quick$secondaryArchSuffix
lib:libQt5WebChannel$secondaryArchSuffix
lib:libre2$secondaryArchSuffix
lib:libsmime3$secondaryArchSuffix
lib:libsnappy$secondaryArchSuffix
lib:libvpx$secondaryArchSuffix
lib:libwebp$secondaryArchSuffix
lib:libwebpdemux$secondaryArchSuffix
lib:libwebpmux$secondaryArchSuffix
lib:libxslt$secondaryArchSuffix
lib:libz$secondaryArchSuffix
"
PROVIDES_devel="
qtwebengine${secondaryArchSuffix}_devel = $portVersion compat >= 5
devel:libQt5Pdf$secondaryArchSuffix = $libVersionCompat
devel:libQt5PdfWidgets$secondaryArchSuffix = $libVersionCompat
devel:libQt5WebEngine$secondaryArchSuffix = $libVersionCompat
devel:libQt5WebEngineCore$secondaryArchSuffix = $libVersionCompat
devel:libQt5WebEngineWidgets$secondaryArchSuffix = $libVersionCompat
"
REQUIRES_devel="
haiku$secondaryArchSuffix
qtwebengine$secondaryArchSuffix == $portVersion base
devel:libQt5Designer$secondaryArchSuffix
"
BUILD_REQUIRES="
haiku${secondaryArchSuffix}_devel
devel:libexecinfo$secondaryArchSuffix
devel:libexpat$secondaryArchSuffix
devel:libfontconfig$secondaryArchSuffix
devel:libfreetype$secondaryArchSuffix
devel:libglib_2.0$secondaryArchSuffix
devel:libharfbuzz$secondaryArchSuffix
devel:libicuuc$secondaryArchSuffix >= 74
devel:libjpeg$secondaryArchSuffix
devel:libjsoncpp$secondaryArchSuffix
devel:liblcms2$secondaryArchSuffix
devel:libminizip$secondaryArchSuffix
devel:libnss3$secondaryArchSuffix
devel:libopus$secondaryArchSuffix
devel:libprotobuf$secondaryArchSuffix
devel:libpng16$secondaryArchSuffix
devel:libQt5Core$secondaryArchSuffix
devel:libQt5Designer$secondaryArchSuffix
devel:libQt5Gui$secondaryArchSuffix
devel:libQt5Network$secondaryArchSuffix
devel:libQt5Positioning$secondaryArchSuffix
devel:libQt5Qml$secondaryArchSuffix
devel:libQt5QmlModels$secondaryArchSuffix
devel:libQt5Quick$secondaryArchSuffix
devel:libQt5WebChannel$secondaryArchSuffix
devel:libre2$secondaryArchSuffix
devel:libsnappy$secondaryArchSuffix
devel:libssl$secondaryArchSuffix >= 3
devel:libvpx$secondaryArchSuffix
devel:libvulkan$secondaryArchSuffix
devel:libwebp$secondaryArchSuffix >= 7
devel:libxslt$secondaryArchSuffix
devel:libz$secondaryArchSuffix
"
BUILD_PREREQUIRES="
cmd:awk
cmd:bison
cmd:find
cmd:flex
cmd:g++$secondaryArchSuffix
cmd:gcc$secondaryArchSuffix
cmd:gperf
cmd:ld$secondaryArchSuffix
cmd:lld >= 18
cmd:make
cmd:nasm
cmd:ninja
cmd:node >= 20
cmd:perl
pkgconfig$secondaryArchSuffix
cmd:pkg_config$secondaryArchSuffix
cmd:python3.10
cmd:qmake$secondaryArchSuffix >= 5
cmd:which
"
TEST_REQUIRES="
cmd:wget
"
BUILD()
{
if [ ! -L src/3rdparty ]; then
rmdir src/3rdparty
ln -srf $sourceDir2 src/3rdparty
fi
export DISABLE_ASLR=1
mkdir -p build && cd build
qmake QMAKE_LFLAGS+="-fuse-ld=lld -Wl,--no-keep-memory -Wl,--undefined-version" \
.. -- \
-proprietary-codecs \
-system-webp \
-qt-webengine-ffmpeg \
-webengine-icu
NINJAJOBS=$jobArgs make
}
INSTALL()
{
cd build
make install INSTALL_ROOT=$prefix
mv $prefix/boot/system/* $prefix/
rm -rf $prefix/boot
sed -e "/^QMAKE_PRL_BUILD_DIR/d" -i $libDir/libQt*.prl
sed -e "s|${WebEngineApiVersion}\ |${Qt5Version} |" -i $libDir/cmake/*/*Config.cmake
fixPkgconfig
prepareInstalledDevelLibs libQt5Pdf libQt5PdfWidgets \
libQt5WebEngine libQt5WebEngineCore libQt5WebEngineWidgets
rm -rf $developLibDir/*.la $libDir/*.la
cd $libDir
for i in lib*.so.5.*;do
ln -fs $i $(echo $i | cut -f1,2 -d.)
done
packageEntries devel \
$developDir \
$libDir/cmake \
$dataDir/Qt5/mkspecs
}
TEST()
{
wget https://chromium.googlesource.com/chromium/src/+archive/refs/tags/87.0.4280.144/base/test/data.tar.gz
# cd src/3rdparty/chromium
# ../../../build/src/3rdparty/gn/out/Release/gn ls ../../../build/src/core/release/ //base/test/*
}