Since the chromium environment shipped with qt-webengine also bundles the skia library, it is affected by the same font rendering issues as the mozilla products with freetype 2.8.1. This commit adds the patch backported for Firefox ESR from https://bug1393467.bmoattachments.org/attachment.cgi?id=8904705 which also applies to the skia version bundled with qt-5.8.
920 lines
26 KiB
Bash
920 lines
26 KiB
Bash
# Template file for 'qt5'
|
|
pkgname=qt5
|
|
version=5.8.0
|
|
revision=8
|
|
wrksrc="qt-everywhere-opensource-src-${version}"
|
|
build_style=gnu-configure
|
|
homepage="http://qt.io/"
|
|
short_desc="A cross-platform application and UI framework (QT5)"
|
|
maintainer="Juan RP <xtraeme@voidlinux.eu>"
|
|
license="GPL-3, LGPL-2.1"
|
|
distfiles="http://download.qt.io/official_releases/qt/${version%.*}/${version}/single/qt-everywhere-opensource-src-${version}.tar.xz"
|
|
checksum=0f4c54386d3dbac0606a936a7145cebb7b94b0ca2d29bc001ea49642984824b6
|
|
|
|
if [ "${XBPS_MACHINE%%-musl}" = i686 ]; then
|
|
nodebug=yes # prevent OOM
|
|
fi
|
|
hostmakedepends="flex ruby gperf git python perl pkg-config protobuf re2c"
|
|
makedepends="
|
|
libressl-devel libpng-devel MesaLib-devel libXrender-devel unixodbc-devel
|
|
fontconfig-devel libXi-devel libXv-devel libXinerama-devel libXrandr-devel
|
|
libXcursor-devel libXScrnSaver-devel dbus-devel glib-devel icu-devel
|
|
cups-devel libjpeg-turbo-devel sqlite-devel alsa-lib-devel tiff-devel
|
|
libmng-devel libevent-devel ffmpeg-devel jsoncpp-devel
|
|
libsrtp-devel protobuf-devel snappy-devel minizip-devel
|
|
libxshmfence-devel libSM-devel xcb-util-keysyms-devel
|
|
xcb-util-image-devel xcb-util-renderutil-devel xcb-util-wm-devel
|
|
libXcomposite-devel libwebp-devel libxkbcommon-devel harfbuzz-devel gtk+-devel
|
|
mtdev-devel freetds-devel libmysqlclient-devel postgresql-libs-devel
|
|
pulseaudio-devel libbluetooth-devel gst-plugins-base1-devel libxslt-devel
|
|
pciutils-devel nss-devel libcap-devel libinput-devel libproxy-devel
|
|
libxcb-devel libxkbcommon-devel tslib-devel wayland-devel libwayland-egl"
|
|
depends="qtchooser"
|
|
replaces="qt5-doc<5.6.0 qt5-quick1<5.6.0 qt5-quick1-devel<5.6.0 qt5-webkit<5.6.0 qt5-webkit-devel<5.6.0
|
|
qt5-enginio<5.7.1 qt5-enginio-devel<5.7.1 qt5-plugin-gtk<5.7.1"
|
|
|
|
# Work around SSLv3_{client,server}_method missing in libressl-2.3.3
|
|
CFLAGS="-DOPENSSL_NO_PSK -DOPENSSL_NO_NEXTPROTONEG -DOPENSSL_NO_SSL3_METHOD"
|
|
CXXFLAGS="${CFLAGS} -D_GLIBCXX_USE_C99_STDLIB=1 -D_GLIBCXX_USE_C99_STDIO=1"
|
|
CXXFLAGS+=" -Wno-deprecated-declarations -fno-delete-null-pointer-checks"
|
|
# Required for musl libc
|
|
LDFLAGS="-pthread -ldl -fPIE"
|
|
|
|
case "$XBPS_TARGET_MACHINE" in
|
|
armv5*) # Cannot cross compile libvpx (?)
|
|
makedepends+=" libvpx-devel"
|
|
;;
|
|
armv6*) # Cannot cross compile libvpx
|
|
;;
|
|
armv7*) # Force use of neon and enable libvpx
|
|
CXXFLAGS+=" -mfpu=neon"
|
|
makedepends+=" libvpx-devel"
|
|
;;
|
|
*) # Other architectures have libvpx (TODO: mips-* too?)
|
|
makedepends+=" libvpx-devel"
|
|
;;
|
|
esac
|
|
|
|
if [ -n "$CROSS_BUILD" ]; then
|
|
# Need some devel packages in the host to build qmake, moc, uic, rcc
|
|
# wayland-devel contains /usr/bin/wayland-scanner
|
|
# Cross building ninja does not work, thus use the system ninja
|
|
hostmakedepends+=" zlib-devel icu-devel wayland-devel ninja"
|
|
fi
|
|
|
|
_cleanup_wrksrc_leak() {
|
|
if [ -d "${PKGDESTDIR}/usr/lib/cmake" ]; then
|
|
# Replace references to ${wrksrc} in cmake files
|
|
sed -i ${PKGDESTDIR}/usr/lib/cmake/*/*.cmake \
|
|
-e "s;${wrksrc}/qtbase/host;/usr/lib/qt5;g" \
|
|
-e "s;devices/void-${XBPS_CROSS_TRIPLET}-g++;linux-g++;g"
|
|
fi
|
|
if [ -d "${PKGDESTDIR}/usr/lib/pkgconfig" ]; then
|
|
# Replace references to ${wrksrc} in pkgconfig files
|
|
sed -i ${PKGDESTDIR}/usr/lib/pkgconfig/*.pc \
|
|
-e "s;${wrksrc}/qtbase/host;/usr/lib/qt5;g" \
|
|
-e "s;devices/void-${XBPS_CROSS_TRIPLET}-g++;linux-g++;g"
|
|
fi
|
|
# Remove QMAKE_PRL_BUILD_DIR from hint files for static libraries
|
|
# and replace references to ${wrksrc}
|
|
find ${PKGDESTDIR} -iname "*.prl" -exec sed -i "{}" \
|
|
-e "/^QMAKE_PRL_BUILD_DIR/d" \
|
|
-e "s;-L${wrksrc}/qtbase/lib;-L/usr/lib;g" \;
|
|
# Replace ${wrksrc} in project include files
|
|
find ${PKGDESTDIR} -iname "*.pri" -exec sed -i "{}" \
|
|
-e "s;${wrksrc}/qtbase;/usr/lib/qt5;g" \;
|
|
}
|
|
|
|
_install_subpkg() {
|
|
local module=$1 f base
|
|
cd ${wrksrc}/${module}
|
|
make INSTALL_ROOT=${PKGDESTDIR} install
|
|
rm -rf ${PKGDESTDIR}/builddir
|
|
rm -rf ${PKGDESTDIR}/usr/include
|
|
rm -rf ${PKGDESTDIR}/usr/lib/cmake
|
|
rm -rf ${PKGDESTDIR}/usr/lib/qt5/mkspecs
|
|
rm -rf ${PKGDESTDIR}/usr/lib/pkgconfig
|
|
rm -f ${PKGDESTDIR}/usr/lib/*.a
|
|
rm -f ${PKGDESTDIR}/usr/lib/*.so
|
|
rm -f ${PKGDESTDIR}/usr/lib/*.prl
|
|
if [ -d ${PKGDESTDIR}/usr/lib/qt5/bin ]; then
|
|
vmkdir usr/bin
|
|
for f in ${PKGDESTDIR}/usr/lib/qt5/bin/*; do
|
|
base=${f##*/}
|
|
ln -sf /usr/lib/qt5/bin/${base} ${PKGDESTDIR}/usr/bin/${base}-qt5
|
|
done
|
|
fi
|
|
}
|
|
|
|
_install_devel() {
|
|
local module=$1
|
|
cd ${wrksrc}/${module}
|
|
make INSTALL_ROOT=${PKGDESTDIR} install
|
|
rm -rf ${PKGDESTDIR}/builddir
|
|
rm -rf ${PKGDESTDIR}/usr/share
|
|
rm -rf ${PKGDESTDIR}/usr/lib/qt5/bin
|
|
rm -rf ${PKGDESTDIR}/usr/lib/qt5/qml
|
|
rm -rf ${PKGDESTDIR}/usr/lib/qt5/libexec
|
|
rm -rf ${PKGDESTDIR}/usr/lib/qt5/plugins
|
|
rm -f ${PKGDESTDIR}/usr/lib/*.so.*
|
|
_cleanup_wrksrc_leak
|
|
}
|
|
|
|
_create_config() {
|
|
local specs=${wrksrc}/qtbase/mkspecs/devices device="$1" qmake_conf
|
|
|
|
mkdir -p ${specs}/${device}
|
|
|
|
echo "#" > ${specs}/${device}/qmake.conf
|
|
echo "# qmake configuration for building with $XBPS_TARGET_MACHINE" >> ${specs}/${device}/qmake.conf
|
|
echo "#" >> ${specs}/${device}/qmake.conf
|
|
echo >> ${specs}/${device}/qmake.conf
|
|
echo "include(../common/linux_device_pre.conf)" >> ${specs}/${device}/qmake.conf
|
|
echo >> ${specs}/${device}/qmake.conf
|
|
# Fake distro name to tell we want control
|
|
echo "DISTRO = arch" >> ${specs}/${device}/qmake.conf
|
|
# Hard float on armv6, armv7, not on armv5tel
|
|
case "$XBPS_TARGET_MACHINE" in
|
|
armv6*|armv7*)
|
|
echo "DISTRO_OPTS += hard-float" >> ${specs}/${device}/qmake.conf
|
|
;;
|
|
esac
|
|
echo "QMAKE_CC = ${CC}" >> ${specs}/${device}/qmake.conf
|
|
echo "QMAKE_CXX = ${CXX}" >> ${specs}/${device}/qmake.conf
|
|
echo "QMAKE_LINK = ${CXX}" >> ${specs}/${device}/qmake.conf
|
|
echo "QMAKE_LINK_SHLIB = ${CXX}" >> ${specs}/${device}/qmake.conf
|
|
echo "QMAKE_LFLAGS = ${LDFLAGS}" >> ${specs}/${device}/qmake.conf
|
|
echo "QMAKE_CFLAGS = ${CFLAGS}" >> ${specs}/${device}/qmake.conf
|
|
echo "QMAKE_CXXFLAGS = ${CXXFLAGS}" >> ${specs}/${device}/qmake.conf
|
|
# FIXME: is this required?
|
|
echo "QMAKE_LIBS_OPENGL_ES2 = -lEGL -lGLESv2" >> ${specs}/${device}/qmake.conf
|
|
echo >> ${specs}/${device}/qmake.conf
|
|
case "$XBPS_TARGET_MACHINE" in
|
|
arm*)
|
|
echo "include(../common/linux_arm_device_post.conf)" >> ${specs}/${device}/qmake.conf ;;
|
|
*)
|
|
echo "include(../common/linux_device_post.conf)" >> ${specs}/${device}/qmake.conf ;;
|
|
esac
|
|
echo "load(qt_config)" >> ${specs}/${device}/qmake.conf
|
|
|
|
echo '#include "../../linux-g++/qplatformdefs.h"' > ${specs}/${device}/qplatformdefs.h
|
|
}
|
|
|
|
pre_configure() {
|
|
# Compatibility functions res_ninit() and res_nclose() for musl libc
|
|
cp ${FILESDIR}/resolv_compat.h ${wrksrc}/qtwebengine/src/3rdparty/chromium/net/dns
|
|
case "$XBPS_TARGET_MACHINE" in
|
|
*-musl)
|
|
# Patch .../linux/*/config.{h,asm} to define HAVE_SYSCTL 0
|
|
local config chromium=${wrksrc}/qtwebengine/src/3rdparty/chromium
|
|
for config in $(find ${chromium}/third_party/ffmpeg/chromium/config -name "config\.*" | grep linux); do
|
|
sed -i ${config} -e "s;HAVE_SYSCTL 1;HAVE_SYSCTL 0;"
|
|
done
|
|
# Do not use experimental allocator shim (incompatible with musl libc)
|
|
sed -i qtwebengine/src/3rdparty/chromium/build/common.gypi \
|
|
-e"s;\('use_experimental_allocator_shim%':\) 1,;\1 0,;"
|
|
esac
|
|
# Cross build patches
|
|
if [ -n "$CROSS_BUILD" ]; then
|
|
# This also sets default {C,CXX,LD}FLAGS for projects built using qmake
|
|
sed -i -e "s|^\(QMAKE_CFLAGS_RELEASE.*\)|\1 ${XBPS_CFLAGS}|" \
|
|
qtbase/mkspecs/common/gcc-base.conf
|
|
sed -i -e "s|^\(QMAKE_LFLAGS_RELEASE.*\)|\1 ${XBPS_LDFLAGS}|" \
|
|
qtbase/mkspecs/common/g++-unix.conf
|
|
# Patch to skip non-working check for GCC version
|
|
patch -p0 < ${FILESDIR}/cross-gcc.patch
|
|
# Create symbolic links for private include directories
|
|
for d in $(ls ${wrksrc}/qtbase/include); do
|
|
ln -s ${version}/${d}/private qtbase/include/${d}/private
|
|
done
|
|
# Copy system ninja to 3rdparty path
|
|
cp -v /usr/bin/ninja qtwebengine/src/3rdparty/ninja/
|
|
else
|
|
# Build qmake using Void {C,LD}FLAGS
|
|
# This also sets default {C,CXX,LD}FLAGS for projects built using qmake
|
|
sed -i -e "s|^\(QMAKE_CFLAGS_RELEASE.*\)|\1 ${CFLAGS}|" \
|
|
qtbase/mkspecs/common/gcc-base.conf
|
|
sed -i -e "s|^\(QMAKE_LFLAGS_RELEASE.*\)|\1 ${LDFLAGS}|" \
|
|
qtbase/mkspecs/common/g++-unix.conf
|
|
fi
|
|
sed -i qtwebengine/src/3rdparty/chromium/third_party/ffmpeg/ffmpeg.gyp \
|
|
-e "s|'use_system_ffmpeg%': 0,|'use_system_ffmpeg%': 1,|"
|
|
}
|
|
|
|
do_configure() {
|
|
local opts spec dirs dir f
|
|
|
|
opts+=" -confirm-license"
|
|
opts+=" -opensource"
|
|
opts+=" -prefix /usr"
|
|
opts+=" -bindir /usr/lib/qt5/bin"
|
|
opts+=" -datadir /usr/share/qt5"
|
|
opts+=" -headerdir /usr/include/qt5"
|
|
opts+=" -sysconfdir /etc/xdg"
|
|
opts+=" -plugindir /usr/lib/qt5/plugins"
|
|
opts+=" -docdir /usr/share/doc/qt5"
|
|
opts+=" -importdir /usr/lib/qt5/imports"
|
|
opts+=" -translationdir /usr/share/qt5/translations"
|
|
opts+=" -examplesdir /usr/share/qt5/examples"
|
|
opts+=" -archdatadir /usr/lib/qt5"
|
|
opts+=" -accessibility -fontconfig -icu"
|
|
opts+=" -openssl-linked"
|
|
opts+=" -dbus-linked"
|
|
opts+=" -no-pch"
|
|
opts+=" -no-strip"
|
|
opts+=" -nomake examples"
|
|
opts+=" -optimized-qmake"
|
|
opts+=" -system-libjpeg"
|
|
opts+=" -system-libpng"
|
|
opts+=" -system-zlib"
|
|
opts+=" -system-sqlite"
|
|
opts+=" -system-harfbuzz"
|
|
# opts+=" -silent"
|
|
opts+=" -v"
|
|
|
|
LDFLAGS+=" -Wl,--no-keep-memory" # needs more than 8GB RAM else
|
|
if [ -n "$CROSS_BUILD" ]; then
|
|
spec=void-${XBPS_CROSS_TRIPLET}-g++
|
|
_create_config ${spec}
|
|
opts+=" -device ${spec}"
|
|
opts+=" -device-option CROSS_COMPILE=${XBPS_CROSS_TRIPLET}-"
|
|
opts+=" -opengl es2"
|
|
opts+=" -sysroot ${XBPS_CROSS_BASE}"
|
|
opts+=" -hostprefix host"
|
|
opts+=" -extprefix /usr"
|
|
fi
|
|
|
|
CC="cc" CXX="c++" CPP="cpp" LD="c++" AR="ar" AS="as" NM="nm" \
|
|
OBJDUMP="objdump" STRIP="strip" RANLIB="ranlib" \
|
|
CFLAGS="$XBPS_CFLAGS" CXXFLAGS="$XBPS_CXXFLAGS" \
|
|
CPPFLAGS="$XBPS_CPPFLAGS" LDFLAGS="$XBPS_LDFLAGS" \
|
|
LFLAGS="$XBPS_LDFLAGS" \
|
|
./configure ${opts}
|
|
export LD_LIBRARY_PATH="${wrksrc}/qtbase/lib:${wrksrc}/qttools/lib:${LD_LIBRARY_PATH}"
|
|
}
|
|
|
|
do_install() {
|
|
local f base dirs
|
|
|
|
if [ -z "$CROSS_BUILD" ]; then
|
|
unset CC CXX LD CPP AR AS RANLIB
|
|
fi
|
|
cd ${wrksrc}/qtbase
|
|
make INSTALL_ROOT=${DESTDIR} install
|
|
|
|
# Remove the host utilities
|
|
rm -rf ${DESTDIR}/builddir
|
|
|
|
if [ -n "$CROSS_BUILD" ]; then
|
|
#
|
|
# For some reason qmake and several tools are not built for the target
|
|
# but only for the host. Build them for the target architecture by
|
|
# replacing or patching their project files (*.pro) and the resulting
|
|
# Makefiles and eventually install the targets to ${DESTDIR}/usr/lib/qt5/bin
|
|
#
|
|
vmkdir usr/lib/qt5/bin
|
|
|
|
# Make a backup of the host tools
|
|
for f in qtbase qt3d qtdeclarative qtscxml qttools; do
|
|
mkdir -p ${wrksrc}/host/${f}
|
|
cp -ar ${wrksrc}/${f}/bin ${wrksrc}/host/${f}
|
|
done
|
|
|
|
msg_normal "Building qmake for target ${CROSS_BUILD} ...\n"
|
|
cd qmake
|
|
sed Makefile \
|
|
-e "s;^\(CC\\s*=\).*;\1 $CC;" \
|
|
-e "s;^\(CXX\\s*=\).*;\1 $CXX;" \
|
|
-e "s;^\(QMAKE_CFLAGS\\s*=\).*;\1 $CFLAGS;" \
|
|
-e "s;^\(QMAKE_CXXFLAGS\\s*=\).*;\1 $CXXFLAGS;" \
|
|
-e "s;^\(QMAKE_LFLAGS\\s*=\).*;\1 $LDFLAGS;" \
|
|
-e "s;\$(BUILD_PATH)/bin;${DESTDIR}/usr/lib/qt5/bin;" \
|
|
> Makefile.target
|
|
make clean
|
|
make -f Makefile.target ${makejobs}
|
|
|
|
# Build various tools for the target
|
|
dirs+=" qtbase/src/tools/qdbuscpp2xml"
|
|
dirs+=" qtbase/src/tools/qdbusxml2cpp"
|
|
dirs+=" qtbase/src/tools/qlalr"
|
|
dirs+=" qtbase/src/tools/moc"
|
|
dirs+=" qtbase/src/tools/rcc"
|
|
dirs+=" qtbase/src/tools/uic"
|
|
dirs+=" qt3d/tools/qgltf"
|
|
dirs+=" qtdeclarative/src/qmldevtools"
|
|
dirs+=" qtdeclarative/tools/qmlimportscanner"
|
|
dirs+=" qtdeclarative/tools/qmlmin"
|
|
dirs+=" qtdeclarative/tools/qmllint"
|
|
dirs+=" qtscxml/tools/qscxmlc"
|
|
dirs+=" qttools/src/linguist/lconvert"
|
|
dirs+=" qttools/src/linguist/lrelease"
|
|
dirs+=" qttools/src/linguist/lupdate"
|
|
dirs+=" qttools/src/qdoc"
|
|
mkdir -p ${wrksrc}/target/bin
|
|
for f in ${dirs}; do
|
|
cd ${wrksrc}/${f}
|
|
base=${f##*/}
|
|
msg_normal "Building ${base} for target ${CROSS_BUILD} ...\n"
|
|
make clean
|
|
|
|
if [ -f "${FILESDIR}/${base}.pro" ]; then
|
|
# A specific *.pro file is available, use it.
|
|
cp ${FILESDIR}/${base}.pro ${base}.pro
|
|
else
|
|
# Otherwise strip the option(host_build)
|
|
sed -i ${base}.pro -e "/option(host_build)/d"
|
|
fi
|
|
# Re-create the Makefile
|
|
${wrksrc}/qtbase/bin/qmake -o Makefile ${base}.pro
|
|
|
|
# Now patch the Makefile to not use the bootstrap libs and
|
|
# use the compilers, linker, flags, etc. for the target arch
|
|
sed -i Makefile \
|
|
-e"s; force_bootstrap;;" \
|
|
-e"s;^\(CC\\s*=\).*;\1 $CC;" \
|
|
-e"s;^\(CXX\\s*=\).*;\1 $CXX;" \
|
|
-e"s;^\(LINK\\s*=\).*;\1 $CXX;" \
|
|
-e"s;^\(CFLAGS\\s*=.*\);\1 $CFLAGS;" \
|
|
-e"s;^\(CXXFLAGS\\s*=.*\);\1 $CXXFLAGS;" \
|
|
-e"s;^\(LFLAGS\\s*=.*\);\1 $LDFLAGS;" \
|
|
-e"s;^\(AR\\s*=\).*;\1 $AR cqs;" \
|
|
-e"s;^\(RANLIB\\s*=\).*;\1 $RANLIB;"
|
|
if [ "${base}" != qmldevtools ]; then
|
|
# Set target destination and name
|
|
find . -name Makefile -exec sed -i "{}" \
|
|
-e"s;^\(DESTDIR\\s*=\).*;\1 ${wrksrc}/target/bin/;" \
|
|
-e"s;^\(TARGET\\s*=\).*;\1 ${wrksrc}/target/bin/${base};" \
|
|
\;
|
|
fi
|
|
make ${makejobs}
|
|
# Install the resulting binary, if any
|
|
if [ "${base}" != qmldevtools ]; then
|
|
vinstall ${wrksrc}/target/bin/${base} 755 usr/lib/qt5/bin
|
|
fi
|
|
done
|
|
|
|
cd ${wrksrc}/qtbase
|
|
|
|
# Install the mkspecs
|
|
vcopy mkspecs usr/lib/qt5
|
|
|
|
# Restore backup of the host tools
|
|
for f in qtbase qt3d qtdeclarative qtscxml qttools; do
|
|
rm -rf ${wrksrc}/${f}/bin
|
|
cp -pR ${wrksrc}/host/${f}/bin ${wrksrc}/${f}
|
|
done
|
|
else
|
|
msg_normal ">>> Building qmake for host ${XBPS_ARCH} ...\n"
|
|
cd qmake
|
|
sed Makefile \
|
|
-e "s;^\(CC\\s*\)=.*;\1= gcc;" \
|
|
-e "s;^\(CXX\\s*\)=.*;\1= g++;" \
|
|
-e "s;^\(QMAKE_CFLAGS\\s*\)=.*;\1= $CFLAGS;" \
|
|
-e "s;^\(QMAKE_CXXFLAGS\\s*\)=.*;\1= $CXXFLAGS;" \
|
|
-e "s;^\(QMAKE_LFLAGS\\s*\)=.*;\1= $LDFLAGS;" \
|
|
-e "s;\$(BUILD_PATH)/bin;${DESTDIR}/usr/lib/qt5/bin;" \
|
|
> Makefile.host
|
|
make clean
|
|
make -f Makefile.host ${makejobs}
|
|
fi
|
|
|
|
vlicense ${wrksrc}/LGPL_EXCEPTION.txt
|
|
vmkdir usr/bin
|
|
for f in ${DESTDIR}/usr/lib/qt5/bin/*; do
|
|
base=$(basename $f)
|
|
ln -sf /usr/lib/qt5/bin/${base} ${PKGDESTDIR}/usr/bin/${base}-qt5
|
|
done
|
|
_cleanup_wrksrc_leak
|
|
}
|
|
|
|
qt5-3d-devel_package() {
|
|
short_desc+=" - C++ and QML APIs for 3D graphics (development)"
|
|
depends="qt5-3d-${version}_${revision} qt5-devel-${version}_${revision}"
|
|
pkg_install() {
|
|
_install_devel qt3d
|
|
}
|
|
}
|
|
|
|
qt5-3d_package() {
|
|
short_desc+=" - C++ and QML APIs for 3D graphics"
|
|
pkg_install() {
|
|
_install_subpkg qt3d
|
|
}
|
|
}
|
|
|
|
qt5-canvas3d_package() {
|
|
short_desc+=" - Canvas 3D component"
|
|
pkg_install() {
|
|
_install_subpkg qtcanvas3d
|
|
}
|
|
}
|
|
|
|
qt5-charts-devel_package() {
|
|
short_desc+=" - Charts component (development)"
|
|
depends="qt5-charts-${version}_${revision} qt5-declarative-devel-${version}_${revision}"
|
|
pkg_install() {
|
|
_install_devel qtcharts
|
|
}
|
|
}
|
|
|
|
qt5-charts_package() {
|
|
short_desc+=" - Charts component"
|
|
pkg_install() {
|
|
_install_subpkg qtcharts
|
|
}
|
|
}
|
|
|
|
qt5-gamepad-devel_package() {
|
|
short_desc+=" - Gamepad component (development)"
|
|
depends="qt5-gamepad-${version}_${revision} qt5-declarative-devel-${version}_${revision}"
|
|
pkg_install() {
|
|
_install_devel qtgamepad
|
|
}
|
|
}
|
|
|
|
qt5-gamepad_package() {
|
|
short_desc+=" - Gamepad component"
|
|
pkg_install() {
|
|
_install_subpkg qtgamepad
|
|
}
|
|
}
|
|
|
|
qt5-datavis3d-devel_package() {
|
|
short_desc+=" - 3D data visualization (development)"
|
|
depends="qt5-datavis3d-${version}_${revision} qt5-declarative-devel-${version}_${revision}"
|
|
pkg_install() {
|
|
_install_devel qtdatavis3d
|
|
}
|
|
}
|
|
|
|
qt5-datavis3d_package() {
|
|
short_desc+=" - 3D data visualization"
|
|
pkg_install() {
|
|
_install_subpkg qtdatavis3d
|
|
}
|
|
}
|
|
|
|
qt5-connectivity-devel_package() {
|
|
short_desc+=" - Connectivity component (development)"
|
|
depends="qt5-connectivity-${version}_${revision} qt5-devel-${version}_${revision}"
|
|
pkg_install() {
|
|
_install_devel qtconnectivity
|
|
}
|
|
}
|
|
|
|
qt5-connectivity_package() {
|
|
short_desc+=" - Connectivity component"
|
|
pkg_install() {
|
|
_install_subpkg qtconnectivity
|
|
}
|
|
}
|
|
|
|
qt5-declarative-devel_package() {
|
|
short_desc+=" - Declarative component (development)"
|
|
depends="qt5-declarative-${version}_${revision} qt5-devel-${version}_${revision}"
|
|
pkg_install() {
|
|
_install_devel qtdeclarative
|
|
}
|
|
}
|
|
|
|
qt5-declarative_package() {
|
|
short_desc+=" - Declarative component"
|
|
pkg_install() {
|
|
_install_subpkg qtdeclarative
|
|
}
|
|
}
|
|
|
|
qt5-examples_package() {
|
|
short_desc+=" - Examples"
|
|
depends="qt5-devel-${version}_${revision} qt5-qmake-${version}_${revision}"
|
|
pkg_install() {
|
|
local dir mod base=usr/share/qt5/examples
|
|
vmkdir ${base}
|
|
vcopy qtbase/examples/examples.pro ${base}/
|
|
# Copy examples source
|
|
for dir in $(find ${wrksrc} -maxdepth 2 -type d -name examples); do
|
|
mod=${dir%/examples}
|
|
mod=${mod##*/}
|
|
vcopy ${dir}/* ${base}/
|
|
if [ -e "${PKGDESTDIR}/${base}/README" ]; then
|
|
mv ${PKGDESTDIR}/${base}/README{,.${mod}}
|
|
fi
|
|
done
|
|
}
|
|
}
|
|
|
|
qt5-graphicaleffects_package() {
|
|
short_desc+=" - Graphicaleffects component"
|
|
pkg_install() {
|
|
_install_subpkg qtgraphicaleffects
|
|
}
|
|
}
|
|
|
|
qt5-imageformats_package() {
|
|
short_desc+=" - Plugins for additional image formats"
|
|
pkg_install() {
|
|
_install_subpkg qtimageformats
|
|
}
|
|
}
|
|
|
|
qt5-location-devel_package() {
|
|
short_desc+=" - Location and Positioning components (development)"
|
|
depends="qt5-location-${version}_${revision} qt5-devel-${version}_${revision}"
|
|
pkg_install() {
|
|
_install_devel qtlocation
|
|
}
|
|
}
|
|
|
|
qt5-location_package() {
|
|
short_desc+=" - Location and Positioning components"
|
|
pkg_install() {
|
|
_install_subpkg qtlocation
|
|
}
|
|
}
|
|
|
|
qt5-multimedia-devel_package() {
|
|
short_desc+=" - Multimedia component (development)"
|
|
depends="qt5-multimedia-${version}_${revision} qt5-devel-${version}_${revision}"
|
|
pkg_install() {
|
|
_install_devel qtmultimedia
|
|
}
|
|
}
|
|
|
|
qt5-multimedia_package() {
|
|
short_desc+=" - Multimedia component"
|
|
pkg_install() {
|
|
_install_subpkg qtmultimedia
|
|
}
|
|
}
|
|
|
|
qt5-quickcontrols_package() {
|
|
short_desc+=" - Quick UI controls"
|
|
pkg_install() {
|
|
_install_subpkg qtquickcontrols
|
|
}
|
|
}
|
|
|
|
qt5-quickcontrols2_package() {
|
|
short_desc+=" - Quick UI controls (ver. 2)"
|
|
pkg_install() {
|
|
_install_subpkg qtquickcontrols2
|
|
}
|
|
}
|
|
|
|
qt5-script-devel_package() {
|
|
short_desc+=" - Scriptable classes (development)"
|
|
depends="qt5-script-${version}_${revision} qt5-devel-${version}_${revision}"
|
|
pkg_install() {
|
|
_install_devel qtscript
|
|
}
|
|
}
|
|
|
|
qt5-script_package() {
|
|
short_desc+=" - Scriptable classes"
|
|
pkg_install() {
|
|
_install_subpkg qtscript
|
|
}
|
|
}
|
|
|
|
qt5-scxml-devel_package() {
|
|
short_desc+=" - SCXML model integration (development)"
|
|
depends="qt5-scxml-${version}_${revision} qt5-devel-${version}_${revision}"
|
|
pkg_install() {
|
|
_install_devel qtscxml
|
|
}
|
|
}
|
|
|
|
qt5-scxml_package() {
|
|
short_desc+=" - SCXML model integration"
|
|
pkg_install() {
|
|
_install_subpkg qtscxml
|
|
}
|
|
}
|
|
|
|
qt5-sensors-devel_package() {
|
|
short_desc+=" - Sensors component (development)"
|
|
depends="qt5-sensors-${version}_${revision} qt5-devel-${version}_${revision}"
|
|
pkg_install() {
|
|
_install_devel qtsensors
|
|
}
|
|
}
|
|
|
|
qt5-sensors_package() {
|
|
short_desc+=" - Sensors component"
|
|
pkg_install() {
|
|
_install_subpkg qtsensors
|
|
}
|
|
}
|
|
|
|
qt5-serialbus-devel_package() {
|
|
short_desc+=" - Serial bus component (development)"
|
|
depends="qt5-serialbus-${version}_${revision} qt5-devel-${version}_${revision}"
|
|
pkg_install() {
|
|
_install_devel qtserialbus
|
|
}
|
|
}
|
|
|
|
qt5-serialbus_package() {
|
|
short_desc+=" - Serial bus component"
|
|
pkg_install() {
|
|
_install_subpkg qtserialbus
|
|
}
|
|
}
|
|
|
|
qt5-serialport-devel_package() {
|
|
short_desc+=" - Serial port component (development)"
|
|
depends="qt5-serialport-${version}_${revision} qt5-devel-${version}_${revision}"
|
|
pkg_install() {
|
|
_install_devel qtserialport
|
|
}
|
|
}
|
|
|
|
qt5-serialport_package() {
|
|
short_desc+=" - Serial port component"
|
|
pkg_install() {
|
|
_install_subpkg qtserialport
|
|
}
|
|
}
|
|
|
|
qt5-speech-devel_package() {
|
|
short_desc+=" - Speech component (development)"
|
|
depends="qt5-speech-${version}_${revision} qt5-devel-${version}_${revision}"
|
|
pkg_install() {
|
|
_install_devel qtspeech
|
|
}
|
|
}
|
|
|
|
qt5-speech_package() {
|
|
short_desc+=" - Speech component"
|
|
pkg_install() {
|
|
_install_subpkg qtspeech
|
|
}
|
|
}
|
|
|
|
qt5-svg-devel_package() {
|
|
short_desc+=" - Svg component (development)"
|
|
depends="qt5-svg-${version}_${revision} qt5-devel-${version}_${revision}"
|
|
pkg_install() {
|
|
_install_devel qtsvg
|
|
}
|
|
}
|
|
|
|
qt5-svg_package() {
|
|
short_desc+=" - Svg component"
|
|
pkg_install() {
|
|
_install_subpkg qtsvg
|
|
}
|
|
}
|
|
|
|
qt5-virtualkeyboard-devel_package() {
|
|
short_desc+=" - Virtual keyboard (development)"
|
|
depends="qt5-virtualkeyboard-${version}_${revision} qt5-declarative-devel-${version}_${revision}"
|
|
pkg_install() {
|
|
_install_devel qtvirtualkeyboard
|
|
}
|
|
}
|
|
|
|
qt5-virtualkeyboard_package() {
|
|
short_desc+=" - Virtual keyboard"
|
|
pkg_install() {
|
|
_install_subpkg qtvirtualkeyboard
|
|
}
|
|
}
|
|
|
|
qt5-wayland-devel_package() {
|
|
short_desc+=" - Wayland component (development)"
|
|
depends="qt5-wayland-${version}_${revision} qt5-devel-${version}_${revision}"
|
|
pkg_install() {
|
|
_install_devel qtwayland
|
|
}
|
|
}
|
|
|
|
qt5-wayland_package() {
|
|
short_desc+=" - Wayland component"
|
|
pkg_install() {
|
|
_install_subpkg qtwayland
|
|
}
|
|
}
|
|
|
|
qt5-webchannel-devel_package() {
|
|
short_desc+=" - WebChannel component (development)"
|
|
depends="qt5-webchannel-${version}_${revision} qt5-devel-${version}_${revision}"
|
|
pkg_install() {
|
|
_install_devel qtwebchannel
|
|
}
|
|
}
|
|
|
|
qt5-webchannel_package() {
|
|
short_desc+=" - WebChannel component"
|
|
pkg_install() {
|
|
_install_subpkg qtwebchannel
|
|
}
|
|
}
|
|
|
|
qt5-webengine-devel_package() {
|
|
short_desc+=" - WebEngine component (development)"
|
|
depends="qt5-webengine-${version}_${revision} qt5-devel-${version}_${revision}"
|
|
pkg_install() {
|
|
_install_devel qtwebengine
|
|
}
|
|
}
|
|
|
|
qt5-webengine_package() {
|
|
short_desc+=" - WebEngine component"
|
|
pkg_install() {
|
|
_install_subpkg qtwebengine
|
|
}
|
|
}
|
|
|
|
qt5-websockets-devel_package() {
|
|
short_desc+=" - WebSockets component (development)"
|
|
depends="qt5-websockets-${version}_${revision} qt5-devel-${version}_${revision}"
|
|
pkg_install() {
|
|
_install_devel qtwebsockets
|
|
}
|
|
}
|
|
|
|
qt5-websockets_package() {
|
|
short_desc+=" - WebSockets component"
|
|
pkg_install() {
|
|
_install_subpkg qtwebsockets
|
|
}
|
|
}
|
|
|
|
qt5-webview-devel_package() {
|
|
short_desc+=" - WebView component (development)"
|
|
depends="qt5-webview-${version}_${revision} qt5-devel-${version}_${revision}"
|
|
pkg_install() {
|
|
_install_devel qtwebview
|
|
}
|
|
}
|
|
|
|
qt5-webview_package() {
|
|
short_desc+=" - WebView component"
|
|
pkg_install() {
|
|
_install_subpkg qtwebview
|
|
}
|
|
}
|
|
|
|
qt5-x11extras-devel_package() {
|
|
short_desc+=" - X11 extras (development)"
|
|
depends="qt5-x11extras-${version}_${revision} qt5-devel-${version}_${revision}"
|
|
pkg_install() {
|
|
_install_devel qtx11extras
|
|
}
|
|
}
|
|
|
|
qt5-x11extras_package() {
|
|
short_desc+=" - X11 extras"
|
|
pkg_install() {
|
|
_install_subpkg qtx11extras
|
|
}
|
|
}
|
|
|
|
qt5-xmlpatterns-devel_package() {
|
|
short_desc+=" - XML components (development)"
|
|
depends="qt5-xmlpatterns-${version}_${revision} qt5-devel-${version}_${revision}"
|
|
pkg_install() {
|
|
_install_devel qtxmlpatterns
|
|
}
|
|
}
|
|
|
|
qt5-xmlpatterns_package() {
|
|
short_desc+=" - XML components"
|
|
pkg_install() {
|
|
_install_subpkg qtxmlpatterns
|
|
}
|
|
}
|
|
|
|
qt5-translations_package() {
|
|
short_desc+=" - Translations"
|
|
pkg_install() {
|
|
sed -i ${wrksrc}/qttranslations/translations/Makefile \
|
|
-e "s;qttranslations/translations/\(.*\)_wrapper.sh;host/qttools/bin/\1;g"
|
|
_install_subpkg qttranslations
|
|
}
|
|
}
|
|
|
|
qt5-host-tools_package() {
|
|
short_desc+=" - Tools required when cross compiling"
|
|
pkg_install() {
|
|
for f in moc rcc uic qlalr qdbuscpp2xml qdbusxml2cpp; do
|
|
vmove usr/lib/qt5/bin/${f}
|
|
done
|
|
}
|
|
}
|
|
|
|
qt5-tools-devel_package() {
|
|
short_desc+=" - Development tools (development)"
|
|
depends="qt5-tools-${version}_${revision} qt5-devel-${version}_${revision}"
|
|
pkg_install() {
|
|
_install_devel qttools
|
|
}
|
|
}
|
|
|
|
qt5-tools_package() {
|
|
short_desc+=" - Development tools"
|
|
depends="qt5-translations desktop-file-utils hicolor-icon-theme"
|
|
pkg_install() {
|
|
_install_subpkg qttools
|
|
# install missing icons and desktop files
|
|
for icon in ${wrksrc}/qttools/src/linguist/linguist/images/icons/linguist-*-32.png ; do
|
|
size=$(echo $(basename ${icon}) | cut -d- -f2)
|
|
install -p -D -m644 ${icon} \
|
|
${PKGDESTDIR}/usr/share/icons/hicolor/${size}x${size}/apps/linguist-qt5.png
|
|
done
|
|
install -Dm644 ${wrksrc}/qttools/src/assistant/assistant/images/assistant.png \
|
|
${PKGDESTDIR}/usr/share/icons/hicolor/32x32/apps/assistant-qt5.png
|
|
install -Dm644 ${wrksrc}/qttools/src/assistant/assistant/images/assistant-128.png \
|
|
${PKGDESTDIR}/usr/share/icons/hicolor/128x128/apps/assistant-qt5.png
|
|
install -Dm644 ${wrksrc}/qttools/src/designer/src/designer/images/designer.png \
|
|
${PKGDESTDIR}/usr/share/icons/hicolor/128x128/apps/designer-qt5.png
|
|
install -Dm644 ${wrksrc}/qttools/src/qdbus/qdbusviewer/images/qdbusviewer.png \
|
|
${PKGDESTDIR}/usr/share/icons/hicolor/32x32/apps/qdbusviewer-qt5.png
|
|
install -Dm644 ${wrksrc}/qttools/src/qdbus/qdbusviewer/images/qdbusviewer-128.png \
|
|
${PKGDESTDIR}/usr/share/icons/hicolor/128x128/apps/qdbusviewer-qt5.png
|
|
# install desktop files
|
|
vmkdir usr/share/applications
|
|
install -m644 ${FILESDIR}/*.desktop ${PKGDESTDIR}/usr/share/applications
|
|
}
|
|
}
|
|
|
|
qt5-devel_package() {
|
|
depends="zlib-devel libressl-devel>=2.1.4 libXext-devel libXrender-devel
|
|
fontconfig-devel libglib-devel MesaLib-devel mtdev-devel
|
|
dbus-devel icu-devel qt5-${version}_${revision}
|
|
qt5-qmake-${version}_${revision}
|
|
qt5-host-tools-${version}_${revision}"
|
|
short_desc+=" - Development files"
|
|
# qt5-enginio-devel is gone
|
|
pkg_install() {
|
|
vmove usr/include
|
|
vmove usr/lib/*.a
|
|
vmove usr/lib/*.prl
|
|
vmove usr/lib/cmake
|
|
vmove usr/lib/pkgconfig
|
|
_cleanup_wrksrc_leak
|
|
}
|
|
}
|
|
|
|
qt5-plugin-odbc_package() {
|
|
short_desc+=" - ODBC plugin"
|
|
pkg_install() {
|
|
vmove usr/lib/qt5/plugins/sqldrivers/libqsqlodbc.so
|
|
}
|
|
}
|
|
|
|
qt5-plugin-pgsql_package() {
|
|
short_desc+=" - PostgreSQL plugin"
|
|
pkg_install() {
|
|
vmove usr/lib/qt5/plugins/sqldrivers/libqsqlpsql.so
|
|
}
|
|
}
|
|
|
|
qt5-plugin-mysql_package() {
|
|
short_desc+=" - MySQL plugin"
|
|
pkg_install() {
|
|
vmove usr/lib/qt5/plugins/sqldrivers/libqsqlmysql.so
|
|
}
|
|
}
|
|
|
|
qt5-plugin-sqlite_package() {
|
|
short_desc+=" - SQLite plugin"
|
|
pkg_install() {
|
|
vmove usr/lib/qt5/plugins/sqldrivers/libqsqlite.so
|
|
}
|
|
}
|
|
|
|
qt5-plugin-tds_package() {
|
|
short_desc+=" - TDS plugin"
|
|
pkg_install() {
|
|
vmove usr/lib/qt5/plugins/sqldrivers/libqsqltds.so
|
|
}
|
|
}
|
|
|
|
qt5-qmake_package() {
|
|
short_desc+=" - Qmake Makefile generator tool"
|
|
pkg_install() {
|
|
vmove usr/lib/qt5/bin/qmake
|
|
vmove usr/lib/qt5/mkspecs
|
|
vmove usr/bin/qmake-qt5
|
|
|
|
# Change -isystem to -I to avoid "#include_next <stdlib.h>" errors
|
|
sed -i ${PKGDESTDIR}/usr/lib/qt5/mkspecs/common/gcc-base.conf \
|
|
-e '/^QMAKE_CFLAGS_ISYSTEM/s;-isystem;-I;'
|
|
|
|
# Undo changes to mkspecs/common/gcc-base.conf and g++-unix.conf
|
|
if [ -n "$CROSS_BUILD" ]; then
|
|
sed -i -e "s|^\(QMAKE_CFLAGS_RELEASE.*\) ${XBPS_CFLAGS}|\1|" \
|
|
${PKGDESTDIR}/usr/lib/qt5/mkspecs/common/gcc-base.conf
|
|
sed -i -e "s|^\(QMAKE_LFLAGS_RELEASE.*\) ${XBPS_LDFLAGS}|\1|" \
|
|
${PKGDESTDIR}/usr/lib/qt5/mkspecs/common/g++-unix.conf
|
|
else
|
|
sed -i -e "s|^\(QMAKE_CFLAGS_RELEASE.*\) ${CFLAGS}|\1|" \
|
|
${PKGDESTDIR}/usr/lib/qt5/mkspecs/common/gcc-base.conf
|
|
sed -i -e "s|^\(QMAKE_LFLAGS_RELEASE.*\) ${LDFLAGS}|\1|" \
|
|
${PKGDESTDIR}/usr/lib/qt5/mkspecs/common/g++-unix.conf
|
|
fi
|
|
}
|
|
}
|