LICENSE = "GFDL-1.3 & BSD-3-Clause & ( GPL-3.0-only & The-Qt-Company-GPL-Exception-1.0 ) & ( 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;md5=485e1d58b313def058a0d72598aa6efe \ " inherit qt6-cmake include recipes-qt/qt6/qt6-git.inc include recipes-qt/qt6/qt6-lts.inc include recipes-qt/qt6/qt6.inc include recipes-qt/qt6/conan.inc SRC_URI += "\ file://0001-Add-linux-oe-g-platform.patch \ file://0002-qlibraryinfo-allow-to-set-qt.conf-from-the-outside-u.patch \ file://0003-tests-disable-failing-tests.patch \ file://0004-Fix-qt.toolchain.cmake-for-SDK-use.patch \ file://0005-testlib-don-t-track-the-build-or-source-directories.patch \ " DEPENDS += "\ freetype \ pcre2 \ " DEPENDS:remove:class-native = "qtbase-native" RDEPENDS_${PN}:remove:class-native = "libssl-native" RRECOMMENDS:${PN}:append:class-target = " locale-base-c" PACKAGECONFIG:class-native ?= "\ gui widgets jpeg png dbus no-opengl openssl zlib \ ${@bb.utils.contains('BBFILE_COLLECTIONS', 'openembedded-layer', 'zstd', '', d)} \ " PACKAGECONFIG:class-nativesdk ?= "${PACKAGECONFIG:class-native}" PACKAGECONFIG ?= "\ ${PACKAGECONFIG_DEFAULT} \ ${PACKAGECONFIG_GRAPHICS} \ ${PACKAGECONFIG_X11} \ ${PACKAGECONFIG_KDE} \ ${PACKAGECONFIG_FONTS} \ ${PACKAGECONFIG_SYSTEM} \ ${PACKAGECONFIG_DISTRO} \ " PACKAGECONFIG_GRAPHICS ?= "\ ${@bb.utils.filter('DISTRO_FEATURES', 'vulkan', d)} \ ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', \ bb.utils.contains('DISTRO_FEATURES', 'x11', 'gl', 'gles2 eglfs', d), 'no-opengl linuxfb', d)} \ ${@bb.utils.contains('DISTRO_FEATURES', 'directfb', 'directfb', '', d)} \ " PACKAGECONFIG_X11 ?= "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'xcb xkbcommon glib', '', d)}" PACKAGECONFIG_KDE ?= "${@bb.utils.contains('DISTRO_FEATURES', 'kde', 'sm cups kms gbm sql-sqlite', '', d)}" PACKAGECONFIG_FONTS ?= "" PACKAGECONFIG_SYSTEM ?= "" PACKAGECONFIG_DISTRO ?= "" PACKAGECONFIG_DEFAULT ?= "accessibility dbus udev gui widgets icu openssl \ jpeg png dbus libinput fontconfig harfbuzz zlib \ ${@bb.utils.contains('SELECTED_OPTIMIZATION', '-Os', 'optimize-size ltcg', '', d)} \ ${@bb.utils.contains('BBFILE_COLLECTIONS', 'openembedded-layer', 'zstd', '', d)} \ " PACKAGECONFIG:remove:mingw32 = "openssl" # 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', 'x11', 'xcb', \ bb.utils.contains('PACKAGECONFIG', 'gles2', 'eglfs', 'linuxfb', 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,-DFEATURE_developer_build=OFF" 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" # gui PACKAGECONFIG[gui] = "-DFEATURE_gui=ON,-DFEATURE_gui=OFF" PACKAGECONFIG[accessibility] = "-DFEATURE_accessibility=ON,-DFEATURE_accessibility=OFF" 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" 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 virtual/egl" 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_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[xcb] = "-DFEATURE_xcb=ON,-DFEATURE_xcb=OFF,libxcb xcb-util-wm xcb-util-image xcb-util-keysyms xcb-util-renderutil" 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 \ -DQT_QPA_DEFAULT_PLATFORM=${QT_QPA_DEFAULT_PLATFORM} \ ${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', '-DFEATURE_use_gold_linker=ON', '-DFEATURE_use_bfd_linker=ON', d)} \ " EXTRA_OECMAKE:append:mingw32 = "\ -DQT_GENERATE_WRAPPER_SCRIPTS_FOR_ALL_HOSTS=ON \ " SYSROOT_DIRS += "${QT6_INSTALL_MKSPECSDIR}" do_install:append() { sed -i ${D}${QT6_INSTALL_LIBDIR}/cmake/Qt6BuildInternals/QtBuildInternalsExtra.cmake \ -e '/QT_SOURCE_TREE/,+2d' # 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 # 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 cat > ${D}${datadir}/cmake/OEToolchainConfig.cmake.d/OEQt6Toolchain.cmake <> ${D}${QT6_INSTALL_MKSPECSDIR}/linux-oe-g++/qmake.conf <