xref: /OK3568_Linux_fs/yocto/meta-qt5/recipes-qt/qt5/qt5-creator_git.bb (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1SUMMARY = "Qt Creator is a new cross-platform Qt IDE"
2
3# Note:
4# The toolchain auto detection does not work completely yet. To compile/debug
5# open menu 'Tools/Options and select 'Build & Run'. In tab 'Kits' select 'Desktop'
6# 'Compiler/Manage...' and add local gcc'. At 'Debugger' select
7# 'System GDB at /usr/bin/gdb.
8
9HOMEPAGE = "https://qt-project.org/"
10LICENSE = "GPL-3.0-only"
11LIC_FILES_CHKSUM = " \
12    file://LICENSE.GPL3-EXCEPT;md5=763d8c535a234d9a3fb682c7ecb6c073 \
13"
14
15inherit qmake5 pkgconfig mime-xdg
16
17DEPENDS += "qtbase qtscript qtxmlpatterns qtx11extras qtdeclarative qttools qttools-native qtsvg chrpath-replacement-native zlib"
18DEPENDS:append:libc-musl = " libexecinfo"
19
20SRCREV = "39ac7b1bf6add473026687003311b702742b6b21"
21PV = "4.15.2+git${SRCPV}"
22# Patches from https://github.com/meta-qt5/qtcreator/commits/b4.9.2
23# 4.9.2.meta-qt5.1
24SRC_URI = " \
25    git://code.qt.io/qt-creator/qt-creator.git;branch=4.15 \
26    file://0001-app-Use-malloc_trim-only-on-glibc.patch \
27    file://0002-clangformat-Fix-build-with-LLVM-13.patch \
28    file://0003-clangformat-Fix-build-with-LLVM-13.patch \
29"
30SRC_URI:append:libc-musl = " file://0001-Link-with-libexecinfo-on-musl.patch"
31
32S = "${WORKDIR}/git"
33
34EXTRA_QMAKEVARS_PRE += " \
35    IDE_LIBRARY_BASENAME=${baselib}${QT_DIR_NAME} \
36    CONFIG+=disable_external_rpath \
37"
38
39EXTRANATIVEPATH += "chrpath-native"
40
41PACKAGECONFIG ??= ""
42PACKAGECONFIG:append:toolchain-clang = " clang"
43
44# Important note: In case clang was added to qttools' PACKAGECONFIG, it has to
45# be added here too - otherwise build fails trying to link native clang libraries
46PACKAGECONFIG[clang] = ",,clang"
47
48COMPATIBLE_HOST:toolchain-clang:riscv32 = "null"
49COMPATIBLE_HOST:toolchain-clang:riscv64 = "null"
50
51do_configure:append() {
52    # Find native tools
53    sed -i 's:${STAGING_BINDIR}.*/qdoc:${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/qdoc:g' ${B}/Makefile
54    if [ -e ${B}/share/qtcreator/translations/Makefile ]; then
55        sed -i 's:${STAGING_BINDIR}/lrelease:${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/lrelease:g' ${B}/share/qtcreator/translations/Makefile
56        sed -i 's:${STAGING_BINDIR}/lupdate:${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/lupdate:g' ${B}/share/qtcreator/translations/Makefile
57        sed -i 's:${STAGING_BINDIR}/xmlpatterns:${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/xmlpatterns:g' ${B}/share/qtcreator/translations/Makefile
58        sed -i 's:${STAGING_BINDIR}/lconvert:${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/lconvert:g' ${B}/share/qtcreator/translations/Makefile
59    fi
60}
61
62do_install() {
63    oe_runmake install INSTALL_ROOT=${D}${prefix}
64    if [ "${@bb.utils.contains("PACKAGECONFIG", "clang", "1", "0", d)}" = "1" ]; then
65        # Remove RPATHs embedded in bins
66        chrpath --delete ${D}${libdir}/qtcreator/plugins/libClang*
67        chrpath --delete ${D}${libexecdir}/qtcreator/clang*
68    fi
69}
70
71FILES:${PN} += " \
72    ${datadir}/qtcreator \
73    ${datadir}/metainfo \
74    ${datadir}/icons \
75    ${libdir}${QT_DIR_NAME}/qtcreator \
76"
77
78FILES:${PN}-dev += " \
79    ${libdir}${QT_DIR_NAME}/qtcreator/*${SOLIBSDEV} \
80"
81
82RDEPENDS:${PN} += "perl python3"
83RCONFLICTS:${PN} = "qt-creator"
84
85# To give best user experience out of the box..
86RRECOMMENDS:${PN} += " \
87    packagegroup-qt5-toolchain-target \
88    binutils \
89    ccache \
90    make \
91    gcc-symlinks g++-symlinks cpp-symlinks \
92    gdb \
93    cmake \
94    qtwebengine-dev \
95    qtwebengine-mkspecs \
96    qtwebengine-plugins \
97    ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'qtwebengine-qmlplugins', '', d)} \
98"
99
100# ERROR: qt5-creator-4.5.1-r0 do_package_qa: QA Issue: No GNU_HASH in the elf binary: '/OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/qt5-creator/4.5.1-r0/packages-split/qt5-creator/usr/lib/qt5/qtcreator/libqbscore.so.1.10.1'
101INSANE_SKIP:${PN} += "ldflags"
102
103inherit features_check
104REQUIRED_DISTRO_FEATURES ?= "x11 opengl"
105
106python() {
107    if 'meta-python2' not in d.getVar('BBFILE_COLLECTIONS').split():
108        raise bb.parse.SkipRecipe('Requires meta-python2 to be present.')
109}
110