diff options
Diffstat (limited to 'recipes-qt/qt5/qtbase_git.bb')
-rw-r--r-- | recipes-qt/qt5/qtbase_git.bb | 102 |
1 files changed, 69 insertions, 33 deletions
diff --git a/recipes-qt/qt5/qtbase_git.bb b/recipes-qt/qt5/qtbase_git.bb index 5cad9a35..4009afc5 100644 --- a/recipes-qt/qt5/qtbase_git.bb +++ b/recipes-qt/qt5/qtbase_git.bb @@ -1,20 +1,20 @@ require qt5.inc -require qt5-git.inc +require qt5-lts.inc require qt5-ptest.inc -LICENSE = "GFDL-1.3 & BSD & ( GPL-3.0 & The-Qt-Company-GPL-Exception-1.0 | The-Qt-Company-Commercial ) & ( GPL-2.0+ | LGPL-3.0 | The-Qt-Company-Commercial )" +LICENSE = "GFDL-1.3 & BSD-3-Clause & ( GPL-3.0-only & The-Qt-Company-GPL-Exception-1.0 | The-Qt-Company-Commercial ) & ( GPL-2.0-or-later | LGPL-3.0-only | The-Qt-Company-Commercial )" LIC_FILES_CHKSUM = " \ file://LICENSE.LGPL3;md5=e6a600fd5e1d9cbde2d983680233ad02 \ file://LICENSE.GPL2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ file://LICENSE.GPL3;md5=d32239bcb673463ab874e80d47fae504 \ file://LICENSE.GPL3-EXCEPT;md5=763d8c535a234d9a3fb682c7ecb6c073 \ file://LICENSE.FDL;md5=6d9f2a9af4c8b8c3c769f6cc1b6aaf7e \ - file://LICENSE.QT-LICENSE-AGREEMENT-4.0;md5=948f8877345cd66106f11031977a4625 \ + file://LICENSE.QT-LICENSE-AGREEMENT;md5=485e1d58b313def058a0d72598aa6efe \ " # common for qtbase-native, qtbase-nativesdk and qtbase -# Patches from https://github.com/meta-qt5/qtbase/commits/b5.12-shared -# 5.12.meta-qt5-shared.8 +# Patches from https://github.com/meta-qt5/qtbase/commits/b5.15-shared +# 5.15.meta-qt5-shared.4 SRC_URI += "\ file://0001-Add-linux-oe-g-platform.patch \ file://0002-cmake-Use-OE_QMAKE_PATH_EXTERNAL_HOST_BINS.patch \ @@ -23,19 +23,29 @@ SRC_URI += "\ file://0005-Disable-all-unknown-features-instead-of-erroring-out.patch \ file://0006-Pretend-Qt5-wasn-t-found-if-OE_QMAKE_PATH_EXTERNAL_H.patch \ file://0007-Delete-qlonglong-and-qulonglong.patch \ - file://0008-Replace-pthread_yield-with-sched_yield.patch \ file://0009-Add-OE-specific-specs-for-clang-compiler.patch \ file://0010-linux-clang-Invert-conditional-for-defining-QT_SOCKL.patch \ file://0011-tst_qlocale-Enable-QT_USE_FENV-only-on-glibc.patch \ - file://0012-mkspecs-common-gcc-base.conf-Use-I-instead-of-isyste.patch \ - file://0013-Disable-ltcg-for-host_build.patch \ - file://0014-Qt5GuiConfigExtras.cmake.in-cope-with-variable-path-.patch \ - file://0015-corelib-Include-sys-types.h-for-uint32_t.patch \ - file://0016-Define-QMAKE_CXX.COMPILER_MACROS-for-clang-on-linux.patch \ + file://0012-Disable-ltcg-for-host_build.patch \ + file://0013-Qt5GuiConfigExtras.cmake.in-cope-with-variable-path-.patch \ + file://0014-corelib-Include-sys-types.h-for-uint32_t.patch \ + file://0015-Define-QMAKE_CXX.COMPILER_MACROS-for-clang-on-linux.patch \ + file://0016-tst_qpainter-FE_-macros-are-not-defined-for-every-pl.patch \ + file://0017-Define-__NR_futex-if-it-does-not-exist.patch \ + file://0018-Revert-Fix-workaround-in-pthread-destructor.patch \ + file://0019-tst_QPluginLoader-Simplify-creating-a-fake-pointer-i.patch \ + file://0021-rcc-Just-dcument-file-name-without-full-path-to-redu.patch \ + file://0022-testlib-don-t-track-the-build-or-source-directories.patch \ " +# Disable LTO for now, QT5 patches are being worked upstream, perhaps revisit with +# next major upgrade of QT +LTO = "" + # for syncqt -RDEPENDS_${PN}-tools += "perl" +RDEPENDS:${PN}-tools += "perl" + +inherit pkgconfig # separate some parts of PACKAGECONFIG which are often changed PACKAGECONFIG_GL ?= "${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'gl', 'no-opengl', d)}" @@ -49,9 +59,11 @@ PACKAGECONFIG_DISTRO ?= "" PACKAGECONFIG_RELEASE ?= "release" # This is in qt5.inc, because qtwebkit-examples are using it to enable ca-certificates dependency # PACKAGECONFIG_OPENSSL ?= "openssl" -PACKAGECONFIG_DEFAULT ?= "accessibility dbus udev evdev widgets tools libs freetype tests pcre \ +PACKAGECONFIG_DEFAULT ?= "accessibility dbus udev evdev widgets tools libs freetype pcre \ ${@bb.utils.contains('SELECTED_OPTIMIZATION', '-Os', 'optimize-size ltcg', '', d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'ptest', 'tests', '', d)} \ ${@bb.utils.contains('DISTRO_FEATURES', 'qt5-static', 'static', '', d)} \ + ${@bb.utils.filter('DISTRO_FEATURES', 'vulkan', d)} \ " PACKAGECONFIG ?= " \ @@ -103,11 +115,11 @@ PACKAGECONFIG[no-opengl] = "-no-opengl" PACKAGECONFIG[tslib] = "-tslib,-no-tslib,tslib" PACKAGECONFIG[cups] = "-cups,-no-cups,cups" PACKAGECONFIG[dbus] = "-dbus,-no-dbus,dbus" -PACKAGECONFIG[xcb] = "-xcb -xcb-xlib -no-bundled-xcb-xinput,-no-xcb,libxcb xcb-util-wm xcb-util-image xcb-util-keysyms xcb-util-renderutil libxext" +PACKAGECONFIG[xcb] = "-xcb -xcb-xlib -no-bundled-xcb-xinput -DUSE_X11=ON,-no-xcb,libxcb xcb-util-wm xcb-util-image xcb-util-keysyms xcb-util-renderutil libxext" PACKAGECONFIG[sql-ibase] = "-sql-ibase,-no-sql-ibase" PACKAGECONFIG[sql-mysql] = "-sql-mysql -mysql_config ${STAGING_BINDIR_CROSS}/mysql_config,-no-sql-mysql,mysql5" PACKAGECONFIG[sql-psql] = "-sql-psql,-no-sql-psql,postgresql" -PACKAGECONFIG[sql-odbc] = "-sql-odbc,-no-sql-odbc" +PACKAGECONFIG[sql-odbc] = "-sql-odbc,-no-sql-odbc,unixodbc" PACKAGECONFIG[sql-oci] = "-sql-oci,-no-sql-oci" PACKAGECONFIG[sql-tds] = "-sql-tds,-no-sql-tds" PACKAGECONFIG[sql-db2] = "-sql-db2,-no-sql-db2" @@ -117,6 +129,7 @@ PACKAGECONFIG[iconv] = "-iconv,-no-iconv,virtual/libiconv" PACKAGECONFIG[xkbcommon] = "-xkbcommon,-no-xkbcommon,libxkbcommon,xkeyboard-config" PACKAGECONFIG[evdev] = "-evdev,-no-evdev" PACKAGECONFIG[mtdev] = "-mtdev,-no-mtdev,mtdev" +PACKAGECONFIG[lttng] = "-trace lttng,-trace no,lttng-ust" # depends on glib PACKAGECONFIG[fontconfig] = "-fontconfig,-no-fontconfig,fontconfig" PACKAGECONFIG[gtk] = "-gtk,-no-gtk,gtk+3" @@ -133,6 +146,7 @@ PACKAGECONFIG[libinput] = "-libinput,-no-libinput,libinput" PACKAGECONFIG[journald] = "-journald,-no-journald,systemd" # needs kernel 3.17+ PACKAGECONFIG[getentropy] = "-feature-getentropy,-no-feature-getentropy," +PACKAGECONFIG[vulkan] = "-vulkan,-no-vulkan,vulkan-headers" QT_CONFIG_FLAGS_GOLD = "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', '-use-gold-linker', '-no-use-gold-linker', d)}" # workaround for gold bug: @@ -154,8 +168,8 @@ QT_CONFIG_FLAGS_GOLD = "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', '- # OE @ ~/build/oe-core/tmp-glibc/work/i586-oe-linux/qtbase/5.9.0+gitAUTOINC+f6b36eaafe-r0/build/tests/auto/corelib/kernel/qmetatype $ i586-oe-linux-g++ -m32 -march=i586 --sysroot=/OE/build/oe-core/tmp-glibc/work/i586-oe-linux/qtbase/5.9.0+gitAUTOINC+f6b36eaafe-r0/recipe-sysroot -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed --sysroot=/OE/build/oe-core/tmp-glibc/work/i586-oe-linux/qtbase/5.9.0+gitAUTOINC+f6b36eaafe-r0/recipe-sysroot -Wl,-O1 -fuse-ld=bfd -Wl,--enable-new-dtags -o tst_qmetatype .obj/tst_qmetatype.o -L/OE/build/oe-core/tmp-glibc/work/i586-oe-linux/qtbase/5.9.0+gitAUTOINC+f6b36eaafe-r0/build/lib -lQt5Test -lQt5Core -lpthread # # http://errors.yoctoproject.org/Errors/Details/150329/ -# QT_CONFIG_FLAGS_GOLD_x86 = "-no-use-gold-linker" -# LDFLAGS_append_x86 = "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', ' -fuse-ld=bfd ', '', d)}" +# QT_CONFIG_FLAGS_GOLD:x86 = "-no-use-gold-linker" +# LDFLAGS:append:x86 = "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', ' -fuse-ld=bfd ', '', d)}" # since the upgrade to 5.12.2 this got worse, with gold enabled configure will no longer pass the test for xlib # because with full paths to libraries since qtbase commit 521a85395 it fails to link with @@ -165,7 +179,9 @@ QT_CONFIG_FLAGS_GOLD = "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', '- # resulting in do_configure failure: # http://errors.yoctoproject.org/Errors/Details/237856/ QT_CONFIG_FLAGS_GOLD = "-no-use-gold-linker" -LDFLAGS_append = "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', ' -fuse-ld=bfd ', '', d)}" +LDFLAGS:append = "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', ' -fuse-ld=bfd ', '', d)}" + +LDFLAGS:append:riscv64 = " -pthread" QT_CONFIG_FLAGS += " \ ${QT_CONFIG_FLAGS_GOLD} \ @@ -176,9 +192,9 @@ QT_CONFIG_FLAGS += " \ ${PACKAGECONFIG_CONFARGS} \ " -export CC_host_toolchain-clang = "clang" -export CXX_host_toolchain-clang = "clang++" -export LD_host_toolchain-clang = "clang++" +export CC_host:toolchain-clang = "clang" +export CXX_host:toolchain-clang = "clang++" +export LD_host:toolchain-clang = "clang++" export CC_host ?= "gcc" export CXX_host ?= "g++" export LD_host ?= "g++" @@ -187,13 +203,13 @@ export LD_host ?= "g++" # since we cannot set empty set filename to a not existent file deltask generate_qt_config_file -XPLATFORM_toolchain-clang = "linux-oe-clang" +XPLATFORM:toolchain-clang = "linux-oe-clang" XPLATFORM ?= "linux-oe-g++" # Causes qdrawhelper.s: Error: unaligned opcodes detected in executable segment # when building qtbase/5.6.3+gitAUTOINC+e6f8b072d2-r0/git/src/gui/painting/qdrawhelper.cpp -ARM_INSTRUCTION_SET_armv4 = "arm" -ARM_INSTRUCTION_SET_armv5 = "arm" +ARM_INSTRUCTION_SET:armv4 = "arm" +ARM_INSTRUCTION_SET:armv5 = "arm" do_configure() { # Regenerate header files when they are included in source tarball @@ -231,7 +247,7 @@ do_configure() { ${QT_CONFIG_FLAGS} } -do_install_append() { +do_install:append() { # Avoid qmake error "Cannot read [...]/usr/lib/qt5/mkspecs/oe-device-extra.pri: No such file or directory" touch ${D}/${OE_QMAKE_PATH_QT_ARCHDATA}/mkspecs/oe-device-extra.pri @@ -245,16 +261,18 @@ do_install_append() { echo "" >> $conf echo "# default compiler options which can be overwritten from the environment" >> $conf - echo "isEmpty(QMAKE_AR): QMAKE_AR = ${OE_QMAKE_AR} cqs" >> $conf + echo "count(QMAKE_AR, 1): QMAKE_AR = ${OE_QMAKE_AR} cqs" >> $conf echo "isEmpty(QMAKE_CC): QMAKE_CC = $OE_QMAKE_CC_NO_SYSROOT" >> $conf - echo "isEmpty(QMAKE_CFLAGS): QMAKE_CFLAGS = ${OE_QMAKE_CFLAGS}" >> $conf echo "isEmpty(QMAKE_CXX): QMAKE_CXX = $OE_QMAKE_CXX_NO_SYSROOT" >> $conf - echo "isEmpty(QMAKE_CXXFLAGS): QMAKE_CXXFLAGS = ${OE_QMAKE_CXXFLAGS}" >> $conf + # OE_QMAKE_CFLAGS and OE_QMAKE_CXXFLAGS contain path of the build host, which is not useful for the target. + echo "isEmpty(QMAKE_CFLAGS): QMAKE_CFLAGS = ${OE_QMAKE_CFLAGS}" | sed -e 's/-fdebug-prefix-map=[^ ]*//g' | sed -e 's/-fmacro-prefix-map=[^ ]*//g' >> $conf + echo "isEmpty(QMAKE_CXXFLAGS): QMAKE_CXXFLAGS = ${OE_QMAKE_CXXFLAGS}" | sed -e 's/-fdebug-prefix-map=[^ ]*//g' | sed -e 's/-fmacro-prefix-map=[^ ]*//g' >> $conf echo "isEmpty(QMAKE_LINK): QMAKE_LINK = $OE_QMAKE_LINK_NO_SYSROOT" >> $conf echo "isEmpty(QMAKE_LINK_SHLIB): QMAKE_LINK_SHLIB = $OE_QMAKE_LINK_NO_SYSROOT" >> $conf echo "isEmpty(QMAKE_LINK_C): QMAKE_LINK_C = $OE_QMAKE_LINK_NO_SYSROOT" >> $conf echo "isEmpty(QMAKE_LINK_C_SHLIB): QMAKE_LINK_C_SHLIB = $OE_QMAKE_LINK_NO_SYSROOT" >> $conf echo "isEmpty(QMAKE_LFLAGS): QMAKE_LFLAGS = ${OE_QMAKE_LDFLAGS}" >> $conf + echo "isEmpty(QMAKE_OBJCOPY): QMAKE_OBJCOPY = ${TARGET_PREFIX}objcopy" >> $conf echo "isEmpty(QMAKE_STRIP): QMAKE_STRIP = ${TARGET_PREFIX}strip" >> $conf echo "isEmpty(CC_host): CC_host = ${CC_host}" >> $conf echo "isEmpty(CXX_host): CXX_host = ${CXX_host}" >> $conf @@ -262,14 +280,32 @@ do_install_append() { generate_target_qt_config_file ${D}${OE_QMAKE_PATH_BINS}/qt.conf - # Fix up absolute paths in scripts - sed -i -e '1s,#!/usr/bin/python,#! ${USRBINPATH}/env python,' \ + # Fix up absolute paths in scripts and use python3 instead of python + sed -i -e '1s,#!/usr/bin/python$,#! ${USRBINPATH}/env python3,' \ ${D}${OE_QMAKE_PATH_QT_ARCHDATA}/mkspecs/features/uikit/devices.py } # mkspecs have mac specific scripts that depend on perl and bash -INSANE_SKIP_${PN}-mkspecs += "file-rdeps" +INSANE_SKIP:${PN}-mkspecs += "file-rdeps" + +RRECOMMENDS:${PN}-plugins += "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'libx11-locale', '', d)}" -RRECOMMENDS_${PN}-plugins += "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'libx11-locale', '', d)}" +TARGET_MKSPEC ?= "linux-g++" + +# use clean mkspecs on target +pkg_postinst:${PN}-tools () { +sed -i \ + -e 's:HostSpec =.*:HostSpec = ${TARGET_MKSPEC}:g' \ + -e 's:TargetSpec =.*:TargetSpec = ${TARGET_MKSPEC}:g' \ + $D${OE_QMAKE_PATH_BINS}/qt.conf +} + +pkg_postinst:${PN}-mkspecs () { +sed -i 's: cross_compile : :g' $D${OE_QMAKE_PATH_ARCHDATA}/mkspecs/qconfig.pri +sed -i \ + -e 's: cross_compile : :g' \ + -e 's:HOST_QT_TOOLS =.*::g' \ + $D${OE_QMAKE_PATH_ARCHDATA}/mkspecs/qmodule.pri +} -SRCREV = "780137d585344bf9de906a285a50498104c0c66e" +SRCREV = "8a25db3204f39a228d14148d9cdf414393d239a5" |