[oe] [meta-qt5][PATCH 4/5] qt5-creator: add 3.3.0 of qt-creator

Raphael Philipe rapphil at gmail.com
Thu Feb 5 15:18:28 UTC 2015


Hi

I tried your recipe and got a QA error:
ERROR: QA Issue: qt5-creator: The compile log indicates that host
include and/or library paths were used.
         Please check the log
'/home/rapphil/work/fsl-community-bsp/build/tmp/work/cortexa9hf-vfp-neon-poky-linux-gnueabi/qt5-creator/3.3.0-r0/temp/log.do_compile'
for more information. [compile-host-path]
ERROR: QA run found fatal errors. Please consider fixing them.
ERROR: Function failed: do_package_qa
ERROR: Logfile of failure stored in:
/home/rapphil/work/fsl-community-bsp/build/tmp/work/cortexa9hf-vfp-neon-poky-linux-gnueabi/qt5-creator/3.3.0-r0/temp/log.do_package_qa.903
ERROR: Task 10 (/home/rapphil/work/fsl-community-bsp/sources/meta-qt5/recipes-qt/qt5/qt5-creator_3.3.0.bb,
do_package_qa) failed with exit code '1'

For instance, this was my build config:

Build Configuration:
BB_VERSION        = "1.25.0"
BUILD_SYS         = "x86_64-linux"
NATIVELSBSTRING   = "Ubuntu-14.04"
TARGET_SYS        = "arm-poky-linux-gnueabi"
MACHINE           = "wandboard-solo"
DISTRO            = "poky"
DISTRO_VERSION    = "1.7"
TUNE_FEATURES     = "arm armv7a vfp neon callconvention-hard cortexa9"
TARGET_FPU        = "vfp-neon"
meta
meta-yocto        = "(nobranch):d8f0011c23a6b8441323974acc70b08c81cfefbd"
meta-oe
meta-multimedia
meta-ruby         = "(nobranch):9c926ef2d463e643fb0dc87f6535a12e35d039ab"
meta-fsl-arm      = "(nobranch):95e0861135ffa5f42828d9419788b3db9946861f"
meta-fsl-arm-extra = "(nobranch):9c3dc2a63f637319d877e8fecba3ed7197f44d43"
meta-fsl-demos    = "(nobranch):2f6972264d194417610a9c43217c8f972da43e48"
meta-qt5          = "master-next:c835fc7acc5e0b9e3da9903f3f59e3ead86c8a8d"

Regards,
Raphael Silva.


On Tue, Jan 27, 2015 at 3:53 AM, Andreas Müller
<schnitzeltony at googlemail.com> wrote:
> * this is the first version which dropped qt4 support
> * rename recipe to avoid conflicts with meta-oe's qt-creator
> * Desktop file was based on [1]
>
> [1] http://pkgs.fedoraproject.org/cgit/qt-creator.git/tree/qtcreator.desktop
>
> Signed-off-by: Andreas Müller <schnitzeltony at googlemail.com>
> ---
>  ...t-creator-to-build-on-arm-aarch32-and-aar.patch | 94 ++++++++++++++++++++++
>  recipes-qt/qt5/qt5-creator/qtcreator.desktop.in    | 10 +++
>  recipes-qt/qt5/qt5-creator_3.3.0.bb                | 87 ++++++++++++++++++++
>  3 files changed, 191 insertions(+)
>  create mode 100644 recipes-qt/qt5/qt5-creator/0001-Fix-Allow-qt-creator-to-build-on-arm-aarch32-and-aar.patch
>  create mode 100644 recipes-qt/qt5/qt5-creator/qtcreator.desktop.in
>  create mode 100644 recipes-qt/qt5/qt5-creator_3.3.0.bb
>
> diff --git a/recipes-qt/qt5/qt5-creator/0001-Fix-Allow-qt-creator-to-build-on-arm-aarch32-and-aar.patch b/recipes-qt/qt5/qt5-creator/0001-Fix-Allow-qt-creator-to-build-on-arm-aarch32-and-aar.patch
> new file mode 100644
> index 0000000..3ed8bc4
> --- /dev/null
> +++ b/recipes-qt/qt5/qt5-creator/0001-Fix-Allow-qt-creator-to-build-on-arm-aarch32-and-aar.patch
> @@ -0,0 +1,94 @@
> +From 748174788b318c6316e6d41ce323306120223e02 Mon Sep 17 00:00:00 2001
> +From: Greg Nietsky <gregory at distrotech.co.za>
> +Date: Tue, 4 Mar 2014 11:33:40 +0200
> +Subject: [PATCH 1/2] Fix: Allow qt-creator to build on arm aarch32 and aarch64
> +
> +Botan is imported hardwired for x86 this small patch allows it
> +too operate on arm other platforms could be added.
> +
> +Task-number: QTCREATORBUG-8107
> +Change-Id: Iddea28f21c9fa1afd2fdd5d16a44e6c96a516a7a
> +---
> + src/libs/3rdparty/botan/botan.cpp | 16 +++++++++++++++-
> + src/libs/3rdparty/botan/botan.h   |  2 ++
> + 2 files changed, 17 insertions(+), 1 deletion(-)
> +
> +diff --git a/src/libs/3rdparty/botan/botan.cpp b/src/libs/3rdparty/botan/botan.cpp
> +index b7a9ddf..c5b9826 100644
> +--- a/src/libs/3rdparty/botan/botan.cpp
> ++++ b/src/libs/3rdparty/botan/botan.cpp
> +@@ -1101,6 +1101,8 @@ class Montgomery_Exponentiator : public Modular_Exponentiator
> +
> + #if (BOTAN_MP_WORD_BITS != 32)
> +    #error The mp_x86_32 module requires that BOTAN_MP_WORD_BITS == 32
> ++#elif !defined(BOTAN_TARGET_CPU_IS_X86_FAMILY)
> ++typedef Botan::u64bit dword;
> + #endif
> +
> + #ifdef Q_OS_UNIX
> +@@ -1118,6 +1120,7 @@ extern "C" {
> + */
> + inline word word_madd2(word a, word b, word* c)
> +    {
> ++#if defined(BOTAN_TARGET_CPU_IS_X86_FAMILY)
> +    asm(
> +       ASM("mull %[b]")
> +       ASM("addl %[c],%[a]")
> +@@ -1127,6 +1130,11 @@ inline word word_madd2(word a, word b, word* c)
> +       : "0"(a), "1"(b), [c]"g"(*c) : "cc");
> +
> +    return a;
> ++#else
> ++   dword z = (dword)a * b + *c;
> ++   *c = (word)(z >> BOTAN_MP_WORD_BITS);
> ++   return (word)z;
> ++#endif
> +    }
> +
> + /*
> +@@ -1134,6 +1142,7 @@ inline word word_madd2(word a, word b, word* c)
> + */
> + inline word word_madd3(word a, word b, word c, word* d)
> +    {
> ++#if defined(BOTAN_TARGET_CPU_IS_X86_FAMILY)
> +    asm(
> +       ASM("mull %[b]")
> +
> +@@ -1147,6 +1156,11 @@ inline word word_madd3(word a, word b, word c, word* d)
> +       : "0"(a), "1"(b), [c]"g"(c), [d]"g"(*d) : "cc");
> +
> +    return a;
> ++#else
> ++   dword z = (dword)a * b + c + *d;
> ++   *d = (word)(z >> BOTAN_MP_WORD_BITS);
> ++   return (word)z;
> ++#endif
> +    }
> +
> + }
> +@@ -2315,7 +2329,7 @@ namespace Botan {
> +
> + extern "C" {
> +
> +-#ifdef Q_OS_UNIX
> ++#if defined(Q_OS_UNIX) && defined(BOTAN_TARGET_CPU_IS_X86_FAMILY)
> + /*
> + * Helper Macros for x86 Assembly
> + */
> +diff --git a/src/libs/3rdparty/botan/botan.h b/src/libs/3rdparty/botan/botan.h
> +index 2981d2c..1c8d828 100644
> +--- a/src/libs/3rdparty/botan/botan.h
> ++++ b/src/libs/3rdparty/botan/botan.h
> +@@ -82,7 +82,9 @@
> + #endif
> +
> + #define BOTAN_TARGET_CPU_IS_LITTLE_ENDIAN
> ++#if !defined(__arm__) && !defined(__aarch64__)
> + #define BOTAN_TARGET_CPU_IS_X86_FAMILY
> ++#endif
> + #define BOTAN_TARGET_UNALIGNED_MEMORY_ACCESS_OK 1
> +
> + #if defined(BOTAN_TARGET_CPU_IS_LITTLE_ENDIAN) || \
> +--
> +1.8.3.1
> +
> diff --git a/recipes-qt/qt5/qt5-creator/qtcreator.desktop.in b/recipes-qt/qt5/qt5-creator/qtcreator.desktop.in
> new file mode 100644
> index 0000000..64f7c6b
> --- /dev/null
> +++ b/recipes-qt/qt5/qt5-creator/qtcreator.desktop.in
> @@ -0,0 +1,10 @@
> +[Desktop Entry]
> +Type=Application
> +Exec=sh -c "PATH=$PATH:@QT5_QMAKE@ qtcreator %F"
> +Name=Qt Creator
> +GenericName=C++ IDE for developing Qt applications
> +X-KDE-StartupNotify=true
> +Icon=QtProject-qtcreator
> +Terminal=false
> +Categories=Development;IDE;Qt;
> +MimeType=text/x-c++src;text/x-c++hdr;text/x-xsrc;application/x-designer;application/vnd.nokia.qt.qmakeprofile;application/vnd.nokia.xml.qt.resource;
> diff --git a/recipes-qt/qt5/qt5-creator_3.3.0.bb b/recipes-qt/qt5/qt5-creator_3.3.0.bb
> new file mode 100644
> index 0000000..76f9982
> --- /dev/null
> +++ b/recipes-qt/qt5/qt5-creator_3.3.0.bb
> @@ -0,0 +1,87 @@
> +SUMMARY = "Qt Creator is a new cross-platform Qt IDE"
> +
> +# Note:
> +# The toolchain auto detection does not work completely yet. To compile/debug
> +# open menu 'Tools/Options and select 'Build & Run'. In tab 'Kits' select 'Desktop'
> +# 'Compiler/Manage...' and add local gcc'. At 'Debugger' select
> +# 'System GDB at /usr/bin/gdb.
> +
> +HOMEPAGE = "https://qt-project.org/"
> +LICENSE = "LGPLv2.1 | GPLv3"
> +LIC_FILES_CHKSUM = " \
> +    file://LGPL_EXCEPTION.TXT;md5=eb6c371255e1262c55ae9b652a90b528 \
> +    file://LICENSE.LGPLv21;md5=243b725d71bb5df4a1e5920b344b86ad \
> +    file://LICENSE.LGPLv3;md5=c1939be5579666be947371bc8120425f \
> +"
> +
> +inherit qmake5
> +
> +DEPENDS = "qtbase qtscript qtwebkit qtxmlpatterns qtx11extras qtdeclarative qttools qttools-native qtsvg"
> +
> +SRC_URI = " \
> +    http://download.qt.io/official_releases/qtcreator/3.3/${PV}/qt-creator-opensource-src-${PV}.tar.gz \
> +    file://0001-Fix-Allow-qt-creator-to-build-on-arm-aarch32-and-aar.patch \
> +    file://qtcreator.desktop.in \
> +"
> +SRC_URI[md5sum] = "5e33988908282c779f2e6e4dca2bba3e"
> +SRC_URI[sha256sum] = "27a5c8815fab95f959134047f8315686de4de6f99b0bedfd46b5dedae390525a"
> +
> +S = "${WORKDIR}/qt-creator-opensource-src-${PV}"
> +
> +EXTRA_QMAKEVARS_PRE += "IDE_LIBRARY_BASENAME=${baselib}/${QT_DIR_NAME}"
> +
> +do_configure_prepend() {
> +    # causes gcc infinite loop with 4.9.x for arm targets similar to
> +    # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61033
> +    export DO_NOT_BUILD_QMLDESIGNER=1
> +}
> +
> +do_configure_append() {
> +    # Find native tools
> +    sed -i 's:${STAGING_BINDIR}.*/lrelease:${STAGING_BINDIR_NATIVE}/${QT_DIR_NAME}/lrelease:g' ${B}/share/qtcreator/translations/Makefile
> +    sed -i 's:${STAGING_BINDIR}.*/qdoc:${STAGING_BINDIR_NATIVE}/${QT_DIR_NAME}/qdoc:g' ${B}/Makefile
> +
> +    # see qtbase-native.inc
> +    # sed -i 's:QT_INSTALL_DOCS=${docdir}:QT_INSTALL_DOCS=${STAGING_DATADIR_NATIVE}/${QT_DIR_NAME}/doc:g' ${B}/Makefile
> +}
> +
> +do_compile_append() {
> +    # build docs
> +    #oe_runmake docs_online
> +}
> +
> +do_install() {
> +    oe_runmake install INSTALL_ROOT=${D}${prefix}
> +    oe_runmake install_inst_qch_docs INSTALL_ROOT=${D}${prefix}
> +    # install desktop and ensure that qt-creator finds qmake
> +    install -d ${D}${datadir}/applications
> +    install -m 0644 ${WORKDIR}/qtcreator.desktop.in ${D}${datadir}/applications/qtcreator.desktop
> +    sed -i 's:@QT5_QMAKE@:${bindir}/${QT_DIR_NAME}:g' ${D}${datadir}/applications/qtcreator.desktop
> +}
> +
> +FILES_${PN} += " \
> +    ${datadir}/qtcreator \
> +    ${datadir}/icons \
> +    ${libdir}/${QT_DIR_NAME}/qtcreator \
> +"
> +FILES_${PN}-dbg += " \
> +    ${libdir}/${QT_DIR_NAME}/qtcreator/.debug \
> +    ${libdir}/${QT_DIR_NAME}/qtcreator/plugins/.debug \
> +    ${libdir}/${QT_DIR_NAME}/qtcreator/plugins/qbs/plugins/.debug \
> +"
> +
> +FILES_${PN}-dev += " \
> +    ${libdir}/${QT_DIR_NAME}/qtcreator/*${SOLIBSDEV} \
> +"
> +
> +RDEPENDS_${PN} += "perl"
> +RCONFLICTS_${PN} = "qt-creator"
> +
> +# To give best user experience out of the box..
> +RRECOMMENDS_${PN} += " \
> +    packagegroup-qt5-toolchain-target \
> +    binutils \
> +    ccache \
> +    gcc-symlinks \
> +    gdb \
> +"
> --
> 1.8.3.1
>
> --
> _______________________________________________
> Openembedded-devel mailing list
> Openembedded-devel at lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-devel



More information about the Openembedded-devel mailing list