aboutsummaryrefslogtreecommitdiffstats
path: root/recipes-qt/qt5/qtbase_git.bb
diff options
context:
space:
mode:
Diffstat (limited to 'recipes-qt/qt5/qtbase_git.bb')
-rw-r--r--recipes-qt/qt5/qtbase_git.bb102
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"