From d57e27ec08164d1c06e7f5169aa0fb23725f78b4 Mon Sep 17 00:00:00 2001 From: Martin Jansa Date: Mon, 29 Apr 2013 11:59:52 +0200 Subject: [PATCH] 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 +++++++++++++++++++++++ recipes-qt/qt5/qt5.inc | 15 +-------------- 2 files changed, 24 insertions(+), 14 deletions(-) diff --git a/classes/qmake5_base.bbclass b/classes/qmake5_base.bbclass index 0181edc072..42c3e9aeda 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 +} diff --git a/recipes-qt/qt5/qt5.inc b/recipes-qt/qt5/qt5.inc index 4e78577a1f..474eee21a8 100644 --- a/recipes-qt/qt5/qt5.inc +++ b/recipes-qt/qt5/qt5.inc @@ -82,20 +82,7 @@ do_compile() { } do_install() { - 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 - if [ -d ${D}${STAGING_DIR_TARGET} ] ; then - 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 + qmake5_base_do_install } PACKAGES =. "${PN}-tools-dbg ${PN}-plugins-dbg ${PN}-tools ${PN}-plugins ${PN}-mkspecs "