From 4e652be4410508cd02c65896bcd1b1e53801b84b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?= Date: Mon, 8 Feb 2021 18:50:56 +0700 Subject: [PATCH] build-helper/qmake: sync with qmake build-style - create pseudo target for cross compile in order to not include host specific headers - look for modules inside target - ignore rpath --- common/build-helper/qmake.sh | 49 +++++++++++++++++++++++++++++------- 1 file changed, 40 insertions(+), 9 deletions(-) diff --git a/common/build-helper/qmake.sh b/common/build-helper/qmake.sh index 62581557aec..9603cf5baae 100644 --- a/common/build-helper/qmake.sh +++ b/common/build-helper/qmake.sh @@ -5,6 +5,37 @@ # respectively. if [ "$CROSS_BUILD" ]; then + mkdir -p "${XBPS_WRAPPERDIR}/target-spec/linux-g++" + cat > "${XBPS_WRAPPERDIR}/target-spec/linux-g++/qmake.conf" <<_EOF +MAKEFILE_GENERATOR = UNIX +CONFIG += incremental no_qt_rpath +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 +QMAKEMODULES = ${XBPS_CROSS_BASE}/usr/lib/qt5/mkspecs/modules +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 + echo "#include \"${XBPS_CROSS_BASE}/usr/lib/qt5/mkspecs/linux-g++/qplatformdefs.h\"" > "${XBPS_WRAPPERDIR}/target-spec/linux-g++/qplatformdefs.h" + cat > "${XBPS_WRAPPERDIR}/qt.conf" <<_EOF [Paths] Sysroot=${XBPS_CROSS_BASE} @@ -28,7 +59,7 @@ HostData=/usr/lib/qt5 HostBinaries=/usr/lib/qt5/bin HostLibraries=/usr/lib Spec=linux-g++ -TargetSpec=linux-g++ +TargetSpec=$XBPS_WRAPPERDIR/target-spec/linux-g++ _EOF # create the qmake-wrapper here because it only @@ -36,13 +67,13 @@ _EOF # and not to interfere with e.g. the qmake build-style cat > "${XBPS_WRAPPERDIR}/qmake" <<_EOF #!/bin/sh -exec /usr/lib/qt5/bin/qmake "\$@" \ - QMAKE_CC=$CC QMAKE_CXX=$CXX QMAKE_LINK=$CXX QMAKE_LINK_C=$CC \ - QMAKE_CFLAGS+="${CFLAGS}" QMAKE_CXXFLAGS+="${CXXFLAGS}" \ - QMAKE_LFLAGS+="${LDFLAGS}" \ - -qtconf "${XBPS_WRAPPERDIR}/qt.conf" +exec /usr/lib/qt5/bin/qmake "\$@" -qtconf "${XBPS_WRAPPERDIR}/qt.conf" +_EOF +else + cat > "${XBPS_WRAPPERDIR}/qmake" <<_EOF +#!/bin/sh +exec /usr/lib/qt5/bin/qmake "\$@" CONFIG+=no_qt_rpath _EOF - - chmod 755 ${XBPS_WRAPPERDIR}/qmake - cp -p ${XBPS_WRAPPERDIR}/qmake{,-qt5} fi +chmod 755 ${XBPS_WRAPPERDIR}/qmake +cp -p ${XBPS_WRAPPERDIR}/qmake{,-qt5}