meta-qt6/recipes-qt/qt6/qtbase_git.bb
Samuli Piippo 53005efcfc qtbase: disable ctf temporarily
Enabling ctf causes builds to fail, disable it temporarily.

Task-number: QTBUG-140443
Change-Id: Id32d1b65d76791fba29e419f6cb95e06acb551e7
Reviewed-by: Mikko Gronoff <mikko.gronoff@qt.io>
2025-09-25 12:09:44 +00:00

277 lines
12 KiB
BlitzBasic

LICENSE = "(The-Qt-Company-Commercial | (GPL-3.0-only & Qt-GPL-exception-1.0) & (LGPL-3.0-only | GPL-2.0-only | GPL-3.0-only) \
& GFDL-1.3-no-invariants-only) & Apache-2.0 & BSD-3-Clause & BSL-1.0 & LGPL-2.1-or-later & HPND & MIT"
LIC_FILES_CHKSUM = " \
file://LICENSES/Apache-2.0.txt;md5=b4c615f64dff32f71eeed614d13dfd4c \
file://LICENSES/BSD-3-Clause.txt;md5=cb40fa7520502d8c7a3aea47cae1316c \
file://LICENSES/BSL-1.0.txt;md5=8c92b4c255bdcce2989707d5b8a4d302 \
file://LICENSES/GFDL-1.3-no-invariants-only.txt;md5=a22d0be1ce2284b67950a4d1673dd1b0 \
file://LICENSES/GPL-2.0-only.txt;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
file://LICENSES/GPL-3.0-only.txt;md5=d32239bcb673463ab874e80d47fae504 \
file://LICENSES/HPND.txt;md5=72f417bf093b8008321cb594117034ec \
file://LICENSES/LGPL-2.1-or-later.txt;md5=2a4f4fd2128ea2f65047ee63fbca9f68 \
file://LICENSES/LGPL-3.0-only.txt;md5=e6a600fd5e1d9cbde2d983680233ad02 \
file://LICENSES/LicenseRef-Qt-Commercial.txt;md5=40a1036f91cefc0e3fabad241fb5f187 \
file://LICENSES/MIT.txt;md5=3605d54ecceddcd50962eb89318779ec \
file://LICENSES/Qt-GPL-exception-1.0.txt;md5=9a13522cd91a88fba784baf16ea66af8 \
"
inherit qt6-cmake
include recipes-qt/qt6/qt6-git.inc
include recipes-qt/qt6/qt6.inc
SRC_URI += "\
file://0001-Add-linux-oe-g-platform.patch \
file://0004-Fix-qt.toolchain.cmake-for-SDK-use.patch \
file://0005-testlib-don-t-track-the-build-or-source-directories.patch \
"
SRC_URI:append:class-native = "\
file://0002-qlibraryinfo-allow-to-set-qt.conf-from-the-outside-u.patch \
"
DEPENDS += "\
patchelf-native \
freetype \
pcre2 \
"
DEPENDS:remove:class-native = "qtbase-native"
RDEPENDS_${PN}:remove:class-native = "libssl-native"
RRECOMMENDS:${PN}:append:libc-glibc:class-target = " locale-base-c"
RRECOMMENDS:${PN}-ptest:append = " tzdata"
PACKAGECONFIG:class-native ?= "\
gui widgets jpeg png dbus no-opengl openssl zlib zstd \
${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'qtwaylandscanner', '', d)} \
"
PACKAGECONFIG:class-nativesdk ?= "${PACKAGECONFIG:class-native}"
PACKAGECONFIG ?= "\
${PACKAGECONFIG_DEFAULT} \
${PACKAGECONFIG_GRAPHICS} \
${PACKAGECONFIG_FONTS} \
${PACKAGECONFIG_SYSTEM} \
${PACKAGECONFIG_DISTRO} \
"
PACKAGECONFIG_GRAPHICS ?= "\
${@bb.utils.filter('DISTRO_FEATURES', 'vulkan', d)} \
${@bb.utils.filter('DISTRO_FEATURES', 'wayland', d)} \
${@bb.utils.contains('DISTRO_FEATURES', 'opengl', \
bb.utils.contains('DISTRO_FEATURES', 'wayland', 'kms gbm gles2 eglfs', \
bb.utils.contains('DISTRO_FEATURES', 'x11', 'gl', \
'kms gbm gles2 eglfs', d), d), \
'no-opengl', d)} \
${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'xcb', '', d)} \
linuxfb \
"
PACKAGECONFIG_FONTS ?= ""
PACKAGECONFIG_SYSTEM ?= ""
PACKAGECONFIG_DISTRO ?= ""
PACKAGECONFIG_DEFAULT ?= "\
accessibility \
${@bb.utils.contains_any('DISTRO_FEATURES', 'x11 wayland', 'accessibility-atspi-bridge', '', d)} \
dbus \
fontconfig \
glib \
gui \
harfbuzz \
icu \
jpeg \
libinput \
${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', 'use-gold-linker', '', d)} \
${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-lld', 'use-lld-linker', '', d)} \
openssl \
png \
udev \
widgets \
xkbcommon \
zlib \
zstd \
${@bb.utils.contains('SELECTED_OPTIMIZATION', '-Os', 'optimize-size ltcg', '', d)} \
${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'qtwaylandscanner', '', d)} \
"
PACKAGECONFIG:remove:mingw32 = "openssl"
# QTBUG-140443
PACKAGECONFIG:remove = "ctf"
# Build type: Debug, Release, MinSizeRel, RelWithDebInfo
BUILD_TYPE ?= "Release"
# OpenSSL linking mode: runtime, linked
OPENSSL_LINKING_MODE ?= "runtime"
# Default platform plugin
QT_QPA_DEFAULT_PLATFORM ?= "\
${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland-egl', \
bb.utils.contains('DISTRO_FEATURES', 'x11', 'xcb', \
bb.utils.contains('PACKAGECONFIG', 'eglfs', 'eglfs', \
'linuxfb', d), d), d)} \
"
PACKAGECONFIG[ltcg] = "-DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON,-DCMAKE_INTERPROCEDURAL_OPTIMIZATION=OFF"
PACKAGECONFIG[optimize-size] = "-DFEATURE_optimize_size=ON,-DFEATURE_optimize_size=OFF"
PACKAGECONFIG[static] = "-DBUILD_SHARED_LIBS=OFF,-DBUILD_SHARED_LIBS=ON"
PACKAGECONFIG[developer-build] = "-DFEATURE_developer_build=ON -DQT_BUILD_TESTS=OFF -DWARNINGS_ARE_ERRORS=OFF,-DFEATURE_developer_build=OFF"
PACKAGECONFIG[use-gold-linker] = "-DFEATURE_use_gold_linker=ON"
PACKAGECONFIG[use-bfd-linker] = "-DFEATURE_use_bfd_linker=ON"
PACKAGECONFIG[use-lld-linker] = "-DFEATURE_use_lld_linker=ON"
PACKAGECONFIG[cups] = "-DFEATURE_cups=ON,-DFEATURE_cups=OFF,cups"
PACKAGECONFIG[dbus] = "-DFEATURE_dbus=ON,-DFEATURE_dbus=OFF,dbus"
PACKAGECONFIG[udev] = "-DFEATURE_libudev=ON,-DFEATURE_libudev=OFF,udev"
PACKAGECONFIG[zlib] = "-DFEATURE_system_zlib=ON,-DFEATURE_system_zlib=OFF,zlib"
PACKAGECONFIG[zstd] = "-DFEATURE_zstd=ON,-DFEATURE_zstd=OFF,zstd"
# corelib
PACKAGECONFIG[glib] = "-DFEATURE_glib=ON,-DFEATURE_glib=OFF,glib-2.0"
PACKAGECONFIG[icu] = "-DFEATURE_icu=ON,-DFEATURE_icu=OFF,icu"
PACKAGECONFIG[journald] = "-DFEATURE_journald=ON,-DFEATURE_journald=OFF,systemd"
PACKAGECONFIG[lttng] = "-DFEATURE_lttng=ON,-DFEATURE_lttng=OFF,lttng-ust"
PACKAGECONFIG[ctf] = "-DFEATURE_ctf=ON,-DFEATURE_ctf=OFF"
# gui
PACKAGECONFIG[gui] = "-DFEATURE_gui=ON,-DFEATURE_gui=OFF"
PACKAGECONFIG[accessibility] = "-DFEATURE_accessibility=ON,-DFEATURE_accessibility=OFF"
PACKAGECONFIG[accessibility-atspi-bridge] = "-DFEATURE_accessibility_atspi_bridge=ON,-DFEATURE_accessibility_atspi_bridge=OFF,at-spi2-core"
PACKAGECONFIG[directfb] = "-DFEATURE_directfb=ON,-DFEATURE_directfb=OFF,directfb"
PACKAGECONFIG[fontconfig] = "-DFEATURE_fontconfig=ON,-DFEATURE_fontconfig=OFF,fontconfig"
PACKAGECONFIG[gbm] = "-DFEATURE_gbm=ON,-DFEATURE_gbm=OFF,virtual/libgbm"
PACKAGECONFIG[gl] = "-DFEATURE_opengl_desktop=ON,-DFEATURE_opengl_desktop=OFF,virtual/libgl"
PACKAGECONFIG[gles2] = "-DFEATURE_opengles2=ON,-DFEATURE_opengles2=OFF,virtual/libgles2 virtual/egl"
PACKAGECONFIG[eglfs] = "-DFEATURE_eglfs=ON,-DFEATURE_eglfs=OFF,virtual/egl"
PACKAGECONFIG[eglfs-egldevice] = "-DFEATURE_eglfs_egldevice=ON,-DFEATURE_eglfs_egldevice=OFF"
PACKAGECONFIG[harfbuzz] = "-DFEATURE_harfbuzz=ON,-DFEATURE_harfbuzz=OFF,harfbuzz"
PACKAGECONFIG[jpeg] = "-DFEATURE_jpeg=ON,-DFEATURE_jpeg=OFF,jpeg"
PACKAGECONFIG[kms] = "-DFEATURE_kms=ON,-DFEATURE_kms=OFF,drm"
PACKAGECONFIG[libinput] = "-DFEATURE_libinput=ON,-DFEATURE_libinput=OFF,libinput"
PACKAGECONFIG[linuxfb] = "-DFEATURE_linuxfb=ON,-DFEATURE_linuxfb=OFF"
PACKAGECONFIG[mtdev] = "-DFEATURE_mtdev=ON,-DFEATURE_mtdev=OFF,mtdev"
PACKAGECONFIG[no-opengl] = "-DINPUT_opengl=no"
PACKAGECONFIG[png] = "-DFEATURE_system_png=ON,-DFEATURE_png=OFF,libpng"
PACKAGECONFIG[tslib] = "-DFEATURE_tslib=ON,-DFEATURE_tslib=OFF,tslib"
PACKAGECONFIG[vulkan] = "-DFEATURE_vulkan=ON,-DFEATURE_vulkan=OFF,vulkan-headers,vulkan-loader"
PACKAGECONFIG[wayland] = "-DFEATURE_wayland=ON,-DFEATURE_wayland=OFF,wayland wayland-native"
PACKAGECONFIG[qtwaylandscanner] = "-DFEATURE_qtwaylandscanner=ON,-DFEATURE_qtwaylandscanner=OFF,wayland wayland-native"
PACKAGECONFIG[xcb] = "-DFEATURE_xcb=ON,-DFEATURE_xcb=OFF,libxcb xcb-util-wm xcb-util-image xcb-util-keysyms xcb-util-renderutil xcb-util-cursor"
PACKAGECONFIG[xkbcommon] = "-DFEATURE_xkbcommon=ON,-DFEATURE_xkbcommon=OFF,libxkbcommon,xkeyboard-config"
# widgets
PACKAGECONFIG[widgets] = "-DFEATURE_widgets=ON,-DFEATURE_widgets=OFF"
PACKAGECONFIG[gtk] = "-DFEATURE_gtk3=ON,-DFEATURE_gtk3=OFF,gtk+3 at-spi2-core"
# network
PACKAGECONFIG[brotli] = "-DFEATURE_brotli=ON,-DFEATURE_brotli=OFF,brotli"
PACKAGECONFIG[gssapi] = "-DFEATURE_gssapi=ON,-DFEATURE_gssapi=OFF,krb5"
PACKAGECONFIG[libproxy] = "-DFEATURE_libproxy=ON,-DFEATURE_libproxy=OFF,libproxy"
PACKAGECONFIG[openssl] = "-DFEATURE_openssl_${OPENSSL_LINKING_MODE}=ON,-DFEATURE_openssl=OFF,openssl,libssl"
# sqldrivers
PACKAGECONFIG[sql-mysql] = "-DFEATURE_sql_mysql=ON,-DFEATURE_sql_mysql=OFF,mysql5"
PACKAGECONFIG[sql-odbc] = "-DFEATURE_sql_odbc=ON,-DFEATURE_sql_odbc=OFF,unixodbc"
PACKAGECONFIG[sql-psql] = "-DFEATURE_sql_psql=ON,-DFEATURE_sql_psql=OFF,postgresql"
PACKAGECONFIG[sql-sqlite] = "-DFEATURE_system_sqlite=ON,-DFEATURE_sql_sqlite=OFF,sqlite3"
EXTRA_OECMAKE += "\
-DCMAKE_BUILD_TYPE=${BUILD_TYPE} \
-DQT_EDITION=${QT_EDITION} \
-DQT_AVOID_CMAKE_ARCHIVING_API=ON \
"
EXTRA_OECMAKE:append:class-target = "\
-DFEATURE_rpath=OFF \
-DFEATURE_relocatable=OFF \
-DQT_QPA_DEFAULT_PLATFORM=${QT_QPA_DEFAULT_PLATFORM} \
-DQT_NO_GENERATE_QMAKE_WRAPPER_FOR_TARGET=ON \
"
EXTRA_OECMAKE:append:mingw32 = "\
-DQT_GENERATE_WRAPPER_SCRIPTS_FOR_ALL_HOSTS=ON \
-DFEATURE_stack_protector=OFF \
-DFEATURE_dnslookup=OFF \
"
SYSROOT_DIRS += "${QT6_INSTALL_MKSPECSDIR}"
do_install:append() {
sed -i ${D}${QT6_INSTALL_LIBDIR}/cmake/Qt6BuildInternals/QtBuildInternalsExtra.cmake \
-e '/QT_SOURCE_TREE/,+2d'
sed -i ${D}${QT6_INSTALL_LIBDIR}/cmake/Qt6/Qt6Dependencies.cmake \
-e '/set(__qt_platform_initial_qt_host/d'
# remove mac and android specific scripts that depend on perl and bash
# to avoid file-rdeps QA Issue.
rm -f ${D}${QT6_INSTALL_LIBEXECDIR}/android_emulator_launcher.sh
rm -f ${D}${QT6_INSTALL_MKSPECSDIR}/features/uikit/devices.py
rm -f ${D}${QT6_INSTALL_MKSPECSDIR}/features/uikit/device_destinations.sh
rm -f ${D}${QT6_INSTALL_MKSPECSDIR}/features/data/mac/objc_namespace.sh
if [ -e ${D}${QT6_INSTALL_EXAMPLESDIR}/corelib/serialization/cbordump/cbortag.py ]; then
sed -i ${D}${QT6_INSTALL_EXAMPLESDIR}/corelib/serialization/cbordump/cbortag.py \
-e 's|/bin/env|/usr/bin/env|'
fi
# remove unneeded files that contains reference to TMPDIR [buildpaths]
rm -f ${D}${QT6_INSTALL_BINDIR}/host-*
rm -f ${D}${QT6_INSTALL_BINDIR}/target_qt.conf
install -d ${D}${datadir}/cmake/OEToolchainConfig.cmake.d
RELPATH=${@os.path.relpath(d.getVar('prefix'), d.getVar('datadir') + '/cmake/OEToolchainConfig.cmake.d')}
cat > ${D}${datadir}/cmake/OEToolchainConfig.cmake.d/OEQt6Toolchain.cmake <<EOF
get_filename_component(QT_HOST_PATH "\${CMAKE_CURRENT_LIST_DIR}/$RELPATH" ABSOLUTE CACHE)
set(QT_BUILD_INTERNALS_NO_FORCE_SET_INSTALL_PREFIX ON CACHE BOOL "")
EOF
RELPATH="${@os.path.relpath(d.getVar('bindir'), d.getVar('QT6_INSTALL_BINDIR'))}"
sed -i ${D}${QT6_INSTALL_BINDIR}/* \
-e "s|cmake_path=${RECIPE_SYSROOT_NATIVE}.*cmake|cmake_path=%script_dir_path%/$RELPATH/cmake.exe|" \
-e "s|${RECIPE_SYSROOT_NATIVE}.*cmake|\$script_dir_path/$RELPATH/cmake|"
RELPATH="${@os.path.relpath(d.getVar('bindir'), d.getVar('QT6_INSTALL_LIBEXECDIR'))}"
sed -i ${D}${QT6_INSTALL_LIBEXECDIR}/* \
-e "s|cmake_path=${RECIPE_SYSROOT_NATIVE}.*cmake|cmake_path=%script_dir_path%/$RELPATH/cmake.exe|" \
-e "s|${RECIPE_SYSROOT_NATIVE}.*cmake|\$script_dir_path/$RELPATH/cmake|"
RELPATH=${@os.path.relpath(d.getVar('prefix') + '/share/cmake/Qt6Toolchain.cmake', d.getVar('QT6_INSTALL_LIBDIR') + '/cmake/Qt6')}
sed -i ${D}${QT6_INSTALL_LIBDIR}/cmake/Qt6/qt.toolchain.cmake \
-e "s|/.*/toolchain.cmake|\${CMAKE_CURRENT_LIST_DIR}/$RELPATH|"
}
do_install:append:class-target() {
sed >> ${D}${QT6_INSTALL_MKSPECSDIR}/linux-oe-g++/qmake.conf <<EOF \
-e 's: ${lcl_maybe_fortify}: :' \
-e 's:${DEBUG_PREFIX_MAP}::' \
-e 's:${RECIPE_SYSROOT}:$$[QT_SYSROOT]:' \
-e 's:${TARGET_PREFIX}:$$[QT_HOST_PREFIX]${bindir}/${TARGET_SYS}/${TARGET_PREFIX}:'
isEmpty(QMAKE_CC): {
QMAKE_AR = ${AR} cqs
QMAKE_AR_LTCG = ${HOST_PREFIX}gcc-ar cqs
QMAKE_STRIP = ${STRIP}
QMAKE_OBJCOPY = ${OBJCOPY}
QMAKE_CC = ${HOST_PREFIX}gcc
QMAKE_CFLAGS += ${TARGET_CC_ARCH}${TOOLCHAIN_OPTIONS}
QMAKE_CXX = ${HOST_PREFIX}g++
QMAKE_CXXFLAGS += ${TARGET_CC_ARCH}${TOOLCHAIN_OPTIONS}
QMAKE_LINK = ${HOST_PREFIX}g++
QMAKE_LFLAGS += ${TARGET_CC_ARCH}${TOOLCHAIN_OPTIONS} ${TARGET_LDFLAGS}
}
EOF
}
FILES:${PN}-dev += "\
${datadir}/qt6/wayland \
${datadir}/qt6/json_schema \
"
INSANE_SKIP:${PN}-ptest += "arch"
INHIBIT_PACKAGE_STRIP_FILES = "\
${PKGD}${PTEST_PATH}/tests/auto/corelib/plugin/qpluginloader/elftest/corrupt2.elf64.so \
${PKGD}${PTEST_PATH}/tests/auto/corelib/plugin/qpluginloader/elftest/corrupt3.elf64.so \
${PKGD}${PTEST_PATH}/tests/auto/corelib/plugin/qpluginloader/elftest/debugobj.so \
"
BBCLASSEXTEND = "native nativesdk"