void-packages/srcpkgs/qt5/template
2017-02-10 02:19:45 +01:00

837 lines
23 KiB
Bash

# Template file for 'qt5'
pkgname=qt5
version=5.7.1
revision=4
wrksrc="qt-everywhere-opensource-src-${version}"
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=46ebca977deb629c5e69c2545bc5fe13f7e40012e5e2e451695c583bd33502fa
if [ "${XBPS_MACHINE%%-musl}" = i686 ]; then
nodebug=yes # prevent OOM
fi
hostmakedepends="flex ruby gperf git python perl pkg-config 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 libsrtp-devel libvpx-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"
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_SSL3_METHOD"
CXXFLAGS="-DOPENSSL_NO_SSL3_METHOD"
# Required for musl libc
LDFLAGS="-pthread"
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
hostmakedepends+=" zlib-devel icu-devel wayland-devel"
fi
_cleanup_wrksrc_leak() {
if [ -d "${PKGDESTDIR}/usr/lib/cmake" ]; then
# Replace ${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 ${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 linker hint files
find ${PKGDESTDIR} -iname "*.prl" -exec sed -i "{}" \
-e "/^QMAKE_PRL_BUILD_DIR/d" \
-e "s;-L${wrksrc}/qtbase/lib;/usr/lib;g" \;
# Replace ${wrksrc} in project include files
find ${PKGDESTDIR} -iname "*.pri" -exec sed -i "{}" \
-e "s;${wrksrc}/qtbase;/usr/lib/qt5;g" \;
}
_move_examples() {
local dest=${XBPS_DESTDIR}/${XBPS_CROSS_TRIPLET}/qt5-examples-${version}
if [ -d ${PKGDESTDIR}/usr/share/qt5/examples ]; then
# Copy examples to /destdir/qt5-examples-${version} subpackage
mkdir -p ${dest}/usr/share/qt5
cp -pR ${PKGDESTDIR}/usr/share/qt5/examples ${dest}/usr/share/qt5
rm -rf ${PKGDESTDIR}/usr/share/qt5/examples
# The help files (*.qch) are in the qt5-doc package
find ${dest}/usr/share/qt5/examples -iname "*.qch" -delete
fi
}
_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/*.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=$(basename $f)
ln -sf /usr/lib/qt5/bin/${base} ${PKGDESTDIR}/usr/bin/${base}-qt5
done
fi
_move_examples
}
_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() {
if [ ${XBPS_GCC_VERSION_MAJOR} -gt 5 ]; then
CXXFLAGS+=" -fno-delete-null-pointer-checks"
fi
# 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
esac
# qmake CFLAGS/LDFLAGS
sed -i qtbase/configure \
-e 's;cd "$0/qmake";cd "$0";' \
-e 's;"$outpath" "$MAKE";"$outpath/qmake" "$MAKE";' \
-e '/outpath\/qmake.*$MAKE/s;\"$MAKE\"\(.*\);\"$MAKE\" QMAKE_CFLAGS=\"$CFLAGS\" QMAKE_CXXFLAGS=\"$CXXFLAGS\" QMAKE_LFLAGS=\"$LDFLAGS\"\1;' \
-e 's;\(setBootstrapVariable\s\+\|EXTRA_C\(XX\)\?FLAGS=.*\)QMAKE_C\(XX\)\?FLAGS_\(DEBUG\|RELEASE\).*;:;'
# cross build patches
if [ -n "$CROSS_BUILD" ]; then
# Patch to skip non-working check for GCC version
patch -p0 < ${FILESDIR}/cross-gcc.patch
# Patches to fix non-working python scripts host CXX detection
patch -p0 < ${FILESDIR}/cross-ninja.patch
fi
}
do_configure() {
local opts spec
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+=" -silent"
opts+=" -no-pch" # For ccache support
opts+=" -no-strip"
opts+=" -optimized-qmake"
opts+=" -system-libjpeg"
opts+=" -system-libpng"
opts+=" -system-zlib"
opts+=" -system-sqlite"
opts+=" -system-harfbuzz"
opts+=" -v" # Enable for verbose configuration tests
if [ -z "$CROSS_BUILD" ]; then
if [ "${XBPS_MACHINE%%-musl}" = i686 ]; then
LDFLAGS+=" -Wl,--no-keep-memory" # else OOM on 32-bit
fi
else
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"
export CFLAGS="$XBPS_CFLAGS"
export CXXFLAGS="$XBPS_CXXFLAGS"
export CPPFLAGS="$XBPS_CPPFLAGS"
export LDFLAGS="$XBPS_LDFLAGS"
fi
export CC="$XBPS_CC"
export CXX="$XBPS_CXX"
export CPP="$XBPS_CPP"
export LD="$XBPS_CXX"
export AR="ar"
export AS="as"
export NM="nm"
export OBJDUMP="objdump"
export STRIP="strip"
export RANLIB="ranlib"
./configure ${opts}
}
do_build() {
export LD_LIBRARY_PATH="${wrksrc}/qtbase/lib:${wrksrc}/qttools/lib:${LD_LIBRARY_PATH}"
if [ -z "$CROSS_BUILD" ]; then
unset CC CXX LD CPP AR AS RANLIB
make ${makejobs}
else
export CC="$XBPS_CC"
export CXX="$XBPS_CXX"
export CPP="$XBPS_CPP"
export LD="$XBPS_CXX"
export CFLAGS="$XBPS_CFLAGS"
export CXXFLAGS="$XBPS_CXXFLAGS"
export CPPFLAGS="$XBPS_CPPFLAGS"
export LDFLAGS="$XBPS_LDFLAGS"
export AR="ar"
export AS="as"
export NM="nm"
export OBJDUMP="objdump"
export RANLIB="ranlib"
export STRIP="strip"
make ${makejobs}
fi
}
do_install() {
local f base
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 some tools are not built for the target.
# Do this manually by patching their Makefiles and installing
# the targets to ${DESTDIR}/usr/lib/qt5/bin
#
vmkdir usr/lib/qt5/bin
echo ">>> Building qmake or target ${CROSS_BUILD} ..."
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}
mkdir -p ${wrksrc}/tools
cd ${wrksrc}/tools
# Create a .qmake.conf file for building the tools
echo "load(qt_build_config)" > .qmake.conf
echo "CONFIG += warning_clean" >> .qmake.conf
echo "QT_SOURCE_TREE = ${wrksrc}/qtbase" >> .qmake.conf
echo "QT_BUILD_TREE = ${wrksrc}/tools" >> .qmake.conf
echo "MODULE_VERSION = ${version}" >> .qmake.conf
for f in moc rcc uic qlalr qdbuscpp2xml qdbusxml2cpp; do
echo ">>> Building ${f} for target ${CROSS_BUILD} ..."
mkdir -p ${wrksrc}/tools/${f}
cd ${wrksrc}/tools/${f}
cp -pR ${wrksrc}/qtbase/src/tools/${f}/* .
cp ${FILESDIR}/${f}/${f}.pro .
${wrksrc}/qtbase/bin/qmake -o Makefile ${f}.pro
sed -i Makefile \
-e"s;^\(CFLAGS\\s=.*\);\1 $CFLAGS;" \
-e"s;^\(CXXFLAGS\\s=.*\);\1 $CXXFLAGS;"
make ${makejobs}
# Install the resulting binary
vinstall ${wrksrc}/tools/bin/${f} 755 usr/lib/qt5/bin
done
cd ${wrksrc}/qtbase
# Install the mkspecs
vcopy mkspecs usr/lib/qt5
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
_move_examples
_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() {
# In case any examples are still left in $DESTDIR
if [ -d ${DESTDIR}/usr/share/qt5/examples ]; then
vmkdir usr/share/qt5
cp -pR ${DESTDIR}/usr/share/qt5/examples \
${PKGDESTDIR}/usr/share/qt5
rm -rf ${DESTDIR}/usr/share/qt5/examples
fi
}
}
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-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() {
_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;'
}
}