qmake.sh (4779B)
1# 2# This helper is for templates using Qt4/Qt5 qmake. 3# 4do_configure() { 5 local qmake 6 local qmake_args 7 if [ -x "/usr/lib/qt5/bin/qmake" ]; then 8 # Qt5 qmake 9 qmake="/usr/lib/qt5/bin/qmake" 10 fi 11 if [ -x "/usr/lib/qt/bin/qmake" ]; then 12 # Qt4 qmake 13 qmake="/usr/lib/qt/bin/qmake" 14 fi 15 if [ -z "${qmake}" ]; then 16 msg_error "${pkgver}: Could not find qmake - missing in hostmakedepends?\n" 17 fi 18 if [ "$CROSS_BUILD" ] && [ "$qmake" == "/usr/lib/qt5/bin/qmake" ]; then 19 case $XBPS_TARGET_MACHINE in 20 i686*) _qt_arch=i386;; 21 x86_64*) _qt_arch=x86_64;; 22 aarch64*) _qt_arch=arm64;; 23 arm*) _qt_arch=arm;; 24 mips*) _qt_arch=mips;; 25 ppc64*) _qt_arch=power64;; 26 ppc*) _qt_arch=power;; 27 esac 28 mkdir -p "${wrksrc}/.target-spec/linux-g++" 29 cat > "${wrksrc}/.target-spec/linux-g++/qmake.conf" <<_EOF 30MAKEFILE_GENERATOR = UNIX 31CONFIG += incremental no_qt_rpath 32QMAKE_INCREMENTAL_STYLE = sublib 33 34include(/usr/lib/qt5/mkspecs/common/linux.conf) 35include(/usr/lib/qt5/mkspecs/common/gcc-base-unix.conf) 36include(/usr/lib/qt5/mkspecs/common/g++-unix.conf) 37 38QMAKE_TARGET_CONFIG = ${XBPS_CROSS_BASE}/usr/lib/qt5/mkspecs/qconfig.pri 39QMAKE_TARGET_MODULE = ${XBPS_CROSS_BASE}/usr/lib/qt5/mkspecs/qmodule.pri 40QMAKEMODULES = ${XBPS_CROSS_BASE}/usr/lib/qt5/mkspecs/modules 41QMAKE_CC = ${CC} 42QMAKE_CXX = ${CXX} 43QMAKE_LINK = ${CXX} 44QMAKE_LINK_C = ${CC} 45QMAKE_LINK_SHLIB = ${CXX} 46 47QMAKE_AR = ${XBPS_CROSS_TRIPLET}-gcc-ar cqs 48QMAKE_OBJCOPY = ${OBJCOPY} 49QMAKE_NM = ${NM} -P 50QMAKE_STRIP = ${STRIP} 51 52QMAKE_CFLAGS = ${CFLAGS} 53QMAKE_CXXFLAGS = ${CXXFLAGS} 54QMAKE_LFLAGS = ${LDFLAGS} 55load(qt_config) 56_EOF 57 echo "#include \"${XBPS_CROSS_BASE}/usr/lib/qt5/mkspecs/linux-g++/qplatformdefs.h\"" > "${wrksrc}/.target-spec/linux-g++/qplatformdefs.h" 58 59 mkdir -p "${wrksrc}/.host-spec/linux-g++" 60 cat > "${wrksrc}/.host-spec/linux-g++/qmake.conf" <<_EOF 61MAKEFILE_GENERATOR = UNIX 62CONFIG += incremental no_qt_rpath 63QMAKE_INCREMENTAL_STYLE = sublib 64 65include(/usr/lib/qt5/mkspecs/common/linux.conf) 66include(/usr/lib/qt5/mkspecs/common/gcc-base-unix.conf) 67include(/usr/lib/qt5/mkspecs/common/g++-unix.conf) 68 69QMAKE_TARGET_CONFIG = ${XBPS_CROSS_BASE}/usr/lib/qt5/mkspecs/qconfig.pri 70QMAKE_TARGET_MODULE = ${XBPS_CROSS_BASE}/usr/lib/qt5/mkspecs/qmodule.pri 71QMAKE_CC = ${CC_host} 72QMAKE_CXX = ${CXX_host} 73QMAKE_LINK = ${CXX_host} 74QMAKE_LINK_C = ${CC_host} 75QMAKE_LINK_SHLIB = ${CXX_host} 76 77QMAKE_AR = gcc-ar cqs 78QMAKE_OBJCOPY = ${OBJCOPY_host} 79QMAKE_NM = ${NM_host} -P 80QMAKE_STRIP = ${STRIP_host} 81 82QMAKE_CFLAGS = ${CFLAGS_host} 83QMAKE_CXXFLAGS = ${CXXFLAGS_host} 84QMAKE_LFLAGS = ${LDFLAGS_host} 85load(qt_config) 86_EOF 87echo '#include "/usr/lib/qt5/mkspecs/linux-g++/qplatformdefs.h"' > "${wrksrc}/.host-spec/linux-g++/qplatformdefs.h" 88 cat > "${wrksrc}/qt.conf" <<_EOF 89[Paths] 90Sysroot=${XBPS_CROSS_BASE} 91Prefix=/usr 92ArchData=${XBPS_CROSS_BASE}/usr/lib/qt5 93Data=${XBPS_CROSS_BASE}/usr/share/qt5 94Documentation=${XBPS_CROSS_BASE}/usr/share/doc/qt5 95Headers=${XBPS_CROSS_BASE}/usr/include/qt5 96Libraries=${XBPS_CROSS_BASE}/usr/lib 97LibraryExecutables=/usr/lib/qt5/libexec 98Binaries=/usr/lib/qt5/bin 99Tests=${XBPS_CROSS_BASE}/usr/tests 100Plugins=/usr/lib/qt5/plugins 101Imports=${XBPS_CROSS_BASE}/usr/lib/qt5/imports 102Qml2Imports=${XBPS_CROSS_BASE}/usr/lib/qt5/qml 103Translations=${XBPS_CROSS_BASE}/usr/share/qt5/translations 104Settings=${XBPS_CROSS_BASE}/etc/xdg 105Examples=${XBPS_CROSS_BASE}/usr/share/qt5/examples 106HostPrefix=/usr 107HostData=/usr/lib/qt5 108HostBinaries=/usr/lib/qt5/bin 109HostLibraries=/usr/lib 110Spec=${wrksrc}/.host-spec/linux-g++ 111TargetSpec=${wrksrc}/.target-spec/linux-g++ 112_EOF 113 qmake_args="-qtconf ${wrksrc}/qt.conf PKG_CONFIG_EXECUTABLE=${XBPS_WRAPPERDIR}/${PKG_CONFIG}" 114 ${qmake} ${qmake_args} \ 115 PREFIX=/usr \ 116 QT_INSTALL_PREFIX=/usr \ 117 LIB=/usr/lib \ 118 QT_TARGET_ARCH=$_qt_arch \ 119 ${configure_args} 120 else 121 ${qmake} ${qmake_args} \ 122 PREFIX=/usr \ 123 QT_INSTALL_PREFIX=/usr \ 124 LIB=/usr/lib \ 125 QMAKE_CC=$CC QMAKE_CXX=$CXX \ 126 QMAKE_LINK=$CXX QMAKE_LINK_C=$CC \ 127 QMAKE_CFLAGS="${CFLAGS}" \ 128 QMAKE_CXXFLAGS="${CXXFLAGS}" \ 129 QMAKE_LFLAGS="${LDFLAGS}" \ 130 CONFIG+=no_qt_rpath \ 131 ${configure_args} 132 fi 133} 134 135do_build() { 136 : ${make_cmd:=make} 137 138 ${make_cmd} ${makejobs} ${make_build_args} ${make_build_target} \ 139 CC="$CC" CXX="$CXX" LINK="$CXX" 140} 141 142do_install() { 143 : ${make_cmd:=make} 144 : ${make_install_target:=install} 145 146 ${make_cmd} STRIP=true PREFIX=/usr DESTDIR=${DESTDIR} \ 147 INSTALL_ROOT=${DESTDIR} ${make_install_args} ${make_install_target} 148}