python3-PyQt5-webengine: cross compile
This commit is contained in:
parent
5719db24e5
commit
17e8be403a
1 changed files with 152 additions and 9 deletions
|
@ -3,7 +3,8 @@ pkgname=python3-PyQt5-webengine
|
|||
version=5.15.0
|
||||
revision=1
|
||||
wrksrc="PyQtWebEngine-${version}"
|
||||
hostmakedepends="pkg-config qt5-qmake python3-PyQt5 sip5"
|
||||
hostmakedepends="pkg-config qt5-qmake python3-PyQt5 sip5 qt5-webengine-devel
|
||||
qt5-declarative-devel qt5-webchannel-devel qt5-location-devel"
|
||||
makedepends="qt5-declarative-devel qt5-webchannel-devel qt5-location-devel
|
||||
qt5-webengine-devel python3-devel python3-PyQt5-devel"
|
||||
depends="python3-PyQt5>=${version}_1 python3-PyQt5-webchannel>=${version}_1"
|
||||
|
@ -14,7 +15,6 @@ homepage="https://www.riverbankcomputing.com/software/pyqtwebengine/intro"
|
|||
distfiles="${PYPI_SITE}/P/PyQtWebEngine/PyQtWebEngine-${version}.tar.gz"
|
||||
checksum=670812688e40bf75f70ddf01eadd897d231300318d3856b275bf8e7e0085bf75
|
||||
lib32disabled=yes
|
||||
nocross="configure script is broken for cross builds"
|
||||
|
||||
case "$XBPS_TARGET_MACHINE" in
|
||||
ppc64le*) ;;
|
||||
|
@ -22,17 +22,160 @@ case "$XBPS_TARGET_MACHINE" in
|
|||
arm*) broken="depends on qt5-webengine";;
|
||||
esac
|
||||
|
||||
pre_build() {
|
||||
post_extract() {
|
||||
rm -rf pyuic/uic/port_v2
|
||||
}
|
||||
|
||||
do_build() {
|
||||
python3 configure.py \
|
||||
QMAKE_CC="${CC}" QMAKE_CFLAGS="${CFLAGS}" \
|
||||
QMAKE_CXX="${CXX}" QMAKE_CXXFLAGS="${CXXFLAGS}" \
|
||||
QMAKE_LINK="${CXX}" QMAKE_LINK_SHLIB="${CXX}"
|
||||
QMAKE_LFLAGS="${LDFLAGS}" QMAKE_STRIP=""
|
||||
_cross_configure() {
|
||||
local qmakespec=$XBPS_STATEDIR/qmake-$XBPS_TARGET_MACHINE
|
||||
mkdir -p $qmakespec/target/linux-g++
|
||||
# This is copied from qmake build-style
|
||||
cat > "$qmakespec/target/linux-g++/qmake.conf" <<-_EOF
|
||||
MAKEFILE_GENERATOR = UNIX
|
||||
CONFIG += incremental
|
||||
QMAKE_INCREMENTAL_STYLE = sublib
|
||||
|
||||
include(/usr/lib/qt5/mkspecs/common/linux.conf)
|
||||
include(/usr/lib/qt5/mkspecs/common/gcc-base-unix.conf)
|
||||
include(/usr/lib/qt5/mkspecs/common/g++-unix.conf)
|
||||
|
||||
QMAKE_TARGET_CONFIG = ${XBPS_CROSS_BASE}/usr/lib/qt5/mkspecs/qconfig.pri
|
||||
QMAKE_TARGET_MODULE = ${XBPS_CROSS_BASE}/usr/lib/qt5/mkspecs/qmodule.pri
|
||||
QMAKE_CC = ${CC}
|
||||
QMAKE_CXX = ${CXX}
|
||||
QMAKE_LINK = ${CXX}
|
||||
QMAKE_LINK_C = ${CC}
|
||||
QMAKE_LINK_SHLIB = ${CXX}
|
||||
|
||||
QMAKE_AR = ${XBPS_CROSS_TRIPLET}-gcc-ar cqs
|
||||
QMAKE_OBJCOPY = ${OBJCOPY}
|
||||
QMAKE_NM = ${NM} -P
|
||||
QMAKE_STRIP = ${STRIP}
|
||||
|
||||
QMAKE_CFLAGS = ${CFLAGS}
|
||||
QMAKE_CXXFLAGS = ${CXXFLAGS}
|
||||
QMAKE_LFLAGS = ${LDFLAGS}
|
||||
load(qt_config)
|
||||
_EOF
|
||||
|
||||
cat <<-EOF > "$qmakespec/target/linux-g++/qplatformdefs.h"
|
||||
#include "${XBPS_CROSS_BASE}/usr/lib/qt5/mkspecs/linux-g++/qplatformdefs.h"
|
||||
EOF
|
||||
|
||||
|
||||
mkdir -p $qmakespec/host/linux-g++
|
||||
cat > "$qmakespec/host/linux-g++/qmake.conf" <<-_EOF
|
||||
MAKEFILE_GENERATOR = UNIX
|
||||
CONFIG += incremental
|
||||
QMAKE_INCREMENTAL_STYLE = sublib
|
||||
|
||||
include(/usr/lib/qt5/mkspecs/common/linux.conf)
|
||||
include(/usr/lib/qt5/mkspecs/common/gcc-base-unix.conf)
|
||||
include(/usr/lib/qt5/mkspecs/common/g++-unix.conf)
|
||||
|
||||
QMAKE_TARGET_CONFIG = ${XBPS_CROSS_BASE}/usr/lib/qt5/mkspecs/qconfig.pri
|
||||
QMAKE_TARGET_MODULE = ${XBPS_CROSS_BASE}/usr/lib/qt5/mkspecs/qmodule.pri
|
||||
QMAKE_CC = ${CC_FOR_BUILD}
|
||||
QMAKE_CXX = ${CXX_FOR_BUILD}
|
||||
QMAKE_LINK = ${CXX_FOR_BUILD}
|
||||
QMAKE_LINK_C = ${CC_FOR_BUILD}
|
||||
QMAKE_LINK_SHLIB = ${CXX_FOR_BUILD}
|
||||
|
||||
QMAKE_AR = gcc-ar cqs
|
||||
QMAKE_OBJCOPY = ${OBJCOPY_FOR_BUILD}
|
||||
QMAKE_NM = ${NM_FOR_BUILD} -P
|
||||
QMAKE_STRIP = ${STRIP_FOR_BUILD}
|
||||
|
||||
QMAKE_CFLAGS = ${CFLAGS_FOR_BUILD}
|
||||
QMAKE_CXXFLAGS = ${CXXFLAGS_FOR_BUILD}
|
||||
QMAKE_LFLAGS = ${LDFLAGS_FOR_BUILD}
|
||||
load(qt_config)
|
||||
_EOF
|
||||
|
||||
cat <<-EOF > "$qmakespec/host/linux-g++/qplatformdefs.h"
|
||||
#include "/usr/lib/qt5/mkspecs/linux-g++/qplatformdefs.h"
|
||||
EOF
|
||||
|
||||
|
||||
cat > "$qmakespec/qt.conf" <<-_EOF
|
||||
[Paths]
|
||||
Sysroot=${XBPS_CROSS_BASE}
|
||||
Prefix=/usr
|
||||
ArchData=/usr/lib/qt5
|
||||
Data=/usr/share/qt5
|
||||
Documentation=/usr/share/doc/qt5
|
||||
Headers=/usr/include/qt5
|
||||
Libraries=${XBPS_CROSS_BASE}/usr/lib
|
||||
LibraryExecutables=/usr/lib/qt5/libexec
|
||||
Binaries=/usr/lib/qt5/bin
|
||||
Tests=${XBPS_CROSS_BASE}/usr/tests
|
||||
Plugins=/usr/lib/qt5/plugins
|
||||
Imports=${XBPS_CROSS_BASE}/usr/lib/qt5/imports
|
||||
Qml2Imports=${XBPS_CROSS_BASE}/usr/lib/qt5/qml
|
||||
Translations=${XBPS_CROSS_BASE}/usr/share/qt5/translations
|
||||
Settings=${XBPS_CROSS_BASE}/etc/xdg
|
||||
Examples=${XBPS_CROSS_BASE}/usr/share/qt5/examples
|
||||
HostPrefix=/usr
|
||||
HostData=/usr/lib/qt5
|
||||
HostBinaries=/usr/lib/qt5/bin
|
||||
HostLibraries=/usr/lib
|
||||
Spec=$qmakespec/host/linux-g++
|
||||
TargetSpec=$qmakespec/target/linux-g++
|
||||
_EOF
|
||||
|
||||
|
||||
case $XBPS_TARGET_MACHINE in
|
||||
i686*) _qt_arch=i386;;
|
||||
x86_64*) _qt_arch=x86_64;;
|
||||
aarch64*) _qt_arch=arm64;;
|
||||
arm*) _qt_arch=arm;;
|
||||
mips*) _qt_arch=mips;;
|
||||
esac
|
||||
cat <<EOF >$XBPS_WRAPPERDIR/cross-qmake
|
||||
#!/bin/sh
|
||||
export PREFIX=/usr
|
||||
export QT_INSTALL_PREFIX=/usr
|
||||
export LIB=/usr/lib
|
||||
export QT_TARGET_ARCH=$_qt_arch
|
||||
export PKG_CONFIG_EXECUTABLE=$XBPS_WRAPPERDIR/$PKG_CONFIG
|
||||
case " \$* " in
|
||||
" -query ")
|
||||
/usr/lib/qt5/bin/qmake "\$@" -qtconf $qmakespec/qt.conf |
|
||||
sed '/^QT_INSTALL_/s,$XBPS_CROSS_BASE,,'
|
||||
;;
|
||||
*)
|
||||
exec /usr/lib/qt5/bin/qmake -qtconf $qmakespec/qt.conf "\$@" ;;
|
||||
esac
|
||||
EOF
|
||||
chmod +x $XBPS_WRAPPERDIR/cross-qmake
|
||||
|
||||
python3 configure.py --qmake=$XBPS_WRAPPERDIR/cross-qmake \
|
||||
--sysroot $XBPS_CROSS_BASE/usr
|
||||
# Technically, the second sed expr isn't necessary
|
||||
# since all of them are the same for both host and target.
|
||||
# We need to fix INSTALL_ROOT anyway, let's fix it, too.
|
||||
sed -i -e "/INSTALL_ROOT/s,$XBPS_CROSS_BASE,,g" \
|
||||
-e "s,-I/usr/include,-I$XBPS_CROSS_BASE/usr/include,g" \
|
||||
Makefile \
|
||||
QtWebEngine/Makefile \
|
||||
QtWebEngineCore/Makefile \
|
||||
QtWebEngineWidgets/Makefile
|
||||
sed -i -e "s,$XBPS_CROSS_BASE,,g" installed.txt
|
||||
}
|
||||
|
||||
do_configure() {
|
||||
if [ "$CROSS_BUILD" ]; then
|
||||
_cross_configure
|
||||
else
|
||||
python3 configure.py \
|
||||
QMAKE_CC="${CC}" QMAKE_CFLAGS="${CFLAGS}" \
|
||||
QMAKE_CXX="${CXX}" QMAKE_CXXFLAGS="${CXXFLAGS}" \
|
||||
QMAKE_LINK="${CXX}" QMAKE_LINK_SHLIB="${CXX}"
|
||||
QMAKE_LFLAGS="${LDFLAGS}" QMAKE_STRIP=""
|
||||
fi
|
||||
}
|
||||
|
||||
do_build() {
|
||||
make ${makejobs}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue