mirror of
https://github.com/openembedded/meta-openembedded.git
synced 2026-07-27 07:57:27 +00:00
qmake2: import from OE
We want to have a seperate qmake for the time being, but eventually all tweaks should move into qt4-tools Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
This commit is contained in:
@@ -0,0 +1,91 @@
|
|||||||
|
|
||||||
|
OE_QMAKE_PLATFORM = "${TARGET_OS}-oe-g++"
|
||||||
|
QMAKESPEC = "${QMAKE_MKSPEC_PATH}/${OE_QMAKE_PLATFORM}"
|
||||||
|
|
||||||
|
# We override this completely to eliminate the -e normally passed in
|
||||||
|
EXTRA_OEMAKE = ' MAKEFLAGS= '
|
||||||
|
|
||||||
|
export OE_QMAKE_CC="${CC}"
|
||||||
|
export OE_QMAKE_CFLAGS="${CFLAGS}"
|
||||||
|
export OE_QMAKE_CXX="${CXX}"
|
||||||
|
export OE_QMAKE_LDFLAGS="${LDFLAGS}"
|
||||||
|
export OE_QMAKE_AR="${AR}"
|
||||||
|
export OE_QMAKE_STRIP="echo"
|
||||||
|
export OE_QMAKE_RPATH="-Wl,-rpath-link,"
|
||||||
|
|
||||||
|
# do not export STRIP to the environment
|
||||||
|
STRIP[unexport] = "1"
|
||||||
|
|
||||||
|
# default to qte2 via bb.conf, inherit qt3x11 to configure for qt3x11
|
||||||
|
|
||||||
|
oe_qmake_mkspecs () {
|
||||||
|
mkdir -p mkspecs/${OE_QMAKE_PLATFORM}
|
||||||
|
for f in ${QMAKE_MKSPEC_PATH}/${OE_QMAKE_PLATFORM}/*; do
|
||||||
|
if [ -L $f ]; then
|
||||||
|
lnk=`readlink $f`
|
||||||
|
if [ -f mkspecs/${OE_QMAKE_PLATFORM}/$lnk ]; then
|
||||||
|
ln -s $lnk mkspecs/${OE_QMAKE_PLATFORM}/`basename $f`
|
||||||
|
else
|
||||||
|
cp $f mkspecs/${OE_QMAKE_PLATFORM}/
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
cp $f mkspecs/${OE_QMAKE_PLATFORM}/
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
qmake_base_do_configure() {
|
||||||
|
case ${QMAKESPEC} in
|
||||||
|
*linux-oe-g++|*linux-uclibc-oe-g++|*linux-gnueabi-oe-g++|*linux-uclibceabi-oe-g++)
|
||||||
|
;;
|
||||||
|
*-oe-g++)
|
||||||
|
die Unsupported target ${TARGET_OS} for oe-g++ qmake spec
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
oenote Searching for qmake spec file
|
||||||
|
paths="${QMAKE_MKSPEC_PATH}/qws/${TARGET_OS}-${TARGET_ARCH}-g++"
|
||||||
|
paths="${QMAKE_MKSPEC_PATH}/${TARGET_OS}-g++ $paths"
|
||||||
|
|
||||||
|
if (echo "${TARGET_ARCH}"|grep -q 'i.86'); then
|
||||||
|
paths="${QMAKE_MKSPEC_PATH}/qws/${TARGET_OS}-x86-g++ $paths"
|
||||||
|
fi
|
||||||
|
for i in $paths; do
|
||||||
|
if test -e $i; then
|
||||||
|
export QMAKESPEC=$i
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
oenote "using qmake spec in ${QMAKESPEC}, using profiles '${QMAKE_PROFILES}'"
|
||||||
|
|
||||||
|
if [ -z "${QMAKE_PROFILES}" ]; then
|
||||||
|
PROFILES="`ls *.pro`"
|
||||||
|
else
|
||||||
|
PROFILES="${QMAKE_PROFILES}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -z "$PROFILES" ]; then
|
||||||
|
die "QMAKE_PROFILES not set and no profiles found in $PWD"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ! -z "${EXTRA_QMAKEVARS_POST}" ]; then
|
||||||
|
AFTER="-after"
|
||||||
|
QMAKE_VARSUBST_POST="${EXTRA_QMAKEVARS_POST}"
|
||||||
|
oenote "qmake postvar substitution: ${EXTRA_QMAKEVARS_POST}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ! -z "${EXTRA_QMAKEVARS_PRE}" ]; then
|
||||||
|
QMAKE_VARSUBST_PRE="${EXTRA_QMAKEVARS_PRE}"
|
||||||
|
oenote "qmake prevar substitution: ${EXTRA_QMAKEVARS_PRE}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
#oenote "Calling '${OE_QMAKE_QMAKE} -makefile -spec ${QMAKESPEC} -o Makefile $QMAKE_VARSUBST_PRE $AFTER $PROFILES $QMAKE_VARSUBST_POST'"
|
||||||
|
unset QMAKESPEC || true
|
||||||
|
${OE_QMAKE_QMAKE} -makefile -spec ${QMAKESPEC} -o Makefile $QMAKE_VARSUBST_PRE $AFTER $PROFILES $QMAKE_VARSUBST_POST || die "Error calling ${OE_QMAKE_QMAKE} on $PROFILES"
|
||||||
|
}
|
||||||
|
|
||||||
|
EXPORT_FUNCTIONS do_configure
|
||||||
|
|
||||||
|
addtask configure after do_unpack do_patch before do_compile
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
include(../linux-g++/qmake.conf)
|
||||||
@@ -0,0 +1,69 @@
|
|||||||
|
DESCRIPTION = "TrollTech Makefile Generator"
|
||||||
|
PRIORITY = "optional"
|
||||||
|
HOMEPAGE = "http://www.trolltech.com"
|
||||||
|
SECTION = "devel"
|
||||||
|
LICENSE = "GPL"
|
||||||
|
PR = "r12"
|
||||||
|
|
||||||
|
# We call 'moc' during the build
|
||||||
|
DEPENDS = "qt4-tools-native"
|
||||||
|
|
||||||
|
QTVER = "qt-embedded-linux-opensource-src-${QTVERSION}"
|
||||||
|
|
||||||
|
SRC_URI = "ftp://ftp.trolltech.com/qt/source/${QTVER}.tar.bz2 \
|
||||||
|
file://0001-fix-mkspecs.patch \
|
||||||
|
file://qt-config.patch \
|
||||||
|
file://use-lflags-last.patch \
|
||||||
|
file://linux-oe-qmake.conf"
|
||||||
|
S = "${WORKDIR}/${QTVER}"
|
||||||
|
|
||||||
|
inherit autotools
|
||||||
|
|
||||||
|
CROSSHACK = "true"
|
||||||
|
CROSSHACK_virtclass-native = ""
|
||||||
|
CROSSHACK_virtclass-nativesdk = ""
|
||||||
|
|
||||||
|
export CROSSHACK
|
||||||
|
export QTDIR = "${S}"
|
||||||
|
EXTRA_OEMAKE = "-e"
|
||||||
|
|
||||||
|
TARGET_CC_ARCH += "${LDFLAGS}"
|
||||||
|
|
||||||
|
do_configure() {
|
||||||
|
|
||||||
|
# Make sure we regenerate all Makefiles
|
||||||
|
find ${S} -name "Makefile" | xargs rm
|
||||||
|
# Install the OE build templates
|
||||||
|
for template in linux-oe-g++ linux-uclibc-oe-g++ linux-gnueabi-oe-g++ linux-uclibceabi-oe-g++
|
||||||
|
do
|
||||||
|
install -d ${S}/mkspecs/$template
|
||||||
|
install -m 0644 ${WORKDIR}/linux-oe-qmake.conf ${S}/mkspecs/$template/qmake.conf
|
||||||
|
ln -sf ../linux-g++/qplatformdefs.h ${S}/mkspecs/$template/qplatformdefs.h
|
||||||
|
done
|
||||||
|
|
||||||
|
QMAKESPEC=
|
||||||
|
PLATFORM=${HOST_OS}-oe-g++
|
||||||
|
export PLATFORM
|
||||||
|
export OE_QMAKE_CC="${CC}"
|
||||||
|
export OE_QMAKE_CFLAGS="${CFLAGS}"
|
||||||
|
export OE_QMAKE_CXX="${CXX}"
|
||||||
|
export OE_QMAKE_CXXFLAGS="-fno-exceptions -fno-rtti ${CXXFLAGS}"
|
||||||
|
export OE_QMAKE_LDFLAGS="${LDFLAGS}"
|
||||||
|
export OE_QMAKE_LINK="${CCLD}"
|
||||||
|
export OE_QMAKE_AR="${AR}"
|
||||||
|
export OE_QMAKE_STRIP="${STRIP}"
|
||||||
|
export OE_QMAKE_UIC="${STAGING_BINDIR_NATIVE}/uic4"
|
||||||
|
export OE_QMAKE_MOC="${STAGING_BINDIR_NATIVE}/moc4"
|
||||||
|
export QMAKE_MOC="${STAGING_BINDIR_NATIVE}/moc4"
|
||||||
|
export OE_QMAKE_RCC="${STAGING_BINDIR_NATIVE}/rcc4"
|
||||||
|
export QMAKE_RCC="${STAGING_BINDIR_NATIVE}/rcc4"
|
||||||
|
export OE_QMAKE_QMAKE="${STAGING_BINDIR_NATIVE}/qmake"
|
||||||
|
export OE_QMAKE_RPATH="-Wl,-rpath-link,"
|
||||||
|
echo yes | ./configure -prefix ${STAGING_DIR_NATIVE}/qt4 ${EXTRA_OECONF} || die "Configuring qt failed"
|
||||||
|
}
|
||||||
|
|
||||||
|
do_compile() {
|
||||||
|
:
|
||||||
|
}
|
||||||
|
|
||||||
|
FILES_${PN} += "${datadir}/qt4/"
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
include(../linux-g++/qmake.conf)
|
||||||
@@ -0,0 +1,60 @@
|
|||||||
|
QTVERSION="4.4.3"
|
||||||
|
FILESDIR += "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/qmake2"
|
||||||
|
|
||||||
|
BBCLASSEXTEND = "native sdk"
|
||||||
|
|
||||||
|
require ${PN}.inc
|
||||||
|
|
||||||
|
SRC_URI += "file://qmake-hack.diff"
|
||||||
|
|
||||||
|
do_install() {
|
||||||
|
install -d ${D}/${bindir}
|
||||||
|
install -m 0755 bin/qmake ${D}/${bindir}/qmake2
|
||||||
|
install -m 0755 bin/qmake ${D}/${bindir}/qmake-qt4
|
||||||
|
install -d ${D}/${datadir}/qt4
|
||||||
|
install -d ${D}/${datadir}/qtopia
|
||||||
|
|
||||||
|
script="${D}/${datadir}/qtopia/environment-setup"
|
||||||
|
touch $script
|
||||||
|
echo 'export QT_DIR_NAME=qtopia' >> $script
|
||||||
|
echo 'export QT_LIBINFIX=E' >> $script
|
||||||
|
echo 'export OE_QMAKE_AR=ar' >> $script
|
||||||
|
echo 'export OE_QMAKE_CC=gcc' >> $script
|
||||||
|
echo 'export OE_QMAKE_CXX=g++' >> $script
|
||||||
|
echo 'export OE_QMAKE_LINK=g++' >> $script
|
||||||
|
echo 'export OE_QMAKE_LIBDIR_QT=${libdir}' >> $script
|
||||||
|
echo 'export OE_QMAKE_INCDIR_QT=${includedir}/qtopia' >> $script
|
||||||
|
echo 'export OE_QMAKE_MOC=${bindir}/moc' >> $script
|
||||||
|
echo 'export OE_QMAKE_UIC=${bindir}/uic' >> $script
|
||||||
|
echo 'export OE_QMAKE_UIC3=${bindir}/uic3' >> $script
|
||||||
|
echo 'export OE_QMAKE_RCC=${bindir}/rcc' >> $script
|
||||||
|
echo 'export OE_QMAKE_QDBUSCPP2XML=${bindir}/qdbuscpp2xml' >> $script
|
||||||
|
echo 'export OE_QMAKE_QDBUSXML2CPP=${bindir}/qdbusxml2cpp' >> $script
|
||||||
|
echo 'export OE_QMAKE_QT_CONFIG=${datadir}/qtopia/mkspecs/qconfig.pri' >> $script
|
||||||
|
echo 'export QMAKESPEC=${datadir}/qtopia/mkspecs/linux-g++' >> $script
|
||||||
|
|
||||||
|
script="${D}/${datadir}/qt4/environment-setup"
|
||||||
|
touch $script
|
||||||
|
echo 'export OE_QMAKE_AR=ar' >> $script
|
||||||
|
echo 'export OE_QMAKE_CC=gcc' >> $script
|
||||||
|
echo 'export OE_QMAKE_CXX=g++' >> $script
|
||||||
|
echo 'export OE_QMAKE_LINK=g++' >> $script
|
||||||
|
echo 'export OE_QMAKE_LIBDIR_QT=${libdir}' >> $script
|
||||||
|
echo 'export OE_QMAKE_INCDIR_QT=${includedir}/qt4' >> $script
|
||||||
|
echo 'export OE_QMAKE_MOC=${bindir}/moc' >> $script
|
||||||
|
echo 'export OE_QMAKE_UIC=${bindir}/uic' >> $script
|
||||||
|
echo 'export OE_QMAKE_UIC3=${bindir}/uic3' >> $script
|
||||||
|
echo 'export OE_QMAKE_RCC=${bindir}/rcc' >> $script
|
||||||
|
echo 'export OE_QMAKE_QDBUSCPP2XML=${bindir}/qdbuscpp2xml' >> $script
|
||||||
|
echo 'export OE_QMAKE_QDBUSXML2CPP=${bindir}/qdbusxml2cpp' >> $script
|
||||||
|
echo 'export OE_QMAKE_QT_CONFIG=${datadir}/qt4/mkspecs/qconfig.pri' >> $script
|
||||||
|
echo 'export QMAKESPEC=${datadir}/qt4/mkspecs/linux-g++' >> $script
|
||||||
|
|
||||||
|
chmod 0755 ${D}${datadir}/qt*/environment-setup
|
||||||
|
}
|
||||||
|
|
||||||
|
FILES_${PN} += "${datadir}/qt*/environment-setup"
|
||||||
|
|
||||||
|
|
||||||
|
SRC_URI[md5sum] = "9a639aec44a1e4c70040117183d247a3"
|
||||||
|
SRC_URI[sha256sum] = "05d06b93f95092f1318634fca24f0c2d0a1252c9f1dc2fbb427b07e8ecbb4f39"
|
||||||
Reference in New Issue
Block a user