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