1211 lines
36 KiB
Bash
1211 lines
36 KiB
Bash
# Template file for 'qt5'
|
|
pkgname=qt5
|
|
version=5.13.2
|
|
revision=2
|
|
wrksrc="qt-everywhere-src-${version}"
|
|
build_style=gnu-configure
|
|
hostmakedepends="cmake clang flex git glib-devel gperf ninja pkg-config
|
|
protobuf python re2c ruby which"
|
|
makedepends="SDL2-devel Vulkan-Headers alsa-lib-devel double-conversion-devel
|
|
eudev-libudev-devel ffmpeg-devel freetds-devel glib-devel gst-plugins-base1-devel
|
|
gtk+3-devel icu-devel jsoncpp-devel libXv-devel libbluetooth-devel libcap-devel
|
|
libevent-devel libinput-devel libmng-devel libmysqlclient-devel libproxy-devel
|
|
libvpx-devel libwebp-devel libxslt-devel minizip-devel nss-devel cups-devel
|
|
opus-devel pciutils-devel pcre2-devel postgresql-libs-devel
|
|
protobuf-devel pulseaudio-devel snappy-devel tslib-devel
|
|
unixodbc-devel xcb-util-image-devel xcb-util-keysyms-devel
|
|
xcb-util-renderutil-devel xcb-util-wm-devel libzstd-devel harfbuzz-devel"
|
|
depends="qtchooser"
|
|
short_desc="Cross-platform application and UI framework (QT5)"
|
|
maintainer="Jürgen Buchmüller <pullmoll@t-online.de>"
|
|
license="GPL-3.0-or-later, LGPL-3.0-or-later"
|
|
homepage="https://qt.io/"
|
|
distfiles="http://download.qt.io/official_releases/qt/${version%.*}/${version}/single/qt-everywhere-src-${version}.tar.xz"
|
|
checksum=55e8273536be41f4f63064a79e552a22133848bb419400b6fa8e9fc0dc05de08
|
|
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 qt5-canvas3d<5.13.0"
|
|
|
|
build_options="webengine"
|
|
desc_option_webengine="Build Chromium-based WebEngine component"
|
|
|
|
makedepends+=" harfbuzz-devel"
|
|
|
|
if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
|
|
makedepends+=" musl-legacy-compat"
|
|
fi
|
|
|
|
case "$XBPS_TARGET_MACHINE" in
|
|
armv5tel*) ;; # qtwebengine uses VSM assembler commands
|
|
ppc|ppc-musl) ;; # qtwebengine does not support ppc 32 bit
|
|
*) if [ "$XBPS_WORDSIZE" = "$XBPS_TARGET_WORDSIZE" ]; then
|
|
# webengine can be built only if word size matches
|
|
build_options_default="webengine"
|
|
fi;;
|
|
esac
|
|
|
|
if [ "$build_option_webengine" ]; then
|
|
# v8 requires libatomic on armv[56]*/ppc*/s390x/mips*
|
|
case "$XBPS_TARGET_MACHINE" in
|
|
armv[56]*|mips*|ppc*) makedepends+=" libatomic-devel" ;;
|
|
*) ;;
|
|
esac
|
|
# also need it on host when it's one of those archs
|
|
case "$XBPS_MACHINE" in
|
|
armv[56]*|mips*|ppc*) hostmakedepends+=" libatomic-devel" ;;
|
|
*) ;;
|
|
esac
|
|
fi
|
|
|
|
subpackages="qt5-3d qt5-3d-devel qt5-charts qt5-charts-devel
|
|
qt5-connectivity qt5-connectivity-devel qt5-datavis3d qt5-datavis3d-devel
|
|
qt5-declarative qt5-declarative-devel qt5-devel qt5-examples qt5-gamepad
|
|
qt5-gamepad-devel qt5-graphicaleffects qt5-host-tools qt5-imageformats
|
|
qt5-location qt5-location-devel qt5-multimedia qt5-multimedia-devel
|
|
qt5-networkauth qt5-networkauth-devel qt5-plugin-mysql qt5-plugin-odbc
|
|
qt5-plugin-pgsql qt5-plugin-sqlite qt5-plugin-tds qt5-purchasing
|
|
qt5-purchasing-devel qt5-qmake qt5-quickcontrols qt5-quickcontrols2
|
|
qt5-quickcontrols2-devel qt5-remoteobjects qt5-remoteobjects-devel
|
|
qt5-script qt5-script-devel qt5-scxml qt5-scxml-devel qt5-sensors
|
|
qt5-sensors-devel qt5-serialbus qt5-serialbus-devel qt5-serialport
|
|
qt5-serialport-devel qt5-speech qt5-speech-devel qt5-svg qt5-svg-devel
|
|
qt5-tools qt5-tools-devel qt5-translations qt5-virtualkeyboard
|
|
qt5-virtualkeyboard-devel qt5-wayland qt5-wayland-devel qt5-webchannel
|
|
qt5-webchannel-devel qt5-webglplugin qt5-webglplugin-devel qt5-websockets
|
|
qt5-websockets-devel qt5-webview qt5-webview-devel qt5-x11extras
|
|
qt5-x11extras-devel qt5-xmlpatterns qt5-xmlpatterns-devel
|
|
qt5-lottie qt5-lottie-devel"
|
|
|
|
if [ "$build_option_webengine" ]; then
|
|
subpackages+=" qt5-webengine qt5-webengine-devel"
|
|
fi
|
|
|
|
if [ "$XBPS_WORDSIZE" -eq 32 ]; then
|
|
nodebug=yes # prevent OOM
|
|
fi
|
|
|
|
# Work around SSLv3_{client,server}_method missing in libressl-2.3.3
|
|
CFLAGS="-DOPENSSL_NO_PSK -DOPENSSL_NO_NEXTPROTONEG"
|
|
CXXFLAGS="${CFLAGS} -Wno-deprecated-declarations -Wno-class-memaccess -Wno-packed-not-aligned"
|
|
# Required for musl libc
|
|
LDFLAGS="-pthread -ldl -fPIE -Wl,-z,stack-size=2097152"
|
|
|
|
if [ "$CROSS_BUILD" ]; then
|
|
# Need some devel packages in the host to build qmake, moc, uic, rcc
|
|
# wayland-devel contains /usr/bin/wayland-scanner
|
|
hostmakedepends+=" icu-devel wayland-devel zlib-devel"
|
|
hostmakedepends+=" postgresql-libs-devel"
|
|
# Cross building qtwebengine requires some more host packages
|
|
if [ "$build_option_webengine" ]; then
|
|
hostmakedepends+=" nss-devel libevent-devel"
|
|
fi
|
|
fi
|
|
|
|
_bootstrap_gn() {
|
|
# Bootstrap gn (generate ninja)
|
|
echo "Bootstrapping 'gn'"
|
|
cd ${wrksrc}/qtwebengine/src/3rdparty/gn
|
|
CFLAGS="$CFLAGS_host" CXXFLAGS="$CXXFLAGS_host" LDFLAGS="$LDFLAGS_host" \
|
|
PKGCONFIG=/usr/bin/pkgconfig PKG_CONFIG_PATH="/usr/lib/pkgconfig:/usr/share/pkgconfig" \
|
|
python2 build/gen.py --no-last-commit-position --out-path \
|
|
${wrksrc}/qtwebengine/src/3rdparty/gn/out/Release --cc "$CC_host" \
|
|
--cxx "$CXX_host" --ld "$CXX_host" --ar "$AR_host"
|
|
ninja -C out/Release gn
|
|
cd ${wrksrc}
|
|
}
|
|
|
|
|
|
_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}/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}/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
|
|
if [ "$CROSS_BUILD" ]; then
|
|
for f in $(find ${PKGDESTDIR}/usr/lib/qt5/bin -name "*-target" -type f); do
|
|
base=${f##*/}
|
|
mv -v ${f} ${f%-target}
|
|
done
|
|
fi
|
|
vmkdir usr/bin
|
|
for f in $(find ${PKGDESTDIR}/usr/lib/qt5/bin -type f); 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
|
|
}
|
|
|
|
_move_target_binaries() {
|
|
local f
|
|
[ -z "$CROSS_BUILD" ] && return 0
|
|
vmkdir usr/lib/qt5/bin
|
|
for f in $@; do
|
|
if [ -f ${DESTDIR}/usr/lib/qt5/bin/${f}-target ]; then
|
|
mv -v ${DESTDIR}/usr/lib/qt5/bin/${f}-target \
|
|
${PKGDESTDIR}/usr/lib/qt5/bin/${f}
|
|
fi
|
|
done
|
|
}
|
|
|
|
_create_config() {
|
|
local specs=${wrksrc}/qtbase/mkspecs/devices device="$1"
|
|
local qmake_conf="${specs}/${device}/qmake.conf"
|
|
|
|
mkdir -p ${specs}/${device}
|
|
|
|
echo "#" > ${qmake_conf}
|
|
echo "# qmake configuration for building with $XBPS_TARGET_MACHINE" >> ${qmake_conf}
|
|
echo "#" >> ${qmake_conf}
|
|
echo >> ${qmake_conf}
|
|
echo "include(../common/linux_device_pre.conf)" >> ${qmake_conf}
|
|
echo >> ${qmake_conf}
|
|
# Fake distro name to tell we want control
|
|
echo "DISTRO = arch" >> ${qmake_conf}
|
|
# Hard float on armv6, armv7, not on armv5tel
|
|
case "$XBPS_TARGET_MACHINE" in
|
|
armv6*|armv7*)
|
|
echo "DISTRO_OPTS += hard-float" >> ${qmake_conf}
|
|
;;
|
|
esac
|
|
echo "QMAKE_CC = ${CC}" >> ${qmake_conf}
|
|
echo "QMAKE_CXX = ${CXX}" >> ${qmake_conf}
|
|
echo "QMAKE_LINK = ${CXX}" >> ${qmake_conf}
|
|
echo "QMAKE_LINK_SHLIB = ${CXX}" >> ${qmake_conf}
|
|
echo "QMAKE_LFLAGS = ${LDFLAGS}" >> ${qmake_conf}
|
|
echo "QMAKE_CFLAGS = ${CFLAGS}" >> ${qmake_conf}
|
|
echo "QMAKE_CXXFLAGS = ${CXXFLAGS}" >> ${qmake_conf}
|
|
echo >> ${qmake_conf}
|
|
case "$XBPS_TARGET_MACHINE" in
|
|
arm*)
|
|
echo "include(../common/linux_arm_device_post.conf)" >> ${qmake_conf} ;;
|
|
*)
|
|
echo "include(../common/linux_device_post.conf)" >> ${qmake_conf} ;;
|
|
esac
|
|
echo "load(qt_config)" >> ${qmake_conf}
|
|
|
|
echo '#include "../../linux-g++/qplatformdefs.h"' > ${specs}/${device}/qplatformdefs.h
|
|
}
|
|
|
|
_msg_cross() {
|
|
msg_normal "***************************************************\n"
|
|
msg_normal "$1 for target ${CROSS_BUILD} ...\n"
|
|
msg_normal "***************************************************\n"
|
|
}
|
|
|
|
do_configure() {
|
|
local opts spec
|
|
|
|
# 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
|
|
armv5*|armv6*) # Disable "yield" assembler instruction
|
|
sed -i qtwebengine/src/3rdparty/chromium/base/allocator/partition_allocator/spin_lock.cc \
|
|
qtwebengine/src/3rdparty/chromium/third_party/pdfium/third_party/base/allocator/partition_allocator/spin_lock.cc \
|
|
-e 's;"yield";"nop";'
|
|
;;
|
|
esac
|
|
|
|
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 allocator shim (incompatible with musl libc)
|
|
sed -i qtwebengine/src/3rdparty/chromium/build/config/allocator.gni \
|
|
-e "s;\(use_allocator_shim\) = .*;\1 = false;"
|
|
# Define to set 2 MiB stack size for qthread
|
|
export CXXFLAGS+=" -D_POSIX_THREAD_ATTR_STACKSIZE=2097152"
|
|
;;
|
|
esac
|
|
|
|
# Cross build patches
|
|
if [ "$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}|" \
|
|
${wrksrc}/qtbase/mkspecs/common/gcc-base.conf
|
|
sed -i -e "s|^\(QMAKE_LFLAGS_RELEASE.*\)|\1 ${XBPS_LDFLAGS}|" \
|
|
${wrksrc}/qtbase/mkspecs/common/g++-unix.conf
|
|
|
|
# Create symbolic links for private include directories
|
|
for d in $(ls ${wrksrc}/qtbase/include); do
|
|
ln -sfv ${version}/${d}/private qtbase/include/${d}/private
|
|
done
|
|
if [ "$build_option_webengine" ]; then
|
|
_bootstrap_gn
|
|
fi
|
|
|
|
case "$XBPS_TARGET_MACHINE" in
|
|
mips*) # sgidefs.h is in /usr/include/asm
|
|
for f in \
|
|
qtwebengine/src/3rdparty/chromium/third_party/lss/linux_syscall_support.h \
|
|
qtwebengine/src/3rdparty/chromium/third_party/breakpad/breakpad/src/common/android/include/asm-mips/fpregdef.h \
|
|
qtwebengine/src/3rdparty/chromium/third_party/breakpad/breakpad/src/common/android/include/asm-mips/regdef.h \
|
|
qtwebengine/src/3rdparty/chromium/third_party/breakpad/breakpad/src/common/android/include/asm-mips/asm.h \
|
|
qtwebengine/src/3rdparty/chromium/third_party/tcmalloc/vendor/src/base/linux_syscall_support.h \
|
|
qtwebengine/src/3rdparty/chromium/third_party/tcmalloc/chromium/src/base/linux_syscall_support.h \
|
|
qtscript/src/3rdparty/javascriptcore/JavaScriptCore/wtf/Platform.h; do
|
|
sed -i $f -e "s;<sgidefs.h>;<asm/sgidefs.h>;"
|
|
done
|
|
# Assume that RGBA order is correct for big endian CPUs
|
|
sed -i qtwebengine/src/3rdparty/chromium/skia/config/SkUserConfig.h \
|
|
-e '/#error Read the comment at this location/d'
|
|
;;
|
|
esac
|
|
patch -Np0 < ${FILESDIR}/0090-hard-disable-qmlchachegen.patch
|
|
else
|
|
# qmake {CXX,L}FLAGS patches
|
|
sed -i -e "s|^\(CXXFLAGS =.*\)|\1 ${CXXFLAGS}|" \
|
|
-e "s|^\(LFLAGS =.*\)|\1 ${LDFLAGS}|" \
|
|
${wrksrc}/qtbase/qmake/Makefile.unix
|
|
|
|
# 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}|" \
|
|
${wrksrc}/qtbase/mkspecs/common/gcc-base.conf
|
|
sed -i -e "s|^\(QMAKE_LFLAGS_RELEASE.*\)|\1 ${LDFLAGS}|" \
|
|
${wrksrc}/qtbase/mkspecs/common/g++-unix.conf
|
|
fi
|
|
|
|
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"
|
|
opts+=" -fontconfig"
|
|
opts+=" -icu"
|
|
opts+=" -openssl-linked"
|
|
opts+=" -dbus-linked"
|
|
opts+=" -sql-mysql"
|
|
opts+=" -mysql_config ${XBPS_CROSS_BASE}/usr/bin/mysql_config"
|
|
opts+=" -sql-psql"
|
|
opts+=" -psql_config /usr/bin/pg_config"
|
|
opts+=" -no-pch"
|
|
opts+=" -no-strip"
|
|
opts+=" -nomake examples"
|
|
opts+=" -optimized-qmake"
|
|
# opts+=" -opengl dynamic"
|
|
opts+=" -no-use-gold-linker"
|
|
opts+=" -system-libjpeg"
|
|
opts+=" -system-libpng"
|
|
opts+=" -system-zlib"
|
|
opts+=" -system-sqlite"
|
|
opts+=" -system-harfbuzz"
|
|
# Rely on auto detection (fails if forced for cross builds)
|
|
if [ "$build_option_webengine" ]; then
|
|
# opts+=" -webengine-alsa"
|
|
opts+=" -no-webengine-embedded-build"
|
|
opts+=" -webengine-icu"
|
|
opts+=" -webengine-ffmpeg"
|
|
opts+=" -webengine-opus"
|
|
opts+=" -webengine-webp"
|
|
opts+=" -webengine-pepper-plugins"
|
|
opts+=" -webengine-printing-and-pdf"
|
|
opts+=" -webengine-proprietary-codecs"
|
|
opts+=" -webengine-pulseaudio"
|
|
opts+=" -webengine-spellchecker"
|
|
opts+=" -webengine-webrtc"
|
|
opts+=" -webengine-geolocation"
|
|
opts+=" -webengine-v8-snapshot"
|
|
fi
|
|
opts+=" -silent"
|
|
# opts+=" -v"
|
|
# make sure to disable webengine on platforms that we don't build it for
|
|
if [ -z "$build_option_webengine" ]; then
|
|
opts+=" -skip qtwebengine"
|
|
fi
|
|
LDFLAGS+=" -Wl,--no-keep-memory" # needs more than 8GB RAM else
|
|
if [ "$CROSS_BUILD" ]; then
|
|
spec=void-${XBPS_CROSS_TRIPLET}-g++
|
|
_create_config ${spec}
|
|
opts+=" -device ${spec}"
|
|
opts+=" -device-option CROSS_COMPILE=${XBPS_CROSS_TRIPLET}-"
|
|
opts+=" -sysroot ${XBPS_CROSS_BASE}"
|
|
opts+=" -hostprefix host"
|
|
opts+=" -extprefix /usr"
|
|
case "$XBPS_TARGET_MACHINE" in
|
|
arm*|mips*)
|
|
if [ "$build_option_webengine" ]; then
|
|
# V8 snapshot can't be built with a 64 bit host compiler
|
|
opts+=" -no-webengine-v8-snapshot"
|
|
fi
|
|
;;
|
|
esac
|
|
case "$XBPS_TARGET_MACHINE" in
|
|
aarch64*|armv7*)
|
|
sed -i ${wrksrc}/qtwebengine/src/core/config/linux.pri \
|
|
-e "/arm_use_neon=/s;false;true;"
|
|
;;
|
|
arm*)
|
|
sed -i ${wrksrc}/qtwebengine/src/core/config/linux.pri \
|
|
-e "/arm_use_neon=/s;true;false;"
|
|
|
|
;;
|
|
esac
|
|
sed -i ${wrksrc}/qtwebengine/src/core/config/linux.pri \
|
|
-e "/equals(MARMV/s;true;false;"
|
|
|
|
# Make sure libQt5Designer is built
|
|
cp -v ${FILESDIR}/qttools_src.pro qttools/src/src.pro
|
|
cp -v ${FILESDIR}/designer_src.pro qttools/src/designer/src/src.pro
|
|
cp -v ${FILESDIR}/assistant.pro qttools/src/assistant/assistant.pro
|
|
cp -v ${FILESDIR}/linguist.pro qttools/src/linguist/linguist.pro
|
|
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" \
|
|
${wrksrc}/configure ${opts}
|
|
export LD_LIBRARY_PATH="${wrksrc}/qtbase/lib:${wrksrc}/qttools/lib:${LD_LIBRARY_PATH}"
|
|
}
|
|
|
|
do_build() {
|
|
export NINJAJOBS=${makejobs}
|
|
# Run make twice because sometimes a file "chrome/grit/generated_resources.h"
|
|
# is not yet ready when it is to be included. Repeating make works around that
|
|
# problem without having to resort to disable_parallel_build=yes
|
|
make ${makejobs} || make ${makejobs}
|
|
}
|
|
|
|
do_install() {
|
|
local f base bin dir dirs
|
|
|
|
if [ -z "$CROSS_BUILD" ]; then
|
|
unset CC CXX LD CPP AR AS RANLIB
|
|
fi
|
|
cd ${wrksrc}/qtbase
|
|
make INSTALL_ROOT=${DESTDIR} install
|
|
|
|
_cleanup_wrksrc_leak
|
|
|
|
# Symbolic links for remaining binaries
|
|
vmkdir usr/bin
|
|
for f in $(find ${DESTDIR}/usr/lib/qt5/bin -type f); do
|
|
base=${f##*/}
|
|
ln -sf /usr/lib/qt5/bin/${base} ${PKGDESTDIR}/usr/bin/${base}-qt5
|
|
done
|
|
|
|
if [ "$CROSS_BUILD" ]; then
|
|
vmkdir usr/bin
|
|
vmkdir usr/lib/qt5/bin
|
|
|
|
#
|
|
# Build qmake for the target
|
|
#
|
|
_msg_cross "Building qmake"
|
|
cd ${wrksrc}/qtbase/qmake
|
|
sed Makefile \
|
|
-e"s;^\(CC\\s*=\).*;\1 $CC;" \
|
|
-e"s;^\(CXX\\s*=\).*;\1 $CXX;" \
|
|
-e"s;^\(LINK\\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;${PKGDESTDIR}/usr/lib/qt5/bin;" \
|
|
> Makefile.target
|
|
make clean
|
|
make -f Makefile.target ${makejobs}
|
|
ln -sf ../lib/qt5/bin/qmake ${PKGDESTDIR}/usr/bin/qmake-qt5
|
|
cp -ar ${wrksrc}/qtbase/mkspecs ${PKGDESTDIR}/usr/lib/qt5
|
|
|
|
#
|
|
# Build qmldevtools for the target
|
|
#
|
|
base=qmldevtools
|
|
dir=qtdeclarative/src
|
|
_msg_cross " Building ${base}"
|
|
cd ${wrksrc}/${dir}/${base}
|
|
[ -f "${base}.pro" ] && cp -a ${base}.pro{,.orig}
|
|
sed -i ${base}.pro \
|
|
-e "/option(host_build)/d" \
|
|
-e "/include(..\/3rdparty\/masm\/masm-defs.pri)/i include(../3rdparty/masm/masm.pri)"
|
|
make clean
|
|
# Create the Makefile
|
|
mv -v Makefile{,.orig}
|
|
${wrksrc}/qtbase/bin/qmake -o Makefile ${base}.pro
|
|
make ${makejobs}
|
|
# Restore profile, if any
|
|
[ -f "${base}.pro.orig" ] && mv -v ${base}.pro{.orig,}
|
|
mv -v Makefile{.orig,}
|
|
# Avoid rebuilding the Makefile by changing the rule
|
|
sed -i Makefile -e "s;^Makefile:;Makefile.host:;"
|
|
|
|
#
|
|
# Build various tools for the target
|
|
#
|
|
dirs+=" qtdeclarative/tools/qmlmin"
|
|
dirs+=" qtdeclarative/tools/qmllint"
|
|
dirs+=" qtdeclarative/tools/qmlimportscanner"
|
|
dirs+=" qtbase/src/tools/moc"
|
|
dirs+=" qtbase/src/tools/rcc"
|
|
dirs+=" qtbase/src/tools/uic"
|
|
dirs+=" qtbase/src/tools/qdbuscpp2xml"
|
|
dirs+=" qtbase/src/tools/qdbusxml2cpp"
|
|
dirs+=" qtbase/src/tools/qlalr"
|
|
dirs+=" qt3d/tools/qgltf"
|
|
dirs+=" qtremoteobjects/tools/repc"
|
|
dirs+=" qtscxml/tools/qscxmlc"
|
|
dirs+=" qttools/src/qtattributionsscanner"
|
|
dirs+=" qttools/src/linguist/lconvert"
|
|
dirs+=" qttools/src/linguist/lrelease"
|
|
dirs+=" qttools/src/linguist/lrelease-pro"
|
|
dirs+=" qttools/src/linguist/lprodump"
|
|
dirs+=" qttools/src/linguist/lupdate"
|
|
dirs+=" qttools/src/linguist/lupdate-pro"
|
|
# Cannot be cross compiled (target clang issue)
|
|
# dirs+=" qttools/src/qdoc"
|
|
|
|
for f in ${dirs}; do
|
|
base=${f##*/}
|
|
dir=${f%%/*}
|
|
|
|
_msg_cross " Building ${base}"
|
|
|
|
cd ${wrksrc}/${f}
|
|
if [ -x "${wrksrc}/${dir}/bin/${base}" ]; then
|
|
mv -v ${wrksrc}/${dir}/bin/${base}{,-host}
|
|
fi
|
|
[ -f Makefile ] && make clean
|
|
[ -f "${base}.pro" ] && cp -a ${base}.pro{,.orig}
|
|
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
|
|
# Create the Makefile
|
|
[ -f Makefile ] && mv -v Makefile{,.orig}
|
|
${wrksrc}/qtbase/bin/qmake -o Makefile ${base}.pro
|
|
|
|
# Now patch the Makefile(s) to not use the bootstrap libs and
|
|
# use the compiler, linker, flags, etc. for the target arch
|
|
find . -name "Makefile*" -exec sed -i "{}" \
|
|
-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;" \
|
|
\;
|
|
# Set a different destination directory and target name
|
|
sed -i Makefile \
|
|
-e "s;^\(DESTDIR\\s*=\).*;\1 ${DESTDIR}/usr/lib/qt5/bin/;" \
|
|
-e "s;^\(TARGET\\s*=\).*;\1 ${DESTDIR}/usr/lib/qt5/bin/${base}-target;"
|
|
make ${makejobs}
|
|
# Restore profile, if any
|
|
[ -f "${base}.pro.orig" ] && mv -v ${base}.pro{.orig,}
|
|
[ -f Makefile.orig ] && mv -v Makefile{.orig,}
|
|
# Avoid rebuilding the Makefile by changing the rule
|
|
sed -i Makefile -e 's;^all:.*;all:;'
|
|
sed -i Makefile -e "s;^Makefile:;Makefile.host:;"
|
|
if [ -x "${wrksrc}/${dir}/bin/${base}-host" ]; then
|
|
mv -v ${wrksrc}/${dir}/bin/${base}{-host,}
|
|
touch ${wrksrc}/${dir}/bin/${base}
|
|
fi
|
|
done
|
|
fi
|
|
# Remove builddir from installation
|
|
rm -rf ${DESTDIR}/builddir
|
|
}
|
|
|
|
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
|
|
_move_target_binaries qgltf
|
|
}
|
|
}
|
|
|
|
qt5-3d_package() {
|
|
short_desc+=" - C++ and QML APIs for 3D graphics"
|
|
pkg_install() {
|
|
_install_subpkg qt3d
|
|
}
|
|
}
|
|
|
|
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-connectivity-devel_package() {
|
|
short_desc+=" - Connectivity component (development)"
|
|
depends="qt5-connectivity-${version}_${revision} qt5-declarative-devel-${version}_${revision}"
|
|
pkg_install() {
|
|
_install_devel qtconnectivity
|
|
}
|
|
}
|
|
|
|
qt5-connectivity_package() {
|
|
short_desc+=" - Connectivity component"
|
|
pkg_install() {
|
|
_install_subpkg qtconnectivity
|
|
}
|
|
}
|
|
|
|
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-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
|
|
_move_target_binaries qmlmin qmllint qmlimportscanner
|
|
}
|
|
}
|
|
|
|
qt5-examples_package() {
|
|
short_desc+=" - Examples"
|
|
depends="qt5-devel-${version}_${revision} qt5-qmake-${version}_${revision}
|
|
qt5-host-tools-${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-lottie-devel_package() {
|
|
pkg_install() {
|
|
_install_devel qtlottie
|
|
}
|
|
}
|
|
|
|
qt5-lottie_package() {
|
|
pkg_install() {
|
|
_install_subpkg qtlottie
|
|
}
|
|
}
|
|
|
|
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-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-networkauth-devel_package() {
|
|
short_desc+=" - NetworkAuth component (development)"
|
|
depends="qt5-networkauth-${version}_${revision} qt5-devel-${version}_${revision}"
|
|
pkg_install() {
|
|
_install_devel qtnetworkauth
|
|
}
|
|
}
|
|
|
|
qt5-networkauth_package() {
|
|
short_desc+=" - NetworkAuth component"
|
|
pkg_install() {
|
|
_install_subpkg qtnetworkauth
|
|
}
|
|
}
|
|
|
|
qt5-purchasing-devel_package() {
|
|
short_desc+=" - Purchasing component (development)"
|
|
depends="qt5-purchasing-${version}_${revision} qt5-devel-${version}_${revision}"
|
|
pkg_install() {
|
|
_install_devel qtpurchasing
|
|
}
|
|
}
|
|
|
|
qt5-purchasing_package() {
|
|
short_desc+=" - Purchasing component"
|
|
pkg_install() {
|
|
_install_subpkg qtpurchasing
|
|
}
|
|
}
|
|
|
|
qt5-quickcontrols_package() {
|
|
short_desc+=" - Quick UI controls"
|
|
pkg_install() {
|
|
_install_subpkg qtquickcontrols
|
|
}
|
|
}
|
|
|
|
qt5-quickcontrols2-devel_package() {
|
|
short_desc+=" - Quick2 UI controls (development)"
|
|
depends="qt5-quickcontrols2-${version}_${revision} qt5-devel-${version}_${revision}"
|
|
pkg_install() {
|
|
_install_devel qtquickcontrols2
|
|
}
|
|
}
|
|
|
|
qt5-quickcontrols2_package() {
|
|
short_desc+=" - Quick2 UI controls"
|
|
pkg_install() {
|
|
_install_subpkg qtquickcontrols2
|
|
}
|
|
}
|
|
|
|
qt5-remoteobjects-devel_package() {
|
|
short_desc+=" - Remote Objects (development)"
|
|
depends="qt5-remoteobjects-${version}_${revision} qt5-devel-${version}_${revision}"
|
|
pkg_install() {
|
|
_install_devel qtremoteobjects
|
|
}
|
|
}
|
|
|
|
qt5-remoteobjects_package() {
|
|
short_desc+=" - Remote Objects"
|
|
pkg_install() {
|
|
_install_subpkg qtremoteobjects
|
|
_move_target_binaries repc
|
|
}
|
|
}
|
|
|
|
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
|
|
_move_target_binaries qscxmlc
|
|
}
|
|
}
|
|
|
|
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-serialport-devel-${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-webglplugin-devel_package() {
|
|
short_desc+=" - WebGL plugin (development)"
|
|
depends="qt5-webglplugin-${version}_${revision} qt5-devel-${version}_${revision}"
|
|
pkg_install() {
|
|
_install_devel qtwebglplugin
|
|
}
|
|
}
|
|
|
|
qt5-webglplugin_package() {
|
|
short_desc+=" - WebGL plugin"
|
|
pkg_install() {
|
|
_install_subpkg qtwebglplugin
|
|
}
|
|
}
|
|
|
|
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() {
|
|
local dest=${XBPS_DESTDIR}/${XBPS_CROSS_TRIPLET}/qt5-tools-${version}
|
|
vmkdir usr/lib/qt5/bin
|
|
vmkdir usr/bin
|
|
for f in moc rcc uic qlalr qdbuscpp2xml qdbusxml2cpp \
|
|
lconvert lupdate lupdate-pro lprodump lrelease lrelease-pro; do
|
|
if [ -r ${dest}/usr/lib/qt5/bin/${f} ]; then
|
|
mv -v ${dest}/usr/lib/qt5/bin/${f} ${PKGDESTDIR}/usr/lib/qt5/bin/
|
|
fi
|
|
if [ -f ${DESTDIR}/usr/lib/qt5/bin/${f}-target ]; then
|
|
mv -v ${DESTDIR}/usr/lib/qt5/bin/${f}{-target,}
|
|
fi
|
|
if [ -f ${DESTDIR}/usr/lib/qt5/bin/${f} ]; then
|
|
vmove usr/lib/qt5/bin/${f}
|
|
fi
|
|
if [ -f ${DESTDIR}/usr/bin/${f}-qt5 ] || [ -h ${DESTDIR}/usr/bin/${f}-qt5 ]; then
|
|
vmove usr/bin/${f}-qt5
|
|
else
|
|
ln -sf ../lib/qt5/bin/${f} ${PKGDESTDIR}/usr/bin/${f}-qt5
|
|
fi
|
|
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() {
|
|
local f dest=${XBPS_DESTDIR}/${XBPS_CROSS_TRIPLET}/qt5-host-tools-${version}
|
|
_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
|
|
_move_target_binaries qtattributionsscanner qdoc
|
|
# Move some binaries to qt5-host-tools
|
|
for f in lconvert lupdate lupdate-pro lprodump lrelease lrelease-pro; do
|
|
if [ -f ${PKGDESTDIR}/usr/lib/qt5/bin/${f} ]; then
|
|
mkdir -p ${dest}/usr/lib/qt5/bin
|
|
mv -v ${PKGDESTDIR}/usr/lib/qt5/bin/${f} ${dest}/usr/lib/qt5/bin/
|
|
fi
|
|
if [ -f ${PKGDESTDIR}/usr/bin/${f}-qt5 ] || [ -h ${PKGDESTDIR}/usr/bin/${f}-qt5 ]; then
|
|
mkdir -p ${dest}/usr/bin
|
|
mv -v ${PKGDESTDIR}/usr/bin/${f}-qt5 ${dest}/usr/bin/
|
|
fi
|
|
done
|
|
}
|
|
}
|
|
|
|
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 cups-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;'
|
|
find ${PKGDESTDIR} -iname "*.prl" -exec sed -i "{}" \
|
|
-e 's%/usr/lib/lib\([^[:space:]]*\)\.[sa][o]*%-l\1%g' \;
|
|
find ${PKGDESTDIR} -iname "*.pri" -exec sed -i "{}" \
|
|
-e 's%/usr/lib/lib\([^[:space:]]*\)\.[sa][o]*%-l\1%g' \;
|
|
|
|
# Undo changes to mkspecs/common/gcc-base.conf and g++-unix.conf
|
|
if [ "$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
|
|
}
|
|
}
|