void-packages

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

qmake.sh (3558B)


      1# This build-helper sets up qmake’s cross environment
      2# in cases the build-style is mixed,
      3# e.g. when in a gnu-configure style the configure
      4# script calls qmake or a makefile in a gnu-makefile style,
      5# respectively.
      6
      7if [ "$CROSS_BUILD" ]; then
      8	mkdir -p "${XBPS_WRAPPERDIR}/target-spec/linux-g++"
      9	cat > "${XBPS_WRAPPERDIR}/target-spec/linux-g++/qmake.conf" <<_EOF
     10MAKEFILE_GENERATOR      = UNIX
     11CONFIG                 += incremental no_qt_rpath
     12QMAKE_INCREMENTAL_STYLE = sublib
     13
     14include(/usr/lib/qt5/mkspecs/common/linux.conf)
     15include(/usr/lib/qt5/mkspecs/common/gcc-base-unix.conf)
     16include(/usr/lib/qt5/mkspecs/common/g++-unix.conf)
     17
     18QMAKE_TARGET_CONFIG     = ${XBPS_CROSS_BASE}/usr/lib/qt5/mkspecs/qconfig.pri
     19QMAKE_TARGET_MODULE     = ${XBPS_CROSS_BASE}/usr/lib/qt5/mkspecs/qmodule.pri
     20QMAKEMODULES            = ${XBPS_CROSS_BASE}/usr/lib/qt5/mkspecs/modules
     21QMAKE_CC                = ${CC}
     22QMAKE_CXX               = ${CXX}
     23QMAKE_LINK              = ${CXX}
     24QMAKE_LINK_C            = ${CC}
     25QMAKE_LINK_SHLIB        = ${CXX}
     26
     27QMAKE_AR                = ${XBPS_CROSS_TRIPLET}-gcc-ar cqs
     28QMAKE_OBJCOPY           = ${OBJCOPY}
     29QMAKE_NM                = ${NM} -P
     30QMAKE_STRIP             = ${STRIP}
     31
     32QMAKE_CFLAGS            = ${CFLAGS}
     33QMAKE_CXXFLAGS          = ${CXXFLAGS}
     34QMAKE_LFLAGS            = ${LDFLAGS}
     35load(qt_config)
     36_EOF
     37	echo "#include \"${XBPS_CROSS_BASE}/usr/lib/qt5/mkspecs/linux-g++/qplatformdefs.h\"" > "${XBPS_WRAPPERDIR}/target-spec/linux-g++/qplatformdefs.h"
     38
     39	cat > "${XBPS_WRAPPERDIR}/qt.conf" <<_EOF
     40[Paths]
     41Sysroot=${XBPS_CROSS_BASE}
     42Prefix=${XBPS_CROSS_BASE}/usr
     43ArchData=${XBPS_CROSS_BASE}/usr/lib/qt5
     44Data=${XBPS_CROSS_BASE}/usr/share/qt5
     45Documentation=${XBPS_CROSS_BASE}/usr/share/doc/qt5
     46Headers=${XBPS_CROSS_BASE}/usr/include/qt5
     47Libraries=${XBPS_CROSS_BASE}/usr/lib
     48LibraryExecutables=/usr/lib/qt5/libexec
     49Binaries=/usr/lib/qt5/bin
     50Tests=${XBPS_CROSS_BASE}/usr/tests
     51Plugins=/usr/lib/qt5/plugins
     52Imports=${XBPS_CROSS_BASE}/usr/lib/qt5/imports
     53Qml2Imports=${XBPS_CROSS_BASE}/usr/lib/qt5/qml
     54Translations=${XBPS_CROSS_BASE}/usr/share/qt5/translations
     55Settings=${XBPS_CROSS_BASE}/etc/xdg
     56Examples=${XBPS_CROSS_BASE}/usr/share/qt5/examples
     57HostPrefix=/usr
     58HostData=/usr/lib/qt5
     59HostBinaries=/usr/lib/qt5/bin
     60HostLibraries=/usr/lib
     61Spec=linux-g++
     62TargetSpec=$XBPS_WRAPPERDIR/target-spec/linux-g++
     63_EOF
     64
     65	# create the qmake-wrapper here because it only
     66	# makes sense together with the qmake build-helper
     67	# and not to interfere with e.g. the qmake build-style
     68	#
     69	# XXX: Intentionally quote {C,CXX,LD}FLAGS here but not in native.
     70	# - Cross Build:
     71	#   + base flags will be picked up from QMAKE_{C,CXX,LD}FLAGS
     72	#   + hardening flags will be picked up from environment variables
     73	# - Native Build:
     74	#   + hardening flags will be picked up first (Makefile, qt.conf?)
     75	#   + base flags will be picked up from QMAKE_{C,CXX,LD}FLAGS
     76	# Maybe there're better workaround, I don't know.
     77        cat > "${XBPS_WRAPPERDIR}/qmake" <<_EOF
     78#!/bin/sh
     79exec /usr/lib/qt5/bin/qmake "\$@" -qtconf "${XBPS_WRAPPERDIR}/qt.conf" \\
     80	QMAKE_CFLAGS+="\${CFLAGS}" \\
     81	QMAKE_CXXFLAGS+="\${CXXFLAGS}" \\
     82	QMAKE_LFLAGS+="\${LDFLAGS}"
     83_EOF
     84else
     85        cat > "${XBPS_WRAPPERDIR}/qmake" <<_EOF
     86#!/bin/sh
     87exec /usr/lib/qt5/bin/qmake \
     88	"\$@" \
     89	PREFIX=/usr \
     90	QT_INSTALL_PREFIX=/usr \
     91	LIB=/usr/lib \
     92	QMAKE_CC=$CC QMAKE_CXX=$CXX \
     93	QMAKE_LINK=$CXX QMAKE_LINK_C=$CC \
     94	QMAKE_CFLAGS+="${CFLAGS}" \
     95	QMAKE_CXXFLAGS+="${CXXFLAGS}" \
     96	QMAKE_LFLAGS+="${LDFLAGS}" \
     97	CONFIG+=no_qt_rpath
     98_EOF
     99fi
    100chmod 755 ${XBPS_WRAPPERDIR}/qmake
    101cp -p ${XBPS_WRAPPERDIR}/qmake{,-qt5}