From d57e27ec08164d1c06e7f5169aa0fb23725f78b4 Mon Sep 17 00:00:00 2001 From: Martin Jansa Date: Mon, 29 Apr 2013 11:59:52 +0200 Subject: qt5: Instead of fixing paths after installation, fix them in Makefile before * thanks to Mikko Levonmaa * move it from qt5.inc to qmake5_base.bbclass, because it can be useful for other apps too Signed-off-by: Martin Jansa --- classes/qmake5_base.bbclass | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'classes') diff --git a/classes/qmake5_base.bbclass b/classes/qmake5_base.bbclass index 0181edc0..42c3e9ae 100644 --- a/classes/qmake5_base.bbclass +++ b/classes/qmake5_base.bbclass @@ -138,3 +138,26 @@ qmake5_base_do_configure () { CMD="${OE_QMAKE_QMAKE} -makefile -o Makefile ${OE_QMAKE_DEBUG_OUTPUT} -r $QMAKE_VARSUBST_PRE $AFTER $PROFILES $QMAKE_VARSUBST_POST" $CMD || die "Error calling $CMD" } + +qmake5_base_do_install() { + # Fix install paths for all + find -name "Makefile*" | xargs sed -i "s,(INSTALL_ROOT)${STAGING_DIR_TARGET},(INSTALL_ROOT),g" + + oe_runmake install INSTALL_ROOT=${D} + + # everything except HostData and HostBinaries is prefixed with sysroot value, + # but we cannot remove sysroot override, because that's useful for pkg-config etc + # In some cases like QtQmlDevTools in qtdeclarative, the sed above does not work, + # fix them manually + if [ -d ${D}${STAGING_DIR_TARGET} ] ; then + echo "Some files are installed in wrong directory ${D}${STAGING_DIR_TARGET}" + cp -ra ${D}${STAGING_DIR_TARGET}/* ${D} + rm -rf ${D}${STAGING_DIR_TARGET} + # remove empty dirs + TMP=`dirname ${D}/${STAGING_DIR_TARGET}` + while test ${TMP} != ${D}; do + rmdir ${TMP} + TMP=`dirname ${TMP}`; + done + fi +} -- cgit v1.2.3-54-g00ecf