void-packages

Void Source Packages
git clone git://ezup.dev/void-packages.git
Log | Files | Refs | README | LICENSE

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}