145 lines
4.5 KiB
Bash
145 lines
4.5 KiB
Bash
#
|
|
# This helper is for templates using Qt4/Qt5 qmake.
|
|
#
|
|
do_configure() {
|
|
local qmake
|
|
local qmake_args
|
|
if [ -x "/usr/lib/qt5/bin/qmake" ]; then
|
|
# Qt5 qmake
|
|
qmake="/usr/lib/qt5/bin/qmake"
|
|
fi
|
|
if [ -x "/usr/lib/qt/bin/qmake" ]; then
|
|
# Qt4 qmake
|
|
qmake="/usr/lib/qt/bin/qmake"
|
|
fi
|
|
if [ -z "${qmake}" ]; then
|
|
msg_error "${pkgver}: Could not find qmake - missing in hostdepends?\n"
|
|
fi
|
|
if [ "$CROSS_BUILD" ] && [ "$qmake" == "/usr/lib/qt5/bin/qmake" ]; then
|
|
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
|
|
mkdir -p "${wrksrc}/.target-spec/linux-g++"
|
|
cat > "${wrksrc}/.target-spec/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
|
|
echo "#include \"${XBPS_CROSS_BASE}/usr/lib/qt5/mkspecs/linux-g++/qplatformdefs.h\"" > "${wrksrc}/.target-spec/linux-g++/qplatformdefs.h"
|
|
|
|
mkdir -p "${wrksrc}/.host-spec/linux-g++"
|
|
cat > "${wrksrc}/.host-spec/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_host}
|
|
QMAKE_CXX = ${CXX_host}
|
|
QMAKE_LINK = ${CXX_host}
|
|
QMAKE_LINK_C = ${CC_host}
|
|
QMAKE_LINK_SHLIB = ${CXX_host}
|
|
|
|
QMAKE_AR = gcc-ar cqs
|
|
QMAKE_OBJCOPY = ${OBJCOPY_host}
|
|
QMAKE_NM = ${NM_host} -P
|
|
QMAKE_STRIP = ${STRIP_host}
|
|
|
|
QMAKE_CFLAGS = ${CFLAGS_host}
|
|
QMAKE_CXXFLAGS = ${CXXFLAGS_host}
|
|
QMAKE_LFLAGS = ${LDFLAGS_host}
|
|
load(qt_config)
|
|
_EOF
|
|
echo '#include "/usr/lib/qt5/mkspecs/linux-g++/qplatformdefs.h"' > "${wrksrc}/.host-spec/linux-g++/qplatformdefs.h"
|
|
cat > "${wrksrc}/qt.conf" <<_EOF
|
|
[Paths]
|
|
Sysroot=${XBPS_CROSS_BASE}
|
|
Prefix=/usr
|
|
ArchData=${XBPS_CROSS_BASE}/usr/lib/qt5
|
|
Data=${XBPS_CROSS_BASE}/usr/share/qt5
|
|
Documentation=${XBPS_CROSS_BASE}/usr/share/doc/qt5
|
|
Headers=${XBPS_CROSS_BASE}/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=${wrksrc}/.host-spec/linux-g++
|
|
TargetSpec=${wrksrc}/.target-spec/linux-g++
|
|
_EOF
|
|
qmake_args="-qtconf ${wrksrc}/qt.conf PKG_CONFIG_EXECUTABLE=${XBPS_WRAPPERDIR}/${PKG_CONFIG}"
|
|
${qmake} ${qmake_args} \
|
|
PREFIX=/usr \
|
|
QT_INSTALL_PREFIX=/usr \
|
|
LIB=/usr/lib \
|
|
QT_TARGET_ARCH=$_qt_arch \
|
|
${configure_args}
|
|
else
|
|
${qmake} ${qmake_args} \
|
|
PREFIX=/usr \
|
|
QT_INSTALL_PREFIX=/usr \
|
|
LIB=/usr/lib \
|
|
QMAKE_CC=$CC QMAKE_CXX=$CXX \
|
|
QMAKE_LINK=$CXX QMAKE_LINK_C=$CC \
|
|
QMAKE_CFLAGS="${CFLAGS}" \
|
|
QMAKE_CXXFLAGS="${CXXFLAGS}" \
|
|
QMAKE_LFLAGS="${LDFLAGS}" \
|
|
${configure_args}
|
|
fi
|
|
}
|
|
|
|
do_build() {
|
|
: ${make_cmd:=make}
|
|
|
|
${make_cmd} ${makejobs} ${make_build_args} ${make_build_target} \
|
|
CC="$CC" CXX="$CXX" LINK="$CXX"
|
|
}
|
|
|
|
do_install() {
|
|
: ${make_cmd:=make}
|
|
: ${make_install_target:=install}
|
|
|
|
${make_cmd} STRIP=true PREFIX=/usr DESTDIR=${DESTDIR} \
|
|
INSTALL_ROOT=${DESTDIR} ${make_install_args} ${make_install_target}
|
|
}
|