Complete Yocto mirror with license table for TQMa6UL (2038-compliance)

- 264 license table entries with exact download URLs (224/264 resolved)
- Complete sources/ directory with all BitBake recipes
- Build configuration: tqma6ul-multi-mba6ulx, spaetzle (musl)
- Full traceability for Softwarefreigabeantrag
- GCC 13.4.0, Linux 6.6.102, U-Boot 2023.04, musl 1.2.4
- License distribution: GPL-2.0 (24), MIT (23), GPL-2.0+ (18), BSD-3 (16)
This commit is contained in:
Siggi (OpenClaw Agent)
2026-03-01 20:58:18 +00:00
commit 16accb6b24
15086 changed files with 1292356 additions and 0 deletions

View File

@@ -0,0 +1,17 @@
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.

View File

@@ -0,0 +1,94 @@
Qt6 OpenEmbedded/Yocto Project layer
====================================
This layer depends on:
URI: https://git.openembedded.org/openembedded-core/
URI: https://git.openembedded.org/meta-openembedded/
and optionally:
URI https://github.com/kraj/meta-clang
Yocto version support
---------------------
The branching of meta-qt6 layer follows [Qt branching scheme](https://wiki.qt.io/Branch_Guidelines),
that is `dev` for the development branch, `6.x` for minor stabilization branches,
`6.x.y` for the release branches and `lts-6.x.y` for commercial LTS releases.
Each Qt release is tagged either as `v6.x.y` or `v6.x.y-lts`
Following table shows the Yocto releases which are used to test each
Qt version (x) and any additional Yocto releases that are stated in
the LAYERSERIES_COMPAT (c).
| Yocto \ Qt | dev | 6.8 | 6.7 | 6.6 | 6.5 | 6.4 | 6.3 | 6.2 |
|:---------- |:---:|:----:|:----:|:---:|:---:|:---:|:---:|:---:|
| walnascar | x | x | | | | | | |
| styhead | x | x | x | | | | | |
| scarthgap | x | x | x | c | x | | | |
| nanbield | c | c | x | c | c | | | |
| mickledore | c | c | c | c | c | c | | |
| langdale | c | c | c | c | c | c | | |
| kirkstone | x | x | x | c | x | c | c | c |
| honister | | | | c | c | c | c | c |
| hardknott | | | | c | c | c | c | c |
| gatesgarth | | | | c | c | c | c | c |
| dunfell | | | | c | x | c | c | c |
| | | | | | | | | |
| | dev |stable|stable| EOL | LTS | EOL | EOL | EOL |
Detailed status of supported Qt versions can be found from
https://doc.qt.io/qt-6/supported-platforms.html#supported-qt-versions
Commercial Qt
-------------
Qt is dual-licensed under commercial and open source licenses.
The license can be selected using the `QT_EDITION` variable. `commercial` and
`opensource` are valid values. The default value is `opensource`.
For commercial Qt users, the layer provides additional support with LTS
(Long Term Support) releases for selected Qt versions and additional
Qt modules licensed as commercial-only.
The LTS releases are available in branches named `lts-6.x`. The source code
for the LTS releases and the commercial Qt modules are only available for
commercial Qt license holders. They can only be built and used if you have
a commercial Qt license and you have set up SSH access to Qt Gerrit (see links below).
The commercial Qt modules are included in the build if the `QT_COMMERCIAL_MODULES`
variable is set to `1` and you are using a commercial edition of Qt.
QtMultimedia
------------
Qt Multimedia now prefers [FFmpeg][1] as the multimedia backend instead of GStreamer.
FFmpeg recipe, however, is flagged with LICENSE_FLAGS = "commercial", which means
that user must accept the license before FFmpeg can be used in the build. If user
accepts the license using LICENSE_FLAGS_ACCEPTED = 'commercial_ffmpeg', the FFmpeg
support is enabled in Qt Multimedia. If user doesn't accept the license,
Qt Multimedia only uses GStreamer.
[1]: https://doc.qt.io/qt-6/qtmultimedia-index.html#ffmpeg-as-the-default-backend
Contributing
------------
To contribute to this layer submit the patches for review using
[Qt Gerrit](https://codereview.qt-project.org).
More information about Qt Gerrit and how to use it:
- [Gerrit_Introduction](https://wiki.qt.io/Gerrit_Introduction)
- [Setting_up_Gerrit](https://wiki.qt.io/Setting_up_Gerrit)
Report bugs on [Qt Bug Tracker](https://bugreports.qt.io) using
`Yocto: meta-qt6 layer` component.
Layer maintainers
-----------------
- Samuli Piippo <samuli.piippo@qt.io>

View File

@@ -0,0 +1,11 @@
# Disable compilation steps for the recipe
# Useful for passing CI builds when a Qt module does not compile with updated qtbase or qtdeclarative
# Should be used only with the addon modules not officially supported in the Qt releases
do_configure[noexec] = "1"
do_compile[noexec] = "1"
do_install[noexec] = "1"
python () {
bb.warn("%s is currenly not supported, build produces empty packages!" % d.getVar("BPN"))
}

View File

@@ -0,0 +1,5 @@
inherit populate_sdk_qt6_base
# include all available modules
TOOLCHAIN_HOST_TASK:append = " nativesdk-packagegroup-qt6-toolchain-host"
TOOLCHAIN_TARGET_TASK:append = " packagegroup-qt6-modules"

View File

@@ -0,0 +1,146 @@
inherit qt6-paths
SDKIMAGE_FEATURES:append = " staticdev-pkgs"
SDK_POSTPROCESS_COMMAND:prepend = "create_qt6_sdk_files;"
EXE_EXT = ""
EXE_EXT:sdkmingw32 = ".exe"
PATH_DELIM = ":"
PATH_DELIM:sdkmingw32 = ";"
QT6_INSTALL_HOST_LIBEXECDIR = "${QT6_INSTALL_LIBEXECDIR}"
QT6_INSTALL_HOST_LIBEXECDIR:sdkmingw32 = "${QT6_INSTALL_LIBEXECDIR:mingw32}"
TARGET_SYSROOT ?= "${SDKTARGETSYSROOT}"
NATIVE_SYSROOT ?= "${SDKPATHNATIVE}"
create_qt6_sdk_files () {
# Generate a qt.conf file to be deployed with the SDK
qtconf=${WORKDIR}/qt.conf
echo '[Paths]' > $qtconf
echo 'Prefix = ${prefix}' >> $qtconf
echo 'Headers = ${QT6_INSTALL_INCLUDEDIR}' >> $qtconf
echo 'Libraries = ${QT6_INSTALL_LIBDIR}' >> $qtconf
echo 'ArchData = ${QT6_INSTALL_ARCHDATADIR}' >> $qtconf
echo 'Data = ${QT6_INSTALL_DATADIR}' >> $qtconf
echo 'Binaries = ${QT6_INSTALL_BINDIR}' >> $qtconf
echo 'LibraryExecutables = ${QT6_INSTALL_LIBEXECDIR}' >> $qtconf
echo 'Plugins = ${QT6_INSTALL_PLUGINSDIR}' >> $qtconf
echo 'QmlImports = ${QT6_INSTALL_QMLDIR}' >> $qtconf
echo 'Translations = ${QT6_INSTALL_TRANSLATIONSDIR}' >> $qtconf
echo 'Documentation = ${QT6_INSTALL_DOCDIR}' >> $qtconf
echo 'Settings = ${QT6_INSTALL_SYSCONFDIR}' >> $qtconf
echo 'Examples = ${QT6_INSTALL_EXAMPLESDIR}' >> $qtconf
echo 'Tests = ${QT6_INSTALL_TESTSDIR}' >> $qtconf
echo 'HostPrefix = ${@os.path.relpath("${NATIVE_SYSROOT}", "${NATIVE_SYSROOT}${QT6_INSTALL_BINDIR}")}' >> $qtconf
echo 'HostData = ${@os.path.relpath("${TARGET_SYSROOT}${QT6_INSTALL_ARCHDATADIR}", "${NATIVE_SYSROOT}")}' >> $qtconf
echo 'HostBinaries = ${@os.path.relpath("${NATIVE_SYSROOT}${QT6_INSTALL_BINDIR}", "${NATIVE_SYSROOT}")}' >> $qtconf
echo 'HostLibraries = ${@os.path.relpath("${NATIVE_SYSROOT}${QT6_INSTALL_LIBDIR}", "${NATIVE_SYSROOT}")}' >> $qtconf
echo 'HostLibraryExecutables = ${@os.path.relpath("${NATIVE_SYSROOT}${QT6_INSTALL_HOST_LIBEXECDIR}", "${NATIVE_SYSROOT}")}' >> $qtconf
echo 'Sysroot = ${@os.path.relpath("${TARGET_SYSROOT}", "${NATIVE_SYSROOT}${QT6_INSTALL_BINDIR}")}' >> $qtconf
echo 'HostSpec = linux-oe-g++' >> $qtconf
echo 'TargetSpec = linux-oe-g++' >> $qtconf
echo 'SysrootifyPrefix = true' >> $qtconf
# add qt.conf to both bin and libexec dirs
cp ${WORKDIR}/qt.conf ${SDK_OUTPUT}${NATIVE_SYSROOT}${QT6_INSTALL_BINDIR}/
cp ${WORKDIR}/qt.conf ${SDK_OUTPUT}${NATIVE_SYSROOT}${QT6_INSTALL_HOST_LIBEXECDIR}/
cp ${WORKDIR}/qt.conf ${SDK_OUTPUT}${NATIVE_SYSROOT}${QT6_INSTALL_BINDIR}/target_qt.conf
install -d ${SDK_OUTPUT}${NATIVE_SYSROOT}/environment-setup.d
script=${SDK_OUTPUT}${NATIVE_SYSROOT}/environment-setup.d/qt6.sh
touch $script
echo 'export OE_QMAKE_CFLAGS="$CFLAGS"' >> $script
echo 'export OE_QMAKE_CXXFLAGS="$CXXFLAGS"' >> $script
echo 'export OE_QMAKE_LDFLAGS="$LDFLAGS"' >> $script
echo 'export OE_QMAKE_CC="$CC"' >> $script
echo 'export OE_QMAKE_CXX="$CXX"' >> $script
echo 'export OE_QMAKE_LINK="$CXX"' >> $script
echo 'export OE_QMAKE_AR="$AR"' >> $script
echo 'export OE_QMAKE_STRIP="$STRIP"' >> $script
echo 'export OE_QMAKE_OBJCOPY="$OBJCOPY"' >> $script
echo 'export OE_QMAKE_AR_LTCG="${HOST_PREFIX}gcc-ar"' >> $script
# Generate a toolchain file for using Qt without running setup-environment script
cat > ${SDK_OUTPUT}${NATIVE_SYSROOT}/usr/share/cmake/Qt6Toolchain.cmake <<EOF
cmake_minimum_required(VERSION 3.11)
include_guard(GLOBAL)
get_filename_component(SYSROOTS \${CMAKE_CURRENT_LIST_DIR}/../../../.. ABSOLUTE)
set(ENV{PATH} "${NATIVE_SYSROOT}${bindir}${PATH_DELIM}\$ENV{PATH}")
set(ENV{PKG_CONFIG_SYSROOT_DIR} "${TARGET_SYSROOT}")
set(ENV{PKG_CONFIG_PATH} "${TARGET_SYSROOT}${libdir}/pkgconfig")
set(CMAKE_SYSTEM_NAME Linux)
set(CMAKE_SYSROOT ${TARGET_SYSROOT})
set(CMAKE_FIND_ROOT_PATH ${TARGET_SYSROOT})
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)
set(CMAKE_SYSTEM_PROCESSOR ${TUNE_PKGARCH})
set(CMAKE_C_COMPILER "${NATIVE_SYSROOT}${bindir}/${TARGET_SYS}/${TARGET_PREFIX}gcc${EXE_EXT}")
set(CMAKE_CXX_COMPILER "${NATIVE_SYSROOT}${bindir}/${TARGET_SYS}/${TARGET_PREFIX}g++${EXE_EXT}")
set(TARGET_COMPILER_FLAGS "${TARGET_CC_ARCH} --sysroot=${TARGET_SYSROOT}")
set(TARGET_LINKER_FLAGS "${TARGET_LDFLAGS}")
include(CMakeInitializeConfigs)
function(cmake_initialize_per_config_variable _PREFIX _DOCSTRING)
if (_PREFIX MATCHES "CMAKE_(C|CXX|ASM)_FLAGS")
set(CMAKE_\${CMAKE_MATCH_1}_FLAGS_INIT "\${TARGET_COMPILER_FLAGS}")
foreach (config DEBUG RELEASE MINSIZEREL RELWITHDEBINFO)
if (DEFINED TARGET_COMPILER_FLAGS_\${config})
set(CMAKE_\${CMAKE_MATCH_1}_FLAGS_\${config}_INIT "\${TARGET_COMPILER_FLAGS_\${config}}")
endif()
endforeach()
endif()
if (_PREFIX MATCHES "CMAKE_(SHARED|MODULE|EXE)_LINKER_FLAGS")
foreach (config SHARED MODULE EXE)
set(CMAKE_\${config}_LINKER_FLAGS_INIT "\${TARGET_LINKER_FLAGS}")
endforeach()
endif()
_cmake_initialize_per_config_variable(\${ARGV})
endfunction()
if(CMAKE_HOST_WIN32)
set(CMAKE_BUILD_WITH_INSTALL_RPATH ON)
endif()
if(NOT DEFINED CMAKE_INSTALL_PREFIX)
set(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT 1)
endif()
set(CMAKE_INSTALL_PREFIX "${prefix}" CACHE PATH "Install path prefix")
# Include the toolchain configuration subscripts
file( GLOB toolchain_config_files "\${CMAKE_CURRENT_LIST_DIR}/OEToolchainConfig.cmake.d/*.cmake" )
foreach(config \${toolchain_config_files})
include(\${config})
endforeach()
EOF
# resolve absolute paths at runtime
sed -i -e 's|${SDKPATH}/sysroots|\${SYSROOTS}|g' \
${SDK_OUTPUT}${NATIVE_SYSROOT}/usr/share/cmake/Qt6Toolchain.cmake
# Conan profile
mkdir -p ${SDK_OUTPUT}${NATIVE_SYSROOT}/usr/share/conan
cat > ${SDK_OUTPUT}${NATIVE_SYSROOT}/usr/share/conan/profile <<EOF
include(${TARGET_SYSROOT}${datadir}/conan/profile)
[env]
QT_CONFIGURE_MODULE=${NATIVE_SYSROOT}${QT6_INSTALL_BINDIR}/qt-configure-module
EOF
}
# default debug prefix map isn't valid in the SDK
DEBUG_PREFIX_MAP = ""
lcl_maybe_fortify = ""

View File

@@ -0,0 +1,61 @@
inherit cmake python3native perlnative pkgconfig qt6-paths
DEPENDS:prepend = "qtbase-native "
QT_MESSAGE_LOG_LEVEL ?= "STATUS"
EXTRA_OECMAKE += "\
-DQT_CMAKE_DEBUG_EXTEND_TARGET=ON \
-DQT_BUILD_INTERNALS_NO_FORCE_SET_INSTALL_PREFIX=ON \
-DCMAKE_MESSAGE_LOG_LEVEL=${QT_MESSAGE_LOG_LEVEL} \
"
QT_FORCE_BUILD_TOOLS ?= "OFF"
QT_INSTALL_EXAMPLES_SOURCES ?= "OFF"
EXTRA_OECMAKE:append:class-target = "\
-DQT_HOST_PATH:PATH=${RECIPE_SYSROOT_NATIVE}${prefix_native}/ \
-DQT_FORCE_BUILD_TOOLS=${QT_FORCE_BUILD_TOOLS} \
-DQT_INSTALL_EXAMPLES_SOURCES=${QT_INSTALL_EXAMPLES_SOURCES} \
-D__harfbuzz_broken_config_file=TRUE \
"
EXTRA_OECMAKE:append:class-nativesdk = "\
-DQT_HOST_PATH:PATH=${RECIPE_SYSROOT_NATIVE}${prefix_native}/ \
-DQT_FORCE_BUILD_TOOLS=ON \
"
EXTRA_OECMAKE += "\
-DINSTALL_ARCHDATADIR:PATH=${@os.path.relpath(d.getVar('QT6_INSTALL_ARCHDATADIR'), d.getVar('prefix') + '/')} \
-DINSTALL_BINDIR:PATH=${@os.path.relpath(d.getVar('QT6_INSTALL_BINDIR'), d.getVar('prefix') + '/')} \
-DINSTALL_DATADIR:PATH=${@os.path.relpath(d.getVar('QT6_INSTALL_DATADIR'), d.getVar('prefix') + '/')} \
-DINSTALL_DESCRIPTIONSDIR:PATH=${@os.path.relpath(d.getVar('QT6_INSTALL_DESCRIPTIONSDIR'), d.getVar('prefix') + '/')} \
-DINSTALL_DOCDIR:PATH=${@os.path.relpath(d.getVar('QT6_INSTALL_DOCDIR'), d.getVar('prefix') + '/')} \
-DINSTALL_EXAMPLESDIR:PATH=${@os.path.relpath(d.getVar('QT6_INSTALL_EXAMPLESDIR'), d.getVar('prefix') + '/')} \
-DINSTALL_INCLUDEDIR:PATH=${@os.path.relpath(d.getVar('QT6_INSTALL_INCLUDEDIR'), d.getVar('prefix') + '/')} \
-DINSTALL_LIBDIR:PATH=${@os.path.relpath(d.getVar('QT6_INSTALL_LIBDIR'), d.getVar('prefix') + '/')} \
-DINSTALL_LIBEXECDIR:PATH=${@os.path.relpath(d.getVar('QT6_INSTALL_LIBEXECDIR'), d.getVar('prefix') + '/')} \
-DINSTALL_PLUGINSDIR:PATH=${@os.path.relpath(d.getVar('QT6_INSTALL_PLUGINSDIR'), d.getVar('prefix') + '/')} \
-DINSTALL_QMLDIR:PATH=${@os.path.relpath(d.getVar('QT6_INSTALL_QMLDIR'), d.getVar('prefix') + '/')} \
-DINSTALL_SYSCONFDIR:PATH=${@os.path.relpath(d.getVar('QT6_INSTALL_SYSCONFDIR'), d.getVar('prefix') + '/')} \
-DINSTALL_TESTSDIR:PATH=${@os.path.relpath(d.getVar('QT6_INSTALL_TESTSDIR'), d.getVar('prefix') + '/')} \
-DINSTALL_TRANSLATIONSDIR:PATH=${@os.path.relpath(d.getVar('QT6_INSTALL_TRANSLATIONSDIR'), d.getVar('prefix') + '/')} \
-DINSTALL_MKSPECSDIR:PATH=${@os.path.relpath(d.getVar('QT6_INSTALL_MKSPECSDIR'), d.getVar('prefix') + '/')} \
"
do_install:append() {
# Replace host paths with qmake built-in properties QTBUG-84725
# remove all references to TMPDIR that could not be replaced QTBUG-105877
find ${D} \( -name "*.pri" -or -name "*.prl" \) -exec \
sed -i -e 's|${STAGING_DIR_NATIVE}|$$[QT_HOST_PREFIX/get]|g' \
-e 's|${STAGING_DIR_HOST}|$$[QT_SYSROOT]|g' \
-e '/QMAKE_PRL_BUILD_DIR/d' \
-e '\|${WORKDIR}|d' {} \;
# Remove buildpaths from SBOM files
# QTBUG-130557
if [ -e ${D}${QT6_INSTALL_LIBDIR}/sbom ]; then
sed -i ${D}${QT6_INSTALL_LIBDIR}/sbom/*.spdx \
-e 's|${STAGING_DIR_NATIVE}||' \
-e 's|${S}||g' \
-e 's|${B}||'
fi
}
export QT_DISABLE_SHADER_DISK_CACHE = "1"

View File

@@ -0,0 +1,33 @@
# Install locations:
# Executables [PREFIX/bin]
QT6_INSTALL_BINDIR ?= "${bindir}"
# Header files [PREFIX/include]
QT6_INSTALL_INCLUDEDIR ?= "${includedir}"
# Libraries [PREFIX/lib]
QT6_INSTALL_LIBDIR ?= "${libdir}"
# Arch-dependent data [PREFIX]
QT6_INSTALL_ARCHDATADIR ?= "${libdir}"
# Plugins [ARCHDATADIR/plugins]
QT6_INSTALL_PLUGINSDIR ?= "${libdir}/plugins"
# Helper programs [ARCHDATADIR/bin on Windows, ARCHDATADIR/libexec otherwise]
QT6_INSTALL_LIBEXECDIR ?= "${libexecdir}"
QT6_INSTALL_LIBEXECDIR:mingw32 ?= "${bindir}"
# QML2 imports [ARCHDATADIR/qml]
QT6_INSTALL_QMLDIR ?= "${libdir}/qml"
# "Arch-independent data [PREFIX]
QT6_INSTALL_DATADIR ?= "${datadir}"
# Documentation [DATADIR/doc]
QT6_INSTALL_DOCDIR ?= "${docdir}"
# Translations [DATADIR/translations]
QT6_INSTALL_TRANSLATIONSDIR ?= "${datadir}/translations"
# Settings used by Qt programs [PREFIX/etc/xdg]
QT6_INSTALL_SYSCONFDIR ?= "${sysconfdir}/xdg"
# Examples [PREFIX/examples]
QT6_INSTALL_EXAMPLESDIR ?= "${datadir}/examples"
# Tests [PREFIX/tests]
QT6_INSTALL_TESTSDIR ?= "${prefix}/tests"
# Module description files directory [ARCHDATADIR/modules]
QT6_INSTALL_DESCRIPTIONSDIR ?= "${libdir}/modules"
# Mkspecs files [PREFIX/mkspecs]
QT6_INSTALL_MKSPECSDIR ?= "${libdir}/mkspecs"

View File

@@ -0,0 +1,272 @@
OE_QMAKE_PATH_PREFIX = "${prefix}"
OE_QMAKE_PATH_HEADERS = "${QT6_INSTALL_INCLUDEDIR}"
OE_QMAKE_PATH_LIBS = "${QT6_INSTALL_LIBDIR}"
OE_QMAKE_PATH_ARCHDATA = "${QT6_INSTALL_ARCHDATADIR}"
OE_QMAKE_PATH_DATA = "${QT6_INSTALL_DATADIR}"
OE_QMAKE_PATH_BINS = "${QT6_INSTALL_BINDIR}"
OE_QMAKE_PATH_LIBEXECS = "${QT6_INSTALL_LIBEXECDIR}"
OE_QMAKE_PATH_PLUGINS = "${QT6_INSTALL_PLUGINSDIR}"
OE_QMAKE_PATH_QML = "${QT6_INSTALL_QMLDIR}"
OE_QMAKE_PATH_TRANSLATIONS = "${QT6_INSTALL_TRANSLATIONSDIR}"
OE_QMAKE_PATH_DOCS = "${QT6_INSTALL_DOCDIR}"
OE_QMAKE_PATH_SETTINGS = "${sysconfdir}"
OE_QMAKE_PATH_EXAMPLES = "${QT6_INSTALL_EXAMPLESDIR}"
OE_QMAKE_PATH_TESTS = "${QT6_INSTALL_TESTSDIR}"
OE_QMAKE_PATH_HOST_PREFIX = ""
OE_QMAKE_PATH_HOST_PREFIX:class-target = "${STAGING_DIR_NATIVE}"
OE_QMAKE_PATH_HOST_BINS = "${QT6_INSTALL_BINDIR}"
OE_QMAKE_PATH_HOST_DATA = "${QMAKE_MKSPEC_PATH_TARGET}"
OE_QMAKE_PATH_HOST_LIBS = "${STAGING_LIBDIR}"
OE_QMAKE_PATH_HOST_LIBEXECS = "${QT6_INSTALL_LIBEXECDIR}"
OE_QMAKE_PATH_EXTERNAL_HOST_BINS = "${STAGING_DIR_NATIVE}${OE_QMAKE_PATH_HOST_BINS}"
# This is useful for target recipes to reference native mkspecs
QMAKE_MKSPEC_PATH_NATIVE = "${STAGING_LIBDIR_NATIVE}"
QMAKE_MKSPEC_PATH_TARGET = "${STAGING_LIBDIR}"
QMAKE_MKSPEC_PATH = "${QMAKE_MKSPEC_PATH_TARGET}"
QMAKE_MKSPEC_PATH:class-native = "${QMAKE_MKSPEC_PATH_NATIVE}"
QMAKE_MKSPEC_PATH:class-nativesdk = "${QMAKE_MKSPEC_PATH_NATIVE}"
DEPENDS:prepend = "qtbase-native "
# hardcode linux, because that's what 0001-Add-linux-oe-g-platform.patch adds
XPLATFORM:toolchain-clang = "linux-oe-clang"
XPLATFORM ?= "linux-oe-g++"
OE_QMAKE_PLATFORM_NATIVE = "${XPLATFORM}"
OE_QMAKE_PLATFORM = "${XPLATFORM}"
# Add -d to show debug output from every qmake call, but it prints *a lot*, better to add it only to debugged recipe
OE_QMAKE_DEBUG_OUTPUT ?= ""
# Don't look through supplied directories recursively by default
OE_QMAKE_RECURSIVE ?= ""
# Paths in .prl files contain SYSROOT value
SSTATE_SCAN_FILES += "*.pri *.prl *.prf"
# drop default -e and add needed OE_QMAKE vars explicitly
# the problem is that when generated Makefile has:
# CFLAGS = -pipe $(OE_QMAKE_CFLAGS) -O2 -pthread -D_REENTRANT -Wall -W -fPIC $(DEFINES)
# then OE_QMAKE_CFLAGS are exported and used correctly, but then whole CFLAGS is overwritten from env (and -fPIC lost and build fails)
EXTRA_OEMAKE = " \
MAKEFLAGS='${PARALLEL_MAKE}' \
OE_QMAKE_CC='${OE_QMAKE_CC}' \
OE_QMAKE_CXX='${OE_QMAKE_CXX}' \
OE_QMAKE_CFLAGS='${OE_QMAKE_CFLAGS}' \
OE_QMAKE_CXXFLAGS='${OE_QMAKE_CXXFLAGS}' \
OE_QMAKE_LINK='${OE_QMAKE_LINK}' \
OE_QMAKE_LDFLAGS='${OE_QMAKE_LDFLAGS}' \
OE_QMAKE_AR='${OE_QMAKE_AR}' \
OE_QMAKE_STRIP='${OE_QMAKE_STRIP}' \
OE_QMAKE_INCDIR_QT='${STAGING_DIR_TARGET}/${OE_QMAKE_PATH_HEADERS}' \
"
OE_QMAKE_QMAKE = "${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}/qmake"
export OE_QMAKE_CC = "${CC}"
export OE_QMAKE_CFLAGS = "${CFLAGS}"
export OE_QMAKE_CXX = "${CXX}"
export OE_QMAKE_CXXFLAGS = "${CXXFLAGS}"
export OE_QMAKE_LINK = "${CXX}"
export OE_QMAKE_LDFLAGS = "${LDFLAGS}"
export OE_QMAKE_AR = "${AR}"
export OE_QMAKE_STRIP = "echo"
export OE_QMAKE_OBJCOPY = "${OBJCOPY}"
export OE_QMAKE_AR_LTCG = "${HOST_PREFIX}gcc-ar"
# qmake reads if from shell environment
export OE_QMAKE_QTCONF_PATH = "${WORKDIR}/qt.conf"
inherit qt6-paths remove-libtool
generate_target_qt_config_file() {
qtconf="$1"
cat > "$qtconf" <<EOF
[Paths]
Prefix = ${OE_QMAKE_PATH_PREFIX}
Headers = ${OE_QMAKE_PATH_HEADERS}
Libraries = ${OE_QMAKE_PATH_LIBS}
ArchData = ${OE_QMAKE_PATH_ARCHDATA}
Data = ${OE_QMAKE_PATH_DATA}
Binaries = ${OE_QMAKE_PATH_BINS}
LibraryExecutables = ${OE_QMAKE_PATH_LIBEXECS}
Plugins = ${OE_QMAKE_PATH_PLUGINS}
QmlImports = ${OE_QMAKE_PATH_QML}
Translations = ${OE_QMAKE_PATH_TRANSLATIONS}
Documentation = ${OE_QMAKE_PATH_DOCS}
Settings = ${OE_QMAKE_PATH_SETTINGS}
Examples = ${OE_QMAKE_PATH_EXAMPLES}
Tests = ${OE_QMAKE_PATH_TESTS}
HostBinaries = ${OE_QMAKE_PATH_BINS}
HostData = ${OE_QMAKE_PATH_ARCHDATA}
HostLibraries = ${OE_QMAKE_PATH_LIBS}
HostSpec = ${OE_QMAKE_PLATFORM}
TargetSpec = ${OE_QMAKE_PLATFORM}
ExternalHostBinaries = ${OE_QMAKE_PATH_BINS}
Sysroot =
EOF
}
do_generate_qt_config_file() {
generate_qt_config_file_paths
generate_qt_config_file_effective_paths
}
generate_qt_config_file_paths() {
cat > ${OE_QMAKE_QTCONF_PATH} <<EOF
[Paths]
Prefix = ${OE_QMAKE_PATH_PREFIX}
Headers = ${OE_QMAKE_PATH_HEADERS}
Libraries = ${OE_QMAKE_PATH_LIBS}
ArchData = ${OE_QMAKE_PATH_ARCHDATA}
Data = ${OE_QMAKE_PATH_DATA}
Binaries = ${OE_QMAKE_PATH_BINS}
LibraryExecutables = ${OE_QMAKE_PATH_LIBEXECS}
Plugins = ${OE_QMAKE_PATH_PLUGINS}
QmlImports = ${OE_QMAKE_PATH_QML}
Translations = ${OE_QMAKE_PATH_TRANSLATIONS}
Documentation = ${OE_QMAKE_PATH_DOCS}
Settings = ${OE_QMAKE_PATH_SETTINGS}
Examples = ${OE_QMAKE_PATH_EXAMPLES}
Tests = ${OE_QMAKE_PATH_TESTS}
HostBinaries = ${OE_QMAKE_PATH_HOST_BINS}
HostData = ${OE_QMAKE_PATH_HOST_DATA}
HostLibraries = ${OE_QMAKE_PATH_HOST_LIBS}
HostLibraryExecutables = ${OE_QMAKE_PATH_HOST_LIBEXECS}
HostSpec = ${OE_QMAKE_PLATFORM_NATIVE}
TargetSpec = ${OE_QMAKE_PLATFORM}
ExternalHostBinaries = ${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}
Sysroot = ${STAGING_DIR_TARGET}
SysrootifyPrefix=true
EOF
}
generate_qt_config_file_effective_paths() {
cat >> ${OE_QMAKE_QTCONF_PATH} <<EOF
[EffectivePaths]
HostBinaries = ${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}
HostLibraries = ${STAGING_LIBDIR_NATIVE}
HostData = ${OE_QMAKE_PATH_HOST_DATA}
HostPrefix = ${STAGING_DIR_NATIVE}
HostLibraryExecutables = ${STAGING_DIR_NATIVE}${OE_QMAKE_PATH_HOST_LIBEXECS}
EOF
}
#
# Allows to override following values (as in version 5.0.1)
# Prefix The default prefix for all paths.
# Documentation The location for documentation upon install.
# Headers The location for all headers.
# Libraries The location of installed libraries.
# LibraryExecutables The location of installed executables required by libraries at runtime.
# Binaries The location of installed Qt binaries (tools and applications).
# Plugins The location of installed Qt plugins.
# Imports The location of installed QML extensions to import (QML 1.x).
# QmlImports The location of installed QML extensions to import (QML 2.x).
# ArchData The location of general architecture-dependent Qt data.
# Data The location of general architecture-independent Qt data.
# Translations The location of translation information for Qt strings.
# Examples The location for examples upon install.
# Tests The location of installed Qt testcases.
# Settings The location for Qt settings. Not applicable on Windows.
# For bootstrapped
# Sysroot The location of target sysroot
# HostPrefix The prefix for host tools when cross compiling (building tools for both systems)
# HostBinaries The location where to install host tools
# HostData The location where to install host data
# ExternalHostBinaries The location where we already have host tools (when cross compiling, but reusing existing tools)
# TargetSpec The location where to install target mkspec
# HostSpec The location where to install host mkspec
# qmake works fine with separate B, use it by default
SEPB = "${WORKDIR}/build"
B = "${SEPB}"
CONFIGURESTAMPFILE = "${WORKDIR}/qmake5_base_configure.sstate"
qmake5_base_preconfigure() {
if [ -n "${CONFIGURESTAMPFILE}" -a -e "${CONFIGURESTAMPFILE}" ]; then
if [ "`cat ${CONFIGURESTAMPFILE}`" != "${BB_TASKHASH}" -a "${S}" != "${B}" ]; then
echo "Previously configured separate build directory detected, cleaning ${B}"
rm -rf ${B}
mkdir ${B}
fi
fi
}
qmake5_base_postconfigure(){
if [ -n "${CONFIGURESTAMPFILE}" ]; then
echo ${BB_TASKHASH} > ${CONFIGURESTAMPFILE}
fi
}
EXTRAQCONFFUNCS ??= ""
do_configure[prefuncs] += "qmake5_base_preconfigure ${EXTRAQCONFFUNCS}"
do_configure[postfuncs] += "qmake5_base_postconfigure"
addtask generate_qt_config_file after do_patch before do_configure
do_configure () {
if [ -z "${QMAKE_PROFILES}" ]; then
PROFILES="`ls ${S}/*.pro`"
else
PROFILES="${QMAKE_PROFILES}"
bbnote "qmake using profiles: '${QMAKE_PROFILES}'"
fi
if [ ! -z "${EXTRA_QMAKEVARS_POST}" ]; then
AFTER="-after"
QMAKE_VARSUBST_POST="${EXTRA_QMAKEVARS_POST}"
bbnote "qmake postvar substitution: '${EXTRA_QMAKEVARS_POST}'"
fi
if [ ! -z "${EXTRA_QMAKEVARS_PRE}" ]; then
QMAKE_VARSUBST_PRE="${EXTRA_QMAKEVARS_PRE}"
bbnote "qmake prevar substitution: '${EXTRA_QMAKEVARS_PRE}'"
fi
if [ ! -z "${EXTRA_QMAKEVARS_CONFIGURE}" ]; then
QMAKE_VARSUBST_CONFIGURE="${EXTRA_QMAKEVARS_CONFIGURE}"
bbnote "qmake configure substitution: '${EXTRA_QMAKEVARS_CONFIGURE}'"
fi
# for config.tests to read this
export QMAKE_MAKE_ARGS="${EXTRA_OEMAKE}"
CMD="${OE_QMAKE_QMAKE} -makefile -o Makefile ${OE_QMAKE_DEBUG_OUTPUT} ${OE_QMAKE_RECURSIVE} $QMAKE_VARSUBST_PRE $AFTER $PROFILES $QMAKE_VARSUBST_POST -- $QMAKE_VARSUBST_CONFIGURE"
${OE_QMAKE_QMAKE} -makefile -o Makefile ${OE_QMAKE_DEBUG_OUTPUT} ${OE_QMAKE_RECURSIVE} $QMAKE_VARSUBST_PRE $AFTER $PROFILES $QMAKE_VARSUBST_POST -- $QMAKE_VARSUBST_CONFIGURE || die "Error calling $CMD"
}
do_install:class-native() {
oe_runmake install INSTALL_ROOT=${D}
find "${D}" -ignore_readdir_race -name "*.la" -delete
if ls ${D}${libdir}/pkgconfig/Qt5*.pc >/dev/null 2>/dev/null; then
sed -i "s@-L${STAGING_LIBDIR}@-L\${libdir}@g" ${D}${libdir}/pkgconfig/Qt5*.pc
fi
}
do_install() {
# Fix install paths for all
find . -name "Makefile*" | xargs -r sed -i "s,(INSTALL_ROOT)${STAGING_DIR_TARGET},(INSTALL_ROOT),g"
find . -name "Makefile*" | xargs -r sed -i "s,(INSTALL_ROOT)${STAGING_DIR_HOST},(INSTALL_ROOT),g"
find . -name "Makefile*" | xargs -r sed -i "s,(INSTALL_ROOT)${STAGING_DIR_NATIVE},(INSTALL_ROOT),g"
oe_runmake install INSTALL_ROOT=${D}
# Replace host paths with qmake built-in properties
find ${D} \( -name "*.pri" -or -name "*.prl" \) -exec \
sed -i -e 's|${STAGING_DIR_NATIVE}|$$[QT_HOST_PREFIX/get]|g' \
-e 's|${STAGING_DIR_HOST}|$$[QT_SYSROOT]|g' {} \;
# Replace host paths with pkg-config built-in variable
find ${D} -name "*.pc" -exec \
sed -i -e 's|prefix=${STAGING_DIR_HOST}|prefix=|g' \
-e 's|${STAGING_DIR_HOST}|${pc_sysrootdir}|g' {} \;
# Replace resolved lib path with the lib name
find ${D} -name "*.cmake" -exec \
sed -i -e 's@/[^;]*/lib\([^;]*\)\.\(so\|a\)@\1@g' {} \;
}

View File

@@ -0,0 +1,40 @@
python do_srcrev_update() {
import subprocess
recipe = d.getVar('FILE')
srcrev_file = os.path.join(d.getVar('QT6BASE'), 'recipes-qt/qt6/qt6-git.inc')
module = d.getVar('QT_MODULE')
scms = []
fetcher = bb.fetch2.Fetch(d.getVar('SRC_URI').split(), d)
urldata = fetcher.ud
for u in urldata:
if urldata[u].method.supports_srcrev():
scms.append(u)
if len(scms) == 0:
return
d.setVar("__BBSEENSRCREV", "1")
d.setVar("__BBSRCREV_SEEN", "1")
for scm in scms:
ud = urldata[scm]
if hasattr(ud, 'names'):
name = ud.names[0]
else:
name = ud.name
rev = ud.method.latest_revision(ud, d, name)
srcrev = d.getVar("SRCREV_%s" % name)
if srcrev is None: srcrev = d.getVar("SRCREV")
if srcrev == rev:
bb.plain("%s: %s is already latest" % (name, srcrev))
continue
bb.plain("%s: %s -> %s" % (name, srcrev, rev))
cmd = "sed -E -i %s %s -e '/SRCREV(_%s)? /s/%s/%s/'" % (recipe, srcrev_file, name, srcrev, rev)
bb.process.run(cmd, log=None, shell=True, stderr=subprocess.PIPE, cwd=None)
}
do_srcrev_update[nostamp] = "1"
addtask srcrev_update after do_fetch

View File

@@ -0,0 +1,5 @@
product_dependency:
../../qt/qt5:
ref: "dev"
dependencies:
{}

View File

@@ -0,0 +1,172 @@
version: 2
accept_configuration:
condition: and
conditions:
- condition: property
property: host.compiler
equals_value: Yocto
- condition: property
property: target.arch
in_values: [TARGET1, TARGET2, TARGET3, TARGET4, TARGET5]
machine_type:
Build:
cores: 16
# Target build matrix:
#
# [target1] [target2] [target3] [target4] [target5]
# [machine] qemuarm64 qemux86-64 qemuarm qemux86 qemuarm64
# [yocto] master master scarthgap styhead kirkstone
# [wayland] yes no no yes yes
# [mingw] no no yes no no
# [static] no no no no yes
#
target1: &target1
type: Group
instructions:
- type: EnvironmentVariable
variableName: MACHINE
variableValue: qemuarm64
- type: EnvironmentVariable
variableName: MANIFEST
variableValue: master.xml
- type: EnvironmentVariable
variableName: TEST_CONFIGS
variableValue: ci configs wayland python
enable_if:
condition: property
property: target.arch
equals_value: TARGET1
target2: &target2
type: Group
instructions:
- type: EnvironmentVariable
variableName: MACHINE
variableValue: qemux86-64
- type: EnvironmentVariable
variableName: MANIFEST
variableValue: master.xml
- type: EnvironmentVariable
variableName: TEST_CONFIGS
variableValue: ci configs python
enable_if:
condition: property
property: target.arch
equals_value: TARGET2
target3: &target3
type: Group
instructions:
- type: EnvironmentVariable
variableName: MACHINE
variableValue: qemuarm
- type: EnvironmentVariable
variableName: MANIFEST
variableValue: scarthgap.xml
- type: EnvironmentVariable
variableName: TEST_CONFIGS
variableValue: ci configs mingw python
enable_if:
condition: property
property: target.arch
equals_value: TARGET3
target4: &target4
type: Group
instructions:
- type: EnvironmentVariable
variableName: MACHINE
variableValue: qemux86
- type: EnvironmentVariable
variableName: MANIFEST
variableValue: styhead.xml
- type: EnvironmentVariable
variableName: TEST_CONFIGS
variableValue: ci configs wayland no-webengine python
enable_if:
condition: property
property: target.arch
equals_value: TARGET4
target5: &target5
type: Group
instructions:
- type: EnvironmentVariable
variableName: MACHINE
variableValue: qemuarm64
- type: EnvironmentVariable
variableName: MANIFEST
variableValue: kirkstone.xml
- type: EnvironmentVariable
variableName: TEST_CONFIGS
variableValue: ci configs wayland static no-webengine python
enable_if:
condition: property
property: target.arch
equals_value: TARGET5
instructions:
Build:
- *target1
- *target2
- *target3
- *target4
- *target5
- type: EnvironmentVariable
variableName: DL_DIR
variableValue: "/mnt/yocto-cache/downloads"
- type: EnvironmentVariable
variableName: SOURCE_DIR
variableValue: "{{.SourceDir}}"
- type: SetBuildDirectory
directory: "{{.AgentWorkingDir}}/build"
- type: MakeDirectory
directory: "{{.BuildDir}}"
- type: ChangeDirectory
directory: "{{.BuildDir}}"
- type: WriteFile
fileContents: |
#!/bin/bash -xe
# make hostname unique for NFS
sudo hostname $(hostname -s)-$(date +%s%N)
sudo mkdir -p /mnt/yocto-cache
sudo mount yocto-cache.ci.qt.io:/srv/yocto-cache /mnt/yocto-cache
curl https://storage.googleapis.com/git-repo-downloads/repo > repo
chmod +x repo
./repo init \
--repo-url git@git.qt.io:boot2qt/git-repo.git \
-u git://code.qt.io/yocto/boot2qt-manifest \
-b ci \
-m ${MANIFEST} \
--reference /mnt/yocto-cache/mirror
./repo sync
source ./poky/oe-init-build-env
bitbake-layers add-layer ../meta-openembedded/meta-oe
bitbake-layers add-layer ../meta-openembedded/meta-python
bitbake-layers add-layer ../meta-openembedded/meta-multimedia
bitbake-layers add-layer ../meta-mingw
bitbake-layers add-layer ../meta-clang
bitbake-layers add-layer ${SOURCE_DIR}
for conf in ${TEST_CONFIGS}; do
echo "require ${SOURCE_DIR}/coin/test-${conf}.inc" >> conf/local.conf
done
# build toolchain which should include all supported recipes
bitbake meta-toolchain-qt6 nativesdk-packagegroup-qt6-toolchain-host packagegroup-qt6-modules
filename: "{{.BuildDir}}/start-build"
fileMode: 420
- type: ExecuteCommand
command: ["bash", "-xe", "{{.BuildDir}}/start-build"]
maxTimeInSeconds: 43200
maxTimeBetweenOutput: 7200
userMessageOnFailure: "Build failed."
- type: ExecuteCommand
command: ["sudo", "umount", "/mnt/yocto-cache"]
userMessageOnFailure: "Unmounting cache failed."
Test: []

View File

@@ -0,0 +1,5 @@
SSTATE_DIR = "/mnt/yocto-cache/sstate-caches/${DISTRO}-${DISTRO_CODENAME}"
BB_HASHSERVE = "yocto-cache.ci.qt.io:8686"
DL_DIR = "/mnt/yocto-cache/downloads"
BB_GENERATE_MIRROR_TARBALLS = "1"
BB_NUMBER_THREADS = "8"

View File

@@ -0,0 +1,107 @@
# use systemd
INIT_MANAGER:forcevariable = "systemd"
INHERIT += "buildstats buildstats-summary"
INHERIT += "rm_work"
# default to commercial Qt
QT_EDITION = "commercial"
LICENSE_FLAGS_ACCEPTED = "commercial_ffmpeg"
# include commercial addons and enable Qt QML Compiler
QT_COMMERCIAL_MODULES = "1"
# fast compression of SDK tar package
SDK_XZ_COMPRESSION_LEVEL = "-1"
# be more strict with QA warnings, turn them all to errors:
EXTRA_QA = "\
ldflags useless-rpaths rpaths staticdev libdir xorg-driver-abi \
textrel already-stripped incompatible-license files-invalid \
installed-vs-shipped compile-host-path install-host-path \
pn-overrides infodir build-deps \
unknown-configure-option symlink-to-sysroot multilib \
invalid-packageconfig host-user-contaminated uppercase-pn \
"
ERROR_QA:append = "${EXTRA_QA}"
WARN_QA:remove = "${EXTRA_QA}"
# workaround for qemu
# nativesdk-qemu-user-mips rdepends on nativesdk-bash, but it isn't a build dependency
INSANE_SKIP:nativesdk-qemu-user-mips = "build-deps"
# workaround for clang
# nativesdk-liblldb contains reference to TMPDIR [buildpaths]
INSANE_SKIP:append:pn-nativesdk-clang = " buildpaths"
# enable thumb for broader test coverage (oe-core autobuilder doesn't have thumb enabled)
PREFERRED_ARM_INSTRUCTION_SET ?= "thumb"
ARM_INSTRUCTION_SET = "${PREFERRED_ARM_INSTRUCTION_SET}"
# build squish
USE_SQUISH = "1"
SQUISH_MIRROR = "https://ci-files01-hki.ci.qt.io/input/squish/releasepackages"
SQUISH_LICENSE_KEY = "qt-srv-19.intra.qt.io:49345"
# enable webengine with commercial/proprietary features
DISTRO_FEATURES:append = " webengine"
PACKAGECONFIG:append:pn-qtwebengine = " proprietary-codecs"
PACKAGECONFIG:append:pn-qtbase = "\
tslib kms gbm zstd libproxy gssapi vulkan mtdev cups \
sql-mysql sql-odbc sql-psql sql-sqlite journald brotli \
${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'gtk', '', d)} \
"
# imageformats mng FIXME
PACKAGECONFIG:append:pn-qtimageformats = " jasper"
# enable examples for all Qt modules
PACKAGECONFIG:append:pn-qmlcompilerplus = " examples"
PACKAGECONFIG:append:pn-qt3d = " examples"
PACKAGECONFIG:append:pn-qt5compat = " examples"
PACKAGECONFIG:append:pn-qtapplicationmanager = " examples"
PACKAGECONFIG:append:pn-qtbase = " examples"
PACKAGECONFIG:append:pn-qtcharts = " examples"
PACKAGECONFIG:append:pn-qtcoap = " examples"
PACKAGECONFIG:append:pn-qtconnectivity = " examples"
PACKAGECONFIG:append:pn-qtdatavis3d = " examples"
PACKAGECONFIG:append:pn-qtdeclarative = " examples"
PACKAGECONFIG:append:pn-qtdeviceutilities = " examples"
PACKAGECONFIG:append:pn-qtgraphs = " examples"
PACKAGECONFIG:append:pn-qtgrpc = " examples"
PACKAGECONFIG:append:pn-qthttpserver = " examples"
PACKAGECONFIG:append:pn-qtimageformats = " examples"
PACKAGECONFIG:append:pn-qtinsighttracker = " examples"
PACKAGECONFIG:append:pn-qtinterfaceframework = " examples"
PACKAGECONFIG:append:pn-qtlanguageserver = " examples"
PACKAGECONFIG:append:pn-qtlocation = " examples"
PACKAGECONFIG:append:pn-qtlottie = " examples"
PACKAGECONFIG:append:pn-qtmqtt = " examples"
PACKAGECONFIG:append:pn-qtmultimedia = " examples"
PACKAGECONFIG:append:pn-qtnetworkauth = " examples"
PACKAGECONFIG:append:pn-qtopcua = " examples"
PACKAGECONFIG:append:pn-qtpdf = " examples"
PACKAGECONFIG:append:pn-qtpositioning = " examples"
PACKAGECONFIG:append:pn-qtquick3d = " examples"
PACKAGECONFIG:append:pn-qtquick3dphysics = " examples"
PACKAGECONFIG:append:pn-qtquickdesigner-components = " examples"
PACKAGECONFIG:append:pn-qtquicktimeline = " examples"
PACKAGECONFIG:append:pn-qtremoteobjects = " examples"
PACKAGECONFIG:append:pn-qtscxml = " examples"
PACKAGECONFIG:append:pn-qtsensors = " examples"
PACKAGECONFIG:append:pn-qtserialbus = " examples"
PACKAGECONFIG:append:pn-qtserialport = " examples"
PACKAGECONFIG:append:pn-qtshadertools = " examples"
PACKAGECONFIG:append:pn-qtspeech = " examples"
PACKAGECONFIG:append:pn-qtsvg = " examples"
PACKAGECONFIG:append:pn-qttools = " examples"
PACKAGECONFIG:append:pn-qttranslations = " examples"
PACKAGECONFIG:append:pn-qtvirtualkeyboard = " examples"
PACKAGECONFIG:append:pn-qtvncserver = " examples"
PACKAGECONFIG:append:pn-qtwayland = " examples"
PACKAGECONFIG:append:pn-qtwebchannel = " examples"
PACKAGECONFIG:append:pn-qtwebengine = " examples"
PACKAGECONFIG:append:pn-qtwebsockets = " examples"
PACKAGECONFIG:append:pn-qtwebview = " examples"

View File

@@ -0,0 +1 @@
SDKMACHINE = "x86_64-mingw32"

View File

@@ -0,0 +1 @@
DISTRO_FEATURES:remove = "webengine"

View File

@@ -0,0 +1,51 @@
IMAGE_CLASSES += "testimage"
QB_MEM = "-m 8192"
TEST_SUITES = "ssh ping parselogs ptest"
IMAGE_FEATURES += "ssh-server-dropbear"
IMAGE_INSTALL:append = "\
${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'qt3d-ptest', '', d)} \
qt5compat-ptest \
qtbase-ptest \
qtcharts-ptest \
qtcoap-ptest \
qtconnectivity-ptest \
${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'qtdatavis3d-ptest', '', d)} \
qtdeclarative-ptest \
qtdeviceutilities-ptest \
qtgraphs-ptest \
qtgrpc-ptest \
qthttpserver-ptest \
qtimageformats-ptest \
qtinterfaceframework-ptest \
qtlocation-ptest \
qtlottie-ptest \
qtmqtt-ptest \
qtmultimedia-ptest \
qtnetworkauth-ptest \
qtopcua-ptest \
qtpositioning-ptest \
qtquick3d-ptest \
qtquickdesigner-components-ptest \
qtquicktimeline-ptest \
qtremoteobjects-ptest \
qtscxml-ptest \
qtsensors-ptest \
qtserialbus-ptest \
qtserialport-ptest \
qtshadertools-ptest \
qtspeech-ptest \
qtsvg-ptest \
qttools-ptest \
qtvirtualkeyboard-ptest \
${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'qtwayland-ptest', '', d)} \
qtwebchannel-ptest \
qtwebsockets-ptest \
${@bb.utils.contains('DISTRO_FEATURES', 'webengine', 'qtpdf-ptest', '', d)} \
${@bb.utils.contains('DISTRO_FEATURES', 'webengine', 'qtwebengine-ptest', '', d)} \
${@bb.utils.contains('DISTRO_FEATURES', 'webengine', 'qtwebview-ptest', '', d)} \
${@bb.utils.contains('QT_COMMERCIAL_MODULES', '1', '\
qmlcompilerplus-ptest \
qtinsighttracker-ptest \
qtvncserver-ptest \
', '', d)} \
"

View File

@@ -0,0 +1,2 @@
RDEPENDS:${PN}:append:pn-packagegroup-qt6-addons = " python3-pyside6"

View File

@@ -0,0 +1,3 @@
PACKAGECONFIG:append:pn-qtbase = " static"
QT_PTEST_ENABLED = "0"
PACKAGECONFIG:remove:pn-qtapplicationmanager = "multi-process"

View File

@@ -0,0 +1,2 @@
DISTRO_FEATURES:remove = "x11"
DISTRO_FEATURES:append = " wayland"

View File

@@ -0,0 +1,59 @@
# It really depends on order of the layers appearing in BBLAYERS
# variable in toplevel bblayers.conf file, where bitbake will search
# for .inc files and others where bitbake uses BBPATH since it will
# search the directories from first to last as specified in BBPATH
# Therefore if you want a given layer to be considered high priority
# for the .inc and .conf etc. then consider it adding at the beginning
# of BBPATH. For bblayers bitbake will use BBFILES_PRIORITY to resolve
# the recipe contention so the order of directories in BBFILES does
# not matter.
# We have a conf and classes directory, append to BBPATH
BBPATH .= ":${LAYERDIR}"
# We have a recipes directory, add to BBFILES
BBFILES += "${LAYERDIR}/recipes-*/*/*.bb ${LAYERDIR}/recipes-*/*/*.bbappend"
# bbappends for optional layers
BBFILES_DYNAMIC += " \
meta-python:${LAYERDIR}/dynamic-layers/meta-python/*/*/*.bb \
meta-python:${LAYERDIR}/dynamic-layers/meta-python/*/*/*.bbappend \
"
BBFILE_COLLECTIONS += "qt6-layer"
BBFILE_PATTERN_qt6-layer := "^${LAYERDIR}/"
# Define the priority for recipes (.bb files) from this layer,
# choosing carefully how this layer interacts with all of the
# other layers.
BBFILE_PRIORITY_qt6-layer = "${BBFILE_PRIORITY_core}"
# This should only be incremented on significant changes that will
# cause compatibility issues with other layers
LAYERVERSION_qt6-layer = "1"
LAYERDEPENDS_qt6-layer = "core openembedded-layer meta-python"
LAYERSERIES_COMPAT_qt6-layer = "kirkstone langdale mickledore nanbield scarthgap styhead walnascar"
LICENSE_PATH += "${LAYERDIR}/licenses"
IMAGE_FEATURES[validitems] += "qtcreator-debug"
# Set a variable to get to the top of the metadata location
QT6BASE := "${LAYERDIR}"
QT_GIT_PROJECT ?= "qt"
QT_GIT ?= "git://code.qt.io"
QT_GIT_PROTOCOL ?= "git"
QT_EDITION ?= "opensource"
QT_VERSION = "6.8.4"
QT_COMMERCIAL_GIT ?= "git://codereview.qt-project.org"
QT_COMMERCIAL_GIT_PROTOCOL ?= "ssh"
QT_COMMERCIAL_MODULES ?= "0"
# License mapping back to old license files
SPDXLICENSEMAP[GFDL-1.3-no-invariants-only] = "GFDL-1.3"

View File

@@ -0,0 +1,22 @@
The Qt Company GPL Exception 1.0
Exception 1:
As a special exception you may create a larger work which contains the
output of this application and distribute that work under terms of your
choice, so long as the work is not otherwise derived from or based on
this application and so long as the work does not in itself generate
output that contains the output from this application in its original
or modified form.
Exception 2:
As a special exception, you have permission to combine this application
with Plugins licensed under the terms of your choice, to produce an
executable, and to copy and distribute the resulting executable under
the terms of your choice. However, the executable must be accompanied
by a prominent notice offering all users of the executable the entire
source code to this application, excluding the source code of the
independent modules, but including any changes you have made to this
application, under the terms of this license.

View File

@@ -0,0 +1,149 @@
Squish Commercial License Agreement
Agreement version 3.1
This Squish Commercial License Agreement ("Agreement") is made by and
between The Qt Company Oy ("The Qt Company"), and you (either an
individual or a legal entity) ("Licensee").
IMPORTANT - READ CAREFULLY:
1. The Qt Company developed and originated Squish including source code,
documentation and example programs ("Licensed Software"). The Licensed
Software is protected by copyright laws and international copyright
treaties, as well as other intellectual property laws and
treaties. The Qt Company retains all rights not expressly granted.
2. By installing, copying, or otherwise using the Licensed Software,
Licensee agrees to be bound by the terms of this Agreement. If
Licensee does not agree to the terms of this Agreement, Licensee
should not install, copy, or otherwise use the Licensed Software. In
addition, by installing, copying, or otherwise using any updates or
other components of the Licensed Software that Licensee receives
separately as part of the Licensed Software ("Updates"), Licensee
agrees to be bound by any additional license terms that accompany such
Updates. If Licensee does not agree to the additional license terms
that accompany such Updates, Licensee may not install, copy, or
otherwise use such Updates.
3. Upon Licensee's acceptance of the terms and conditions of this
Agreement, The Qt Company grants Licensee the right to use the Licensed
Software during the agreed validity period as set forth in the
respective License Certificate ("License Term"), solely for Licensee's
internal business purposes in the manner provided below.
4a. If the license, as specified in the license certificate, is a
Floating Tester Subscription or Floating Execution Subscription,
Licensee may install the Licensed Software on an unlimited amount of
computers. Concurrent use of the installed Licensed Software is
limited to the number of floating seats purchased as specified in the
license certificate and to persons employed or contracted by the
Licensee. If the license is a Floating Execution License, Licensee may
only use the installed Licensed Software for executing tests and
processing test results, but not for developing, debugging and
maintaining tests.
4b. If the license, as specified in the license certificate, is a User
Node-Locked Subscription, Licensee may install the Licensed Software
for a single user on a single physical computer. Installation and
usage in virtual machines or the use via remote access is prohibited.
5. Licensee may modify the Licensed Software except for altering or
removing any details of ownership, copyright, trademark or other
property right connected with the Licensed Software.
6. Licensee may not distribute the Licensed Software, modified or
unmodified, separately or as part of any software package.
7. Upon expiry of the initially agreed License Term, the respective
License Terms shall be automatically extended to one or more
extensions of previous License Term as agreed between the Parties
("Renewal Term"), unless and until either Party notifies the other
Party in writing, or any other method acceptable to The Qt Company, that it
does not wish to continue the License Term, such notification to be
provided to the other Party no less than thirty (30) days before
expiry of the respective License Term. Unless otherwise agreed between
the Parties, Renewal Term shall be of equal length with the initial
License Term.
Any such Renewal Term shall be subject to License Fees agreed between
the Parties or, if no advance agreement exists, subject to The Qt Company
standard pricing applicable at the commencement date of any such
Renewal Term.
Any price or other term specified for a Renewal Term shall be valid
only for the specified time.
WARRANTY DISCLAIMER
8. The Licensed Software is licensed to Licensee "as is". To the
maximum extent permitted by applicable law, The Qt Company on behalf of
itself and its suppliers, disclaims all warranties and conditions,
either expressed or implied, including, but not limited to, implied
warranties of merchantability, fitness for a particular purpose, title
and non-infringement with regard to the Licensed Software.
LIMITATION OF LIABILITY
9. If, The Qt Company's warranty disclaimer notwithstanding, The Qt Company is
held liable to Licensee, whether in contract, tort or any other legal
theory, based on the Licensed Software, The Qt Company's entire liability
to Licensee and Licensee's exclusive remedy shall be, at The Qt Company's
option, either (A) return of the price Licensee paid for the Licensed
Software, or (B) repair or replacement of the Licensed Software,
provided Licensee returns to The Qt Company all copies of the Licensed
Software as originally delivered to Licensee. The Qt Company shall not
under any circumstances be liable to Licensee based on failure of the
Licensed Software if the failure resulted from accident, abuse or
misapplication, nor shall The Qt Company under any circumstances be liable
for special damages, punitive or exemplary damages, damages for loss
of profits or interruption of business or for loss or corruption of
data. Any award of damages from The Qt Company to Licensee shall not exceed
the total amount Licensee has paid to The Qt Company in connection with
this Agreement.
SUPPORT AND UPDATES
10. Licensee will be eligible to receive email based software support
and access to Downloads and Updates to the Licensed Software for the
License Term, in accordance with The Qt Company's then current policies and
procedures, if any. Such policies and procedures may be changed from
time to time.
PRIVACY
11. Licensee acknowledges and agrees that for the purpose of this
agreement, The Qt Company may collect, use, transfer and disclose personal
data pertaining to Users as well as any other employees and directors
of the Licensee and its contractors relevant for carrying out the
intent of this agreement. Such personal data may be collected from the
Licensee or directly from the relevant individuals. The parties
acknowledge that with regard to such personal data processed
hereunder, The Qt Company shall be regarded as the Data Controller under
the applicable data protection legislation. The Qt Company shall process
any such personal data in accordance with its privacy policies and
practices, which will comply with all applicable requirements of the
General Data Protection Regulation (GDPR) and any national
implementing laws and regulations.
GENERAL PROVISIONS
12. This Agreement may only be modified in writing signed by
authorized representatives of Licensee and The Qt Company. In case of a
conflict between this Agreement and the terms of any purchase order or
other ordering document, this Agreement shall prevail. If any provision
of this Agreement is found void or unenforceable, the remainder will
remain valid and enforceable according to its terms. If any remedy
provided is determined to have failed for its essential purpose, all
limitations of liability and exclusions of damages set forth in this
Agreement shall remain in effect.
13. This Agreement shall be construed, interpreted and governed by the
laws of Finland, the legal venue to be Helsinki District Court. The Qt
Company reserves all rights not specifically granted in this
Agreement.

View File

@@ -0,0 +1,8 @@
Licensees holding valid commercial Qt licenses may use this software in
accordance with the the terms contained in a written agreement between
you and The Qt Company. Alternatively, the terms and conditions that were
accepted by the licensee when buying and/or downloading the
software do apply.
For the latest licensing terms and conditions, see https://www.qt.io/terms-conditions.
For further information use the contact form at https://www.qt.io/contact-us.

View File

@@ -0,0 +1,10 @@
inherit populate_sdk_qt6_base
TARGET_SYSROOT = "${STANDALONE_SYSROOT}"
NATIVE_SYSROOT = "${STANDALONE_SYSROOT_NATIVE}"
SDK_OUTPUT = ""
do_qt6_support () {
create_qt6_sdk_files
}
addtask do_qt6_support after do_build_native_sysroot before do_build

View File

@@ -0,0 +1,21 @@
SUMMARY = "Minizip Compression Library"
DESCRIPTION = "Minizip is a part of Zlib, which is a general-purpose, patent-free, lossless data compression \
library which is used by many different programs."
HOMEPAGE = "http://www.winimage.com/zLibDll/minizip.html"
SECTION = "libs"
LICENSE = "Zlib"
LIC_FILES_CHKSUM = "file://zip.h;beginline=14;endline=30;md5=8eaa8535a3a1a2296b303f40f75385e7"
SRC_URI = "${SOURCEFORGE_MIRROR}/libpng/zlib/${PV}/zlib-${PV}.tar.xz"
UPSTREAM_CHECK_URI = "http://zlib.net/"
S = "${WORKDIR}/zlib-${PV}/contrib/minizip"
SRC_URI[md5sum] = "85adef240c5f370b308da8c938951a68"
SRC_URI[sha256sum] = "4ff941449631ace0d4d203e3483be9dbc9da454084111f97ea0a2114e19bf066"
DEPENDS = "zlib"
inherit autotools
BBCLASSEXTEND = "native nativesdk"

View File

@@ -0,0 +1 @@
BBCLASSEXTEND = "native nativesdk"

View File

@@ -0,0 +1,24 @@
SUMMARY = "A generator framework based on a common modern IDL"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=eee61e10a40b0e3045ee5965bcd9a8b5"
SRC_URI[sha256sum] = "b55c239f3ae7e23c5c8434f38901c5bcacb6afd17e88e37934b46e44558df295"
inherit pypi setuptools3
DEPS = "\
python3-jinja2 \
python3-click \
python3-pyyaml \
python3-pytest \
python3-six \
python3-path \
python3-antlr4-runtime \
python3-watchdog \
python3-markupsafe \
python3-setuptools \
"
DEPENDS += "${DEPS}"
RDEPENDS:${PN} += "${DEPS}"
BBCLASSEXTEND = "nativesdk native"

View File

@@ -0,0 +1 @@
BBCLASSEXTEND = "native nativesdk"

View File

@@ -0,0 +1,12 @@
SUMMARY = "The PEP 517 compliant PyQt build system"
HOMEPAGE = "https://pypi.org/project/PyQt-builder/"
LICENSE = "GPL-2.0-or-later"
LIC_FILES_CHKSUM = "file://LICENSE;md5=ed1d69a33480ebf4ff8a7a760826d84e"
SRC_URI[sha256sum] = "ce9930aafc1ce0af928a6944bcc80ecf78c23ffdcad6ac111306c4c71057848e"
inherit pypi python_setuptools_build_meta native
PYPI_PACKAGE = "pyqt_builder"
DEPENDS += "python3-setuptools-scm-native"

View File

@@ -0,0 +1,12 @@
SUMMARY = "The sip module support for PyQt6"
HOMEPAGE = "https://github.com/Python-SIP/sip"
LICENSE = "BSD-2-Clause"
LIC_FILES_CHKSUM = "file://LICENSE;md5=bc996f4e03c98eae60de43496026f863"
SRC_URI[sha256sum] = "d6daa95a0bd315d9ec523b549e0ce97455f61ded65d5eafecd83ed2aa4ae5350"
inherit pypi setuptools3
PYPI_PACKAGE = "pyqt6_sip"
BBCLASSEXTEND = "native nativesdk"

View File

@@ -0,0 +1,32 @@
From ee6c2c30eca67004e2b05f55ee1d82c3ab44b966 Mon Sep 17 00:00:00 2001
From: Christophe Marin <christophe@krop.fr>
Date: Sun, 2 Feb 2025 12:59:19 +0100
Subject: [PATCH] Fix build with Qt 6.8.2
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Fixes:
/home/abuild/rpmbuild/BUILD/python-PyQt6-6.8.0-build/PyQt6-6.8.0/build/QtCore/sipQtCoreQStringConverterBase.cpp:58:52: error: use of deleted function constexpr QStringConverterBase::QStringConverterBase(const QStringConverterBase&)
Upstream-Status: Pending
---
sip/QtCore/qstringconverter_base.sip | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sip/QtCore/qstringconverter_base.sip b/sip/QtCore/qstringconverter_base.sip
index d0c790f..6f7c301 100644
--- a/sip/QtCore/qstringconverter_base.sip
+++ b/sip/QtCore/qstringconverter_base.sip
@@ -22,7 +22,7 @@
%If (Qt_6_4_0 -)
-class QStringConverterBase
+class QStringConverterBase /NoDefaultCtors/
{
%TypeHeaderCode
#include <qstringconverter_base.h>
--
2.48.1

View File

@@ -0,0 +1,110 @@
SUMMARY = "Python Qt6 Bindings"
HOMEPAGE = "https://www.riverbankcomputing.com/software/pyqt"
SECTION = "devel/python"
LICENSE = "GPL-3.0-only"
LIC_FILES_CHKSUM = "file://LICENSE;md5=d32239bcb673463ab874e80d47fae504"
inherit pypi python3targetconfig python3-dir qt6-qmake qt6-paths
PYPI_PACKAGE = "PyQt6"
SRC_URI[sha256sum] = "6d8628de4c2a050f0b74462e4c9cb97f839bf6ffabbca91711722ffb281570d9"
SRC_URI += "file://0001-Fix-build-with-Qt-6.8.2.patch"
S = "${WORKDIR}/PyQt6-${PV}"
B = "${S}/build"
DEPENDS += " \
qtbase \
qtdeclarative \
sip (>= 6.7.12) \
sip-native (>= 6.7.12) \
python3 \
python3-pyqt6-sip-native \
python3-pyqt6-sip \
python3-packaging-native \
python3-tomli-native \
python3-pyqt-builder-native \
python3-ply \
python3-ply-native \
"
RDEPENDS:${PN} += " \
qtbase \
qtdeclarative \
python3-core \
python3-pyqt6-sip \
"
# Disable support of 128bit ints and add path to Python.h
CXXFLAGS += " -DQT_NO_INT128 -I${PYTHON_INCLUDE_DIR}"
EXTRA_OEMAKE += "INSTALL_ROOT=${D}"
DISABLED_FEATURES = " \
PyQt_Desktop_OpenGL \
PyQt_Accessibility \
PyQt_SessionManager \
${@bb.utils.contains('DISTRO_FEATURES', 'opengl', '', 'PyQt_OpenGL', d)} \
"
PYQT_MODULES = " \
QtCore \
QtGui \
QtNetwork \
QtXml \
QtNetwork \
QtQml \
QtSql \
"
do_configure() {
extra_args=""
for i in ${DISABLED_FEATURES}; do
extra_args="$extra_args --disabled-feature=$i"
done
for i in ${PYQT_MODULES}; do
extra_args="$extra_args --enable=$i"
done
cd ${S}
sip-build \
--verbose \
--confirm-license \
--scripts-dir="${bindir}" \
--build-dir="${B}" \
--target-dir="${PYTHON_SITEPACKAGES_DIR}" \
--no-make \
--qmake=${OE_QMAKE_QMAKE} \
--pep484-pyi \
--no-dbus-python \
$extra_args
QMAKE_PROFILES=${B}/PyQt6.pro
# Fixes: cc1plus: error: include location "/usr/include/python3.13"
# is unsafe for cross-compilation [-Werror=poison-system-directories]
sed -i "s|/usr/include/${PYTHON_DIR}|${PYTHON_INCLUDE_DIR}|g" ${B}/*/*.pro
}
do_compile:append() {
sed -i "s,${STAGING_DIR_TARGET},," ${B}/inventory.txt
}
do_install:append() {
sed -i "s,exec .*nativepython3,exec ${bindir}/python3," ${D}/${bindir}/*
}
# fix buildpaths warnings in python3-pyqt6-src
pyqt_fix_sources() {
find ${PKGD}/usr/src/debug/${PN} -type f -exec sed -i "s,\(${B}\|${S}\),/usr/src/debug/${PN}/${PV}-${PR},g" {} \;
}
PACKAGESPLITFUNCS:prepend = "pyqt_fix_sources"
# Ignore warnings about TMPDIR [buildpaths] in libpyqt6qmlplugin.so
INSANE_SKIP:${PN} += "buildpaths"
INSANE_SKIP:${PN}-dbg += "buildpaths"
FILES:${PN} += "${PYTHON_SITEPACKAGES_DIR} ${OE_QMAKE_PATH_PLUGINS}"

View File

@@ -0,0 +1,33 @@
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)"
LIC_FILES_CHKSUM = " \
file://LICENSES/BSD-3-Clause.txt;md5=cb40fa7520502d8c7a3aea47cae1316c \
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/LGPL-3.0-only.txt;md5=e6a600fd5e1d9cbde2d983680233ad02 \
file://LICENSES/LicenseRef-Qt-Commercial.txt;md5=40a1036f91cefc0e3fabad241fb5f187 \
file://LICENSES/Qt-GPL-exception-1.0.txt;md5=9a13522cd91a88fba784baf16ea66af8 \
"
python() {
if 'clang-layer' not in d.getVar('BBFILE_COLLECTIONS').split():
raise bb.parse.SkipRecipe('Requires meta-clang to be present.')
}
inherit setuptools3
inherit qt6-cmake
require recipes-qt/qt6/qt6-git.inc
QT_GIT_PROJECT = "pyside"
QT_MODULE = "pyside-setup"
QT_MODULE_BRANCH = "dev"
FILESEXTRAPATHS:prepend := "${THISDIR}/pyside6:"
S = "${WORKDIR}/git"
EXTRA_OECMAKE += "-DBUILD_TESTS=FALSE"
EXTRA_OECMAKE:append:class-target = " -DQFP_SHIBOKEN_HOST_PATH=${STAGING_EXECPREFIXDIR} -DQFP_PYTHON_HOST_PATH=${PYTHON}"
INSANE_SKIP:${PN} += "already-stripped"

View File

@@ -0,0 +1,71 @@
require python3-pyside6.inc
DEPENDS += "\
python3-shiboken6 \
python3-shiboken6-native \
${PYSIDE_QT_MODULES} \
"
PYSIDE_QT_MODULES ?= "\
${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'qt3d', '', d)} \
qtbase \
qtcharts \
qtconnectivity \
${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'qtdatavis3d', '', d)} \
qtdeclarative \
qtdeclarative-native \
qtgraphs \
${@bb.utils.contains('QT_COMMERCIAL_MODULES', '1', 'qthttpserver', '', d)} \
qtlocation \
qtmultimedia \
qtnetworkauth \
qtpositioning \
qtquick3d \
qtquick3d-native \
qtremoteobjects \
qtremoteobjects-native \
qtscxml \
qtscxml-native \
qtsensors \
qtserialbus \
qtserialport \
qtspeech \
qtsvg \
qttools \
qtwebchannel \
${@bb.utils.contains('DISTRO_FEATURES', 'webengine', 'qtwebengine', '', d)} \
${@bb.utils.contains('DISTRO_FEATURES', 'webengine', 'qtpdf', '', d)} \
qtwebsockets \
"
OECMAKE_SOURCEPATH = "${S}/sources/pyside6"
export LLVM_INSTALL_DIR = "${STAGING_DIR_NATIVE}${exec_prefix}"
PYSIDE_COMPILER = "${HOST_SYS}-g++"
PYSIDE_COMPILER:toolchain-clang = "${HOST_SYS}-clang++"
# Workaround big.LITTLE architecture args not supported by clang
PYSIDE_COMPILER_FLAGS = "${@d.getVar('HOST_CC_ARCH') \
.replace('cortex-a15.cortex','cortex') \
.replace('cortex-a17.cortex','cortex') \
.replace('cortex-a57.cortex','cortex') \
.replace('cortex-a72.cortex','cortex') \
.replace('cortex-a73.cortex','cortex') \
.replace('cortex-a75.cortex','cortex') \
.replace('cortex-a76.cortex','cortex')} \
"
EXTRA_OECMAKE += "\
-DSTANDALONE=ON \
-DPYSIDE_TREAT_QT_INCLUDE_DIRS_AS_NON_SYSTEM=ON \
-DSHIBOKEN_GENERATOR_EXTRA_FLAGS='\
--clang-options=--sysroot=${STAGING_DIR_TARGET},--target=${HOST_SYS},${@d.getVar('PYSIDE_COMPILER_FLAGS').replace(' ',',')} \
--compiler-path=${PYSIDE_COMPILER} \
' \
"
FILES:${PN} += "\
${QT6_INSTALL_PLUGINSDIR}/designer \
"
FILES:${PN}-dev += "\
${datadir}/PySide6 \
"

View File

@@ -0,0 +1,16 @@
require python3-pyside6.inc
DEPENDS += "qtbase clang-native python3-shiboken6-native"
OECMAKE_SOURCEPATH = "${S}/sources/shiboken6"
EXTRA_OECMAKE += "-DSHIBOKEN_BUILD_LIBS=ON"
do_install:append() {
# shiboken6.pc in package python3-shiboken6-dev contains reference to TMPDIR [buildpaths]
sed -i ${D}${QT6_INSTALL_LIBDIR}/pkgconfig/shiboken6.pc \
-e '/^python_/d' \
-e 's|${RECIPE_SYSROOT}||'
}
BBCLASSEXTEND = "native nativesdk"

View File

@@ -0,0 +1,12 @@
SUMMARY = "pytest support for PyQt and PySide applications"
HOMEPAGE = "http://github.com/pytest-dev/pytest-qt"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=be0db96616c6ec3cabe975402c4c687f"
SRC_URI[sha256sum] = "00a17b586dd530b6d7a9399923a40489ca4a9a309719011175f55dc6b5dc8f41"
inherit pypi setuptools3
DEPENDS = "python3-setuptools-scm-native"
RDEPENDS:${PN} += "python3-pytest"

View File

@@ -0,0 +1,6 @@
SUMMARY = "Meta package for building an installable Qt6 toolchain and SDK"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
inherit populate_sdk populate_sdk_qt6

View File

@@ -0,0 +1,34 @@
DESCRIPTION = "Qt6 development host addon packages"
LICENSE = "MIT"
# disable sanity check for allarch packagegroup
PACKAGE_ARCH = ""
inherit packagegroup nativesdk
PACKAGEGROUP_DISABLE_COMPLEMENTARY = "1"
RDEPENDS:${PN} += " \
nativesdk-qtapplicationmanager-dev \
nativesdk-qtapplicationmanager-tools \
nativesdk-qtgrpc-dev \
nativesdk-qtgrpc-tools \
nativesdk-qtquick3d-dev \
nativesdk-qtquick3d-tools \
nativesdk-qtopcua-dev \
nativesdk-qtopcua-tools \
nativesdk-qtremoteobjects-dev \
nativesdk-qtremoteobjects-tools \
nativesdk-qtscxml-dev \
nativesdk-qtscxml-tools \
nativesdk-qtshadertools-dev \
nativesdk-qtshadertools-tools \
${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'nativesdk-qtwayland-dev nativesdk-qtwayland-tools', '', d)} \
${FORLINUXHOST} \
"
FORLINUXHOST:mingw32 = ""
FORLINUXHOST = " \
nativesdk-qtinterfaceframework-dev nativesdk-qtinterfaceframework-tools \
"

View File

@@ -0,0 +1,14 @@
DESCRIPTION = "Qt6 development host commercial packages"
LICENSE = "MIT"
# disable sanity check for allarch packagegroup
PACKAGE_ARCH = ""
inherit packagegroup nativesdk
PACKAGEGROUP_DISABLE_COMPLEMENTARY = "1"
RDEPENDS:${PN} += " \
nativesdk-qmlcompilerplus-dev \
nativesdk-qmlcompilerplus-tools \
"

View File

@@ -0,0 +1,18 @@
DESCRIPTION = "Qt6 development host essential packages"
LICENSE = "MIT"
# disable sanity check for allarch packagegroup
PACKAGE_ARCH = ""
inherit packagegroup nativesdk
PACKAGEGROUP_DISABLE_COMPLEMENTARY = "1"
RDEPENDS:${PN} += " \
nativesdk-qtbase-dev \
nativesdk-qtbase-tools \
nativesdk-qtdeclarative-dev \
nativesdk-qtdeclarative-tools \
nativesdk-qttools-dev \
nativesdk-qttools-tools \
"

View File

@@ -0,0 +1,25 @@
DESCRIPTION = "Qt6 development host packages"
LICENSE = "MIT"
# avoid warning with inherit_defer allarch
PACKAGE_ARCH = ""
inherit packagegroup nativesdk
PACKAGEGROUP_DISABLE_COMPLEMENTARY = "1"
RDEPENDS:${PN} += " \
nativesdk-cmake \
nativesdk-make \
nativesdk-ninja \
nativesdk-packagegroup-qt6-toolchain-host-essentials \
nativesdk-packagegroup-qt6-toolchain-host-addons \
${@bb.utils.contains('QT_COMMERCIAL_MODULES', '1', 'nativesdk-packagegroup-qt6-toolchain-host-commercial', '', d)} \
${FORLINUXHOST} \
"
FORLINUXHOST:mingw32 = ""
FORLINUXHOST = " \
nativesdk-perl-modules \
nativesdk-python3-html5lib \
"

View File

@@ -0,0 +1,75 @@
DESCRIPTION = "Qt6 addon modules"
LICENSE = "MIT"
PACKAGE_ARCH = "${MACHINE_ARCH}"
inherit packagegroup
PACKAGEGROUP_DISABLE_COMPLEMENTARY = "1"
RDEPENDS:${PN} += " \
${@bb.utils.contains('BBFILE_COLLECTIONS', 'clang-layer', 'python3-pyside6', '', d)} \
${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'qt3d', '', d)} \
qt5compat \
qtapplicationmanager \
qtcharts \
qtcoap \
qtconnectivity \
${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'qtdatavis3d', '', d)} \
qtdeviceutilities \
qtdoc \
qtgraphs \
qtgrpc \
qthttpserver \
qtimageformats \
qtinterfaceframework \
qtlocation \
qtlottie \
qtmqtt \
qtmultimedia \
qtnetworkauth \
qtopcua \
qtpositioning \
qtquick3d \
qtquickdesigner-components \
qtquicktimeline \
qtremoteobjects \
qtscxml \
qtsensors \
qtserialbus \
qtserialbus-tools \
qtserialport \
qtshadertools \
qtspeech \
qtsvg \
qttranslations \
qtvirtualkeyboard \
${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'qtwayland', '', d)} \
qtwebchannel \
qtwebsockets \
"
RDEPENDS:${PN}:append:aarch64 = "\
qtquick3dphysics \
${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'qtpdf', '', d)} \
${@bb.utils.contains('DISTRO_FEATURES', 'webengine', 'qtwebengine qtwebview', '', d)} \
"
RDEPENDS:${PN}:append:arm = " qtquick3dphysics"
RDEPENDS:${PN}:append:armv6 = "\
${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'qtpdf', '', d)} \
${@bb.utils.contains('DISTRO_FEATURES', 'webengine', 'qtwebengine qtwebview', '', d)} \
"
RDEPENDS:${PN}:append:armv7a = "\
${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'qtpdf', '', d)} \
${@bb.utils.contains('DISTRO_FEATURES', 'webengine', 'qtwebengine qtwebview', '', d)} \
"
RDEPENDS:${PN}:append:armv7ve = "\
${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'qtpdf', '', d)} \
${@bb.utils.contains('DISTRO_FEATURES', 'webengine', 'qtwebengine qtwebview', '', d)} \
"
RDEPENDS:${PN}:append:x86 = " qtquick3dphysics"
RDEPENDS:${PN}:append:x86-64 = "\
qtquick3dphysics \
${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'qtpdf', '', d)} \
${@bb.utils.contains('DISTRO_FEATURES', 'webengine', 'qtwebengine qtwebview', '', d)} \
"

View File

@@ -0,0 +1,16 @@
DESCRIPTION = "Qt6 commercial addon modules"
LICENSE = "MIT"
PACKAGE_ARCH = "${MACHINE_ARCH}"
inherit packagegroup
include recipes-qt/qt6/qt6-commercial.inc
PACKAGEGROUP_DISABLE_COMPLEMENTARY = "1"
RDEPENDS:${PN} += " \
qmlcompilerplus \
qtinsighttracker \
qtvncserver \
${@'squish' if bb.utils.to_boolean(d.getVar('USE_SQUISH')) else ''} \
"

View File

@@ -0,0 +1,18 @@
DESCRIPTION = "Qt6 essential modules"
LICENSE = "MIT"
PACKAGE_ARCH = "${MACHINE_ARCH}"
inherit packagegroup
PACKAGEGROUP_DISABLE_COMPLEMENTARY = "1"
RDEPENDS:${PN} += " \
qtbase \
qtdeclarative \
qtdeclarative-tools \
qttools \
qttools-tools \
qttranslations-qtbase \
qttranslations-qtdeclarative \
"

View File

@@ -0,0 +1,14 @@
DESCRIPTION = "Qt6 modules"
LICENSE = "MIT"
PACKAGE_ARCH = "${MACHINE_ARCH}"
inherit packagegroup
PACKAGEGROUP_DISABLE_COMPLEMENTARY = "1"
RDEPENDS:${PN} += " \
packagegroup-qt6-essentials \
packagegroup-qt6-addons \
${@bb.utils.contains('QT_COMMERCIAL_MODULES', '1', 'packagegroup-qt6-commercial-modules', '', d)} \
"

View File

@@ -0,0 +1,116 @@
require gn-utils.inc
inherit linuxloader
inherit qemu
COMPATIBLE_MACHINE = "(-)"
COMPATIBLE_MACHINE:aarch64 = "(.*)"
COMPATIBLE_MACHINE:armv6 = "(.*)"
COMPATIBLE_MACHINE:armv7a = "(.*)"
COMPATIBLE_MACHINE:armv7ve = "(.*)"
COMPATIBLE_MACHINE:x86-64 = "(.*)"
# By default, passing is_official_build=true to GN causes its symbol_level
# variable to be set to "2". This means the compiler will be passed "-g2" and
# we will end up with a very large chrome binary (around 5Gb as of M58)
# regardless of whether DEBUG_BUILD has been set or not. In addition, binutils,
# file and other utilities are unable to read a 32-bit binary this size, which
# causes it not to be stripped.
# The solution is two-fold:
# 1. Make sure -g is not passed on 32-bit architectures via DEBUG_FLAGS. -g is
# the same as -g2. -g1 generates an 800MB binary, which is a lot more
# manageable.
# 2. Explicitly pass symbol_level=0 to GN. This causes -g0 to be passed
# instead, so that if DEBUG_BUILD is not set GN will not create a huge debug
# binary anyway. Since our compiler flags are passed after GN's, -g0 does
# not cause any issues if DEBUG_BUILD is set, as -g1 will be passed later.
DEBUG_FLAGS:remove:arm = "-g"
DEBUG_FLAGS:append:arm = "-g1"
DEBUG_FLAGS:remove:x86 = "-g"
DEBUG_FLAGS:append:x86 = "-g1"
# As of Chromium 62.0.3202.94 and Yocto Rocko (GCC 7, binutils 2.29), passing
# -g to the compiler results in many linker errors on aarch64, such as:
# obj/third_party/WebKit/Source/modules/payments/libpayments.a(PaymentEventDataConversion.o)(.debug_loc+0x4e25): error: relocation overflow in R_AARCH64_ABS32
DEBUG_FLAGS:remove:aarch64 = "-g"
DEBUG_FLAGS:append:aarch64 = "-g1"
# As of Chromium 60.0.3112.101 and Yocto Pyro (GCC 6, binutils 2.28), passing
# -g to the compiler results in many linker errors on x86_64, such as:
# obj/third_party/WebKit/Source/core/loader/libloader.a(ModuleTreeLinker.o)(.debug_loc+0x1e9a5): error: relocation overflow: reference to local symbol 82 in obj/third_party/WebKit/Source/core/loader/libloader.a(ModuleTreeLinker.o)
# obj/third_party/WebKit/Source/core/libcore_generated.a(ScriptModule.o)(.debug_loc+0x253c): error: relocation overflow: reference to local symbol 31 in obj/third_party/WebKit/Source/core/libcore_generated.a(ScriptModule.o)
# so we have to use the same hack described above.
DEBUG_FLAGS:remove:x86-64 = "-g"
DEBUG_FLAGS:append:x86-64 = "-g1"
# The default debug level flag has moved from DEBUG_FLAGS to a new
# variable starting with Yocto 'styhead' (5.1) release
DEBUG_LEVELFLAG = "-g1"
# V8's JIT infrastructure requires binaries such as mksnapshot and
# mkpeephole to be run in the host during the build. However, these
# binaries must have the same bit-width as the target (e.g. a x86_64
# host targeting ARMv6 needs to produce a 32-bit binary). Instead of
# depending on a third Yocto toolchain, we just build those binaries
# for the target and run them on the host with QEMU.
python do_create_v8_qemu_wrapper () {
"""Creates a small wrapper that invokes QEMU to run some target V8 binaries
on the host."""
qemu_libdirs = [d.expand('${STAGING_DIR_HOST}${libdir}'),
d.expand('${STAGING_DIR_HOST}${base_libdir}')]
qemu_cmd = qemu_wrapper_cmdline(d, d.getVar('STAGING_DIR_HOST', True),
qemu_libdirs)
wrapper_path = d.expand('${B}')
bb.utils.mkdirhier(wrapper_path)
wrapper_path = os.path.join(wrapper_path, "v8-qemu-wrapper.sh")
with open(wrapper_path, 'w') as wrapper_file:
wrapper_file.write("""#!/bin/sh
# This file has been generated automatically.
# It invokes QEMU to run binaries built for the target in the host during the
# build process.
%s "$@"
""" % qemu_cmd)
os.chmod(wrapper_path, 0o755)
}
# Some x86-64 target, such as intel-skylake-64, use AVX instructions that are
# not supported by QEMU (https://gitlab.com/qemu-project/qemu/-/issues/164).
# This causes the build tools to crash with QEMU when they are ran during
# to build. Instead of using QEMU, change the wrapper to try to run the
# tools directly, using the target dynloader.
python do_create_v8_qemu_wrapper:x86-64 () {
wrapper_path = d.expand('${B}')
bb.utils.mkdirhier(wrapper_path)
wrapper_path = os.path.join(wrapper_path, "v8-qemu-wrapper.sh")
with open(wrapper_path, 'w') as wrapper_file:
wrapper_file.write("""#!/bin/sh
# This file has been generated automatically.
# It invokes target dynloader to run binaries built for the x86-64 target in the host during the
# build process.
LD_LIBRARY_PATH=%s:%s %s%s "$@"
""" % (d.expand('${STAGING_DIR_HOST}${libdir}'), d.expand('${STAGING_DIR_HOST}${base_libdir}'),
d.expand('${STAGING_DIR_HOST}'), d.expand(get_linuxloader(d))))
os.chmod(wrapper_path, 0o755)
}
do_create_v8_qemu_wrapper[dirs] = "${B}"
addtask create_v8_qemu_wrapper after do_configure before do_compile
python do_write_toolchain_file () {
"""Writes a BUILD.gn file for Yocto detailing its toolchains."""
toolchain_dir = d.expand("${S}/src/3rdparty/chromium/build/toolchain/yocto")
bb.utils.mkdirhier(toolchain_dir)
toolchain_file = os.path.join(toolchain_dir, "BUILD.gn")
write_toolchain_file(d, toolchain_file)
}
addtask write_toolchain_file after do_patch before do_configure
do_compile[progress] = "outof:^\[(\d+)/(\d+)\]\s+"
PACKAGE_DEBUG_SPLIT_STYLE = "debug-without-src"
# There is no need to ship empty -dev packages.
ALLOW_EMPTY:${PN}-dev = "0"

View File

@@ -0,0 +1,12 @@
require recipes-qt/qt6/qtwebengine.inc
inherit native
OECMAKE_SOURCEPATH = "${S}/src/gn"
OECMAKE_TARGET_COMPILE = "gn"
cmake_do_install() {
eval DESTDIR='${D}' ${CMAKE_VERBOSE} cmake --install '${B}'
}
INSANE_SKIP:${PN} += "already-stripped"

View File

@@ -0,0 +1,118 @@
# GN host architecture helpers.
#
# BUILD_ARCH's value corresponds to what uname returns as the machine name.
# The mapping in gn_host_arch_name() tries to match several possible values
# returned by the Linux kernel in uname(2) into the corresponding values GN
# understands.
def gn_host_arch_name(d):
"""Returns a GN architecture name corresponding to the build host's machine
architecture."""
import re
arch_translations = {
r'aarch64.*': 'arm64',
r'arm.*': 'arm',
r'i[3456]86$': 'x86',
r'x86_64$': 'x64',
}
build_arch = d.getVar("BUILD_ARCH")
for arch_regexp, gn_arch_name in arch_translations.items():
if re.match(arch_regexp, build_arch):
return gn_arch_name
bb.fatal('Unsuported BUILD_ARCH value: "%s"' % build_arch)
# GN target architecture helpers.
#
# Determining the target architecture is more difficult, as there are many
# different values we can use on the Yocto side (e.g. TUNE_ARCH, TARGET_ARCH,
# MACHINEOVERRIDES etc). What we do is define the mapping with regular,
# non-Python variables with overrides that are generic enough (i.e. "x86"
# instead of "i586") and then use gn_target_arch_name() to return the right
# value with some validation.
GN_TARGET_ARCH_NAME:aarch64 = "arm64"
GN_TARGET_ARCH_NAME:arm = "arm"
GN_TARGET_ARCH_NAME:x86 = "x86"
GN_TARGET_ARCH_NAME:x86-64 = "x64"
def clang_install_path(d):
"""Return clang compiler install path."""
return d.getVar("STAGING_BINDIR_NATIVE")
def gn_target_arch_name(d):
"""Returns a GN architecture name corresponding to the target machine's
architecture."""
name = d.getVar("GN_TARGET_ARCH_NAME")
if name is None:
bb.fatal('Unsupported target architecture. A valid override for the '
'GN_TARGET_ARCH_NAME variable could not be found.')
return name
def gn_host_pkg_config(d):
"""Return absolute paths to pkg-config-native."""
return d.getVar("STAGING_BINDIR_NATIVE") + "/" + "pkg-config-native"
def write_toolchain_file(d, file_path):
"""Creates a complete GN toolchain file in |file_path|."""
import string
# Even though we always use clang, the "clang_toolchain" GN template is too
# restrictive in the way it sets variables such as |cxx|. Since it is just
# a wrapper on top of the "gcc_toolchain" template, we keep using the
# latter directly to accommodate our cross-compilation needs.
toolchain_tmpl = string.Template(
'gcc_toolchain("${toolchain_name}") {\n'
' cc = "${cc}"\n'
' cxx = "${cxx}"\n'
' ar = "${ar}"\n'
' ld = cxx # GN expects a compiler, not a linker.\n'
' nm = "${nm}"\n'
' readelf = "${readelf}"\n'
' extra_cflags = "${extra_cflags}"\n'
' extra_cppflags = "${extra_cppflags}"\n'
' extra_cxxflags = "${extra_cxxflags}"\n'
' extra_ldflags = "${extra_ldflags}"\n'
' toolchain_args = {\n'
' current_cpu = "${current_cpu}"\n'
' current_os = "linux"\n'
' is_clang = false\n'
' host_pkg_config = "${host_pkg_config}"\n'
' }\n'
'}\n'
)
native_toolchain = {
'toolchain_name': 'yocto_native',
'current_cpu': gn_host_arch_name(d),
'host_pkg_config': gn_host_pkg_config(d),
'cc': d.expand('${BUILD_CC}'),
'cxx': d.expand('${BUILD_CXX}'),
'ar': d.expand('${BUILD_AR}'),
'nm': d.expand('${BUILD_NM}'),
'readelf': d.expand('${BUILD_PREFIX}readelf'),
'extra_cflags': d.expand('${BUILD_CFLAGS}'),
'extra_cppflags': d.expand('${BUILD_CPPFLAGS}'),
'extra_cxxflags': d.expand('${BUILD_CXXFLAGS}'),
'extra_ldflags': d.expand('${BUILD_LDFLAGS}'),
}
target_toolchain = {
'toolchain_name': 'yocto_target',
'current_cpu': gn_target_arch_name(d),
'host_pkg_config': gn_host_pkg_config(d),
'cc': d.expand('${CC}'),
'cxx': d.expand('${CXX}'),
'ar': d.expand('${AR}'),
'nm': d.expand('${NM}'),
'readelf': d.expand('${TARGET_PREFIX}readelf'),
'extra_cflags': d.expand('${TARGET_CFLAGS}'),
'extra_cppflags': d.expand('${TARGET_CPPFLAGS}'),
'extra_cxxflags': d.expand('${TARGET_CXXFLAGS}'),
'extra_ldflags': d.expand('${TARGET_LDFLAGS}'),
}
with open(file_path, 'w') as toolchain_file:
toolchain_file.write(
'# This file has been generated automatically.\n'
'\n'
'import("//build/toolchain/gcc_toolchain.gni")\n'
'\n'
)
toolchain_file.write(toolchain_tmpl.substitute(native_toolchain))
toolchain_file.write(toolchain_tmpl.substitute(target_toolchain))

View File

@@ -0,0 +1,30 @@
#!/bin/sh
if [ ! -s tst_list ]; then
echo PASS: no tests
exit 0
fi
if [ -z "$LANG" ]; then
export LANG=C.UTF-8
fi
if [ -z "$QT_QPA_PLATFORM" ]; then
export QT_QPA_PLATFORM=offscreen
fi
if [ $UID -ne 0 ]; then
if [ ! -w ${HOME} ]; then
echo "Home directory should be writable, run as root:"
echo "usermod -d /home/${USER} ${USER} && mkhomedir_helper ${USER}"
fi
fi
if [ $UID -eq 0 ]; then
export QTWEBENGINE_DISABLE_SANDBOX=1
fi
for test in $(cat tst_list); do
(
cd $(dirname ${test})
t=$(basename ${test})
./${t} && echo PASS: ${t} || echo FAIL: ${t}
)
done

View File

@@ -0,0 +1,20 @@
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 & BSD-3-Clause"
LIC_FILES_CHKSUM = " \
file://LICENSES/BSD-3-Clause.txt;md5=cb40fa7520502d8c7a3aea47cae1316c \
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/LGPL-3.0-only.txt;md5=e6a600fd5e1d9cbde2d983680233ad02 \
file://LICENSES/LicenseRef-Qt-Commercial.txt;md5=40a1036f91cefc0e3fabad241fb5f187 \
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
include recipes-qt/qt6/qt6-commercial.inc
DEPENDS += "qtbase qtdeclarative qtdeclarative-native qmlcompilerplus-native"
BBCLASSEXTEND = "native nativesdk"

View File

@@ -0,0 +1,38 @@
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) & BSD-3-Clause & MIT"
LIC_FILES_CHKSUM = " \
file://LICENSES/BSD-3-Clause.txt;md5=cb40fa7520502d8c7a3aea47cae1316c \
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/LGPL-3.0-only.txt;md5=e6a600fd5e1d9cbde2d983680233ad02 \
file://LICENSES/LicenseRef-Qt-Commercial.txt;md5=40a1036f91cefc0e3fabad241fb5f187 \
file://LICENSES/Qt-GPL-exception-1.0.txt;md5=9a13522cd91a88fba784baf16ea66af8 \
file://src/3rdparty/assimp/LICENSE;md5=2119edef0916b0bd511cb3c731076271 \
file://src/3rdparty/imgui/LICENSE.imstb.txt;md5=2c03212e4ad1f727e9c2251327812596 \
file://src/3rdparty/imgui/LICENSE.proggyclean.txt;md5=f9db3a4f99ffc4d38de6bb590db15f31 \
file://src/3rdparty/imgui/LICENSE.txt;md5=875a54e93593c8b244ef6b78cacc336e \
"
inherit qt6-cmake
inherit features_check
REQUIRED_DISTRO_FEATURES = "opengl"
include recipes-qt/qt6/qt6-git.inc
include recipes-qt/qt6/qt6.inc
ASSIMP_BRANCH = "qt6_assimp"
SRC_URI += " \
${QT_GIT}/${QT_GIT_PROJECT}/qtquick3d-assimp.git;name=qt3d-assimp;branch=${ASSIMP_BRANCH};protocol=${QT_GIT_PROTOCOL};destsuffix=git/src/3rdparty/assimp/src \
"
# Needed for supporting 64bit off_t
CFLAGS:append:libc-musl = " -DIOAPI_NO_64 -D_GNU_SOURCE"
DEPENDS = "qtbase qtdeclarative qtdeclarative-native qtshadertools qtshadertools-native"
PACKAGECONFIG[system-assimp] = "-DFEATURE_qt3d_system_assimp=ON,-DQT_FEATURE_qt3d_system_assimp=OFF,assimp"
PACKAGECONFIG[qtgamepad] = ",,qtgamepad"
SRCREV_FORMAT = "qt3d_qt3d-assimp"

View File

@@ -0,0 +1,27 @@
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 & BSD-3-Clause) & BSD-2-Clause"
LIC_FILES_CHKSUM = " \
file://LICENSES/BSD-3-Clause.txt;md5=cb40fa7520502d8c7a3aea47cae1316c \
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/LGPL-3.0-only.txt;md5=e6a600fd5e1d9cbde2d983680233ad02 \
file://LICENSES/LicenseRef-Qt-Commercial.txt;md5=40a1036f91cefc0e3fabad241fb5f187 \
file://LICENSES/Qt-GPL-exception-1.0.txt;md5=9a13522cd91a88fba784baf16ea66af8 \
file://src/core5/codecs/LICENSE.QTSCIICODEC.txt;md5=f36a16de69d08da0af83ce2a672d8972 \
"
inherit qt6-cmake
include recipes-qt/qt6/qt6-git.inc
include recipes-qt/qt6/qt6.inc
ENABLE_QMLCOMPILER = "0"
DEPENDS += "qtbase"
PACKAGECONFIG ?= "qml"
PACKAGECONFIG[iconv] = "-DFEATURE_iconv=ON,-DFEATURE_iconv=OFF,virtual/libiconv"
PACKAGECONFIG[qml] = ",,qtdeclarative qtdeclarative-native"
BBCLASSEXTEND = "native nativesdk"

View File

@@ -0,0 +1,8 @@
python() {
if d.getVar('QT_EDITION') != 'commercial':
raise bb.parse.SkipRecipe('Available only with Commercial Qt')
}
QT_GIT = "${QT_COMMERCIAL_GIT}"
QT_GIT_PROTOCOL = "${QT_COMMERCIAL_GIT_PROTOCOL}"
QT_MODULE = "tqtc-${BPN}"

View File

@@ -0,0 +1,73 @@
DESCRIPTION ?= "Qt is a cross-platform application development framework for desktop, embedded and mobile."
HOMEPAGE ?= "https://www.qt.io"
inherit srcrev-update
QT_MODULE ?= "${BPN}"
QT_MODULE_BRANCH ?= "6.8"
QT_MODULE_BRANCH_PARAM ?= "branch=${QT_MODULE_BRANCH};nobranch=1"
QT_MODULE_REPO ?= "${QT_MODULE}.git"
SRC_URI = "${QT_GIT}/${QT_GIT_PROJECT}/${QT_MODULE_REPO};name=${QT_MODULE};${QT_MODULE_BRANCH_PARAM};protocol=${QT_GIT_PROTOCOL}"
CVE_PRODUCT ?= "qt:${BPN} qt:qt"
S = "${WORKDIR}/git"
PV = "${QT_VERSION}"
SRCREV = "${SRCREV_${QT_MODULE}}"
SRCREV_tqtc-qmlcompilerplus = "f932f235a113027388b1532cab0351ed472fd3eb"
SRCREV_tqtc-qtinsighttracker = "fe931a9fd61b7cb23cf316d41b4efb1683da75f5"
SRCREV_tqtc-qtvncserver = "f964c66f686ede85c8edb312e8fffdda2dfacfc5"
SRCREV_pyside-setup = "6809dbcb890700dfa7506f5c2f2aebe057b5ec4c"
SRCREV_qt3d = "8305762c180fb6debe28337863229a163ca7393e"
SRCREV_qt3d-assimp = "647f94648c0ae24b9c6684383a9dbbc0e2fc23b7"
SRCREV_qt5compat = "10054f8ac0fe61aad4a6c45b22bd08247ca286d9"
SRCREV_qtbase = "04ec5f144a6167ce5d29cf72da3e2de92205b4db"
SRCREV_qtapplicationmanager = "6143f914f321521dacb22e3182dd1e4b0246e8dd"
SRCREV_qtcharts = "110f613f14c36ccb80c51fb5dcd450880d7f0a44"
SRCREV_qtcoap = "6cc7197b70f29210656428eb69dc20e14ca5f447"
SRCREV_qtconnectivity = "15d58933c6a1ccd954d1fa123cbb8edd1a589fa3"
SRCREV_qtdatavis3d = "e00c02f5409fa73f6643c0c2115942785473a867"
SRCREV_qtdeclarative = "32452675dc7661de32013969f9d2eb613da70096"
SRCREV_qtdeviceutilities = "ef244aca03aac6704fd628211ccb387c06cbdc39"
SRCREV_qtdoc = "59bcdbfa8c050a2e242a9f2fd0805b200cb73178"
SRCREV_qtgraphs = "94f28609c9538e1d9f0f5d9707d0c4b69e73c73b"
SRCREV_qtgrpc = "b9a32e0aec0e5816d911e4987a720e2fc054da36"
SRCREV_qthttpserver = "29929d7bc4dbffdb10ba7f23d4699447f5b03457"
SRCREV_qtimageformats = "c9dcdde82d0f3d83a86dd50ecdafdb08264030f0"
SRCREV_qtinterfaceframework = "1ff177517ece6f7959e7d26c1257bf0fd1ae609f"
SRCREV_qtlanguageserver = "bea5899d2840dec38c1c7b917553618c20a7b546"
SRCREV_qtlocation = "e33bd271179b3d8aa365e3c7799f010cfc8a410d"
SRCREV_qtlottie = "92a0884da0a3604b12bc9afa1b0ce838a0390f75"
SRCREV_qtmqtt = "d48bd749f1fa6a6dae6885346f30595c1885d213"
SRCREV_qtmultimedia = "88d40064a827e23eaec060145bb644a902ffb073"
SRCREV_qtnetworkauth = "d029c89b9daa2f6e0ee4eaca9103cf7eab92976b"
SRCREV_qtopcua = "f364b47fdcdcb9947a5ffd9bd1b5b0c6d1c28e4b"
SRCREV_qtpositioning = "73e77ed97a9384eb73140b83a364d3866358e364"
SRCREV_qtquick3d = "68474a13909091f74cde8bcdcc69afb9d00a1355"
SRCREV_qtquick3d-assimp = "647f94648c0ae24b9c6684383a9dbbc0e2fc23b7"
SRCREV_qtquick3dphysics = "699dffd6b215becf23d6391eff1000b342fad7a7"
SRCREV_qtquickdesigner-components = "3de639bdc5a45fd93f9776a1e5777a9726b1afca"
SRCREV_qtquicktimeline = "5f121ca967dab80f1fe5360a9685eaec74d19762"
SRCREV_qtremoteobjects = "589cfeb1285adf6937bbf1b4fd7126b05dd09244"
SRCREV_qtscxml = "5ff53a3173db81c8d52e49b193ff57b4e5d3426a"
SRCREV_qtsensors = "b3c6fa3e74c992d1700b055b35e6192d13b129a0"
SRCREV_qtserialbus = "ed35bc6b721d77db6e54711408d61645fc4c3460"
SRCREV_qtserialport = "4497ff4b586b42dfd1c3c17240517d6e0cd44e39"
SRCREV_qtshadertools = "b32574d0307e296a2604a83c4deae6ccb2ba1fa7"
SRCREV_qtspeech = "f667f8da63fcf782e696da16b6b85ad3fbf4539b"
SRCREV_qtsvg = "e0e12caf5353ddb9ff43a99913dcf36942648031"
SRCREV_qttools = "31ec5e9c0f3388756d06aa8ffd1c59c5f097dbaa"
SRCREV_qttools-qlitehtml = "2992a310640697325791a5494ca8f4d4552de368"
SRCREV_qttools-qlitehtml-litehtml = "6ca1ab0419e770e6d35a1ef690238773a1dafcee"
SRCREV_qttranslations = "353b10b36c4a26775b204f24b23b47b9dcc00ce4"
SRCREV_qtvirtualkeyboard = "f9047a6d586634ac4fcd2fc35f539f0c367683ed"
SRCREV_qtwayland = "3666e24b63916d8af2d71243dcd821860e4f7d19"
SRCREV_qtwebchannel = "5d51387a00af8cb76ca7e879583f398faef1f602"
SRCREV_qtwebengine = "2a3d355db0516e428594632ec94c46cd10d08332"
SRCREV_qtwebengine-chromium = "55749ed0af5869215b88007df0cba430746583ae"
SRCREV_qtwebsockets = "8828435e45582b002b324876125e626c52794448"
SRCREV_qtwebview = "3d044bf320701781cc95fa36c2a0bd9bd93d518f"

View File

@@ -0,0 +1,5 @@
QT_GIT = "${QT_COMMERCIAL_GIT}"
QT_GIT_PROTOCOL = "${QT_COMMERCIAL_GIT_PROTOCOL}"
QT_MODULE_REPO = "tqtc-${QT_MODULE}.git"
QT_MODULE_BRANCH := "tqtc/lts-${QT_MODULE_BRANCH}"

View File

@@ -0,0 +1,99 @@
FILESEXTRAPATHS:append := ":${THISDIR}/ptest"
SRC_URI += "file://run-ptest"
inherit ptest
QT_PTEST_ENABLED ?= "${@bb.utils.contains('DISTRO_FEATURES', 'ptest', '1', '0', d)}"
PTEST_ENABLED = "${QT_PTEST_ENABLED}"
DEBUG_PREFIX_MAP += "\
-fmacro-prefix-map=${D}= \
"
do_install_ptest_base[progress] = "${@d.getVarFlag('do_compile', 'progress')}"
B_PTEST = "${WORKDIR}/build-ptest"
fakeroot do_install_ptest() {
cat >${WORKDIR}/toolchain-ptest.cmake <<EOF
include(${WORKDIR}/toolchain.cmake)
list(PREPEND CMAKE_FIND_ROOT_PATH ${D})
EOF
mkdir -p ${B_PTEST}
cd ${B_PTEST}
cmake \
${OECMAKE_GENERATOR_ARGS} \
-DCMAKE_TOOLCHAIN_FILE=${WORKDIR}/toolchain-ptest.cmake \
-DPython3_EXECUTABLE=${PYTHON} \
${EXTRA_OECMAKE} \
-DQT_BUILD_STANDALONE_TESTS=ON \
-DQT_BUILD_EXAMPLES=OFF \
-DQT_ADDITIONAL_PACKAGES_PREFIX_PATH=${D}${QT6_INSTALL_LIBDIR}/cmake \
-DCMAKE_STAGING_PREFIX=${D}${prefix} \
-DCMAKE_SKIP_RPATH=ON \
-DQT_DISABLE_NO_DEFAULT_PATH_IN_QT_PACKAGES=ON \
${S} \
-Wno-dev
${CMAKE_VERBOSE} cmake --build ${B_PTEST} --target all
for tests in auto baseline
do
if [ -e "${B_PTEST}/tests/$tests" ]; then
install -d ${D}${PTEST_PATH}/tests
find ${B_PTEST}/tests/$tests ! -type d -a \( \
-executable -o \
-name qmldir -o \
-name *.rcc \
\) -exec sh -c '\
install -D "$1" "${D}${PTEST_PATH}${1#${B_PTEST}}" \
' _ {} \;
# tests may depend on files from sources
cp -r ${S}/tests/$tests ${D}${PTEST_PATH}/tests
fi
done
}
fakeroot python do_create_ptest_list() {
import json, os, subprocess
builddir = d.getVar('B_PTEST')
ptest_path = d.getVar('PTEST_PATH')
try:
command_output = subprocess.check_output(['ctest', '--show-only=json-v1'], cwd=builddir, text=True)
except subprocess.CalledProcessError as e:
bb.fatal('Could not get list of tests: {e.output}')
json_data = json.loads(command_output)
tests_data = json_data.get('tests', [])
output = d.getVar('D') + os.path.join(ptest_path, 'tst_list')
file = open(output, 'w')
for test in tests_data:
test_name = test.get('name')
working_directory = next((prop['value'] for prop in test.get('properties', []) if prop['name'] == 'WORKING_DIRECTORY'), None)
test_executable = os.path.normpath(os.path.join(working_directory,test_name))
if test_executable.startswith(builddir) and os.path.isfile(test_executable):
test_executable = test_executable.replace(builddir,ptest_path)
file.write(f'{test_executable}\n')
file.close()
}
addtask create_ptest_list after do_install_ptest_base before do_package
python () {
if not(d.getVar('PTEST_ENABLED') == "1"):
bb.build.deltask('do_create_ptest_list', d)
}
INSANE_SKIP:${PN}-ptest += "file-rdeps"
PACKAGESPLITFUNCS =+ "remove_ptest_debug"
remove_ptest_debug() {
if [ -e ${PKGD}${QT6_INSTALL_LIBDIR}/${BPN}/ptest/tests ]; then
find ${PKGD}${QT6_INSTALL_LIBDIR}/${BPN}/ptest/tests -depth -type d -name .debug -exec rm -rf '{}' \;
fi
}

View File

@@ -0,0 +1,127 @@
include recipes-qt/qt6/qt6-ptest.inc
PACKAGECONFIG[examples] = "-DQT_BUILD_EXAMPLES=ON,-DQT_BUILD_EXAMPLES=OFF,"
PACKAGECONFIG[tests] = "-DQT_BUILD_TESTS=ON,-DQT_BUILD_TESTS=OFF,"
# For qmake projects
EXTRA_QMAKEVARS_PRE += "${@bb.utils.contains('PACKAGECONFIG', 'examples', 'QT_BUILD_PARTS+=examples', 'QT_BUILD_PARTS-=examples', d)}"
EXTRA_QMAKEVARS_PRE += "${@bb.utils.contains('PACKAGECONFIG', 'tests', 'QT_BUILD_PARTS+=tests', 'QT_BUILD_PARTS-=tests', d)}"
# If Qt6 (qtbase) is machine specific, then everything will be,
# because the (initial) qtbase configuration becomes part of Qt5/qmake
python __anonymous() {
barch = d.getVar("BUILD_ARCH", True) or ''
tarch = d.getVar("TARGET_ARCH", True) or ''
# do not do anything if we are building a native package
if barch != tarch:
tarch = d.getVar("QT_PACKAGES_ARCH", True) or ''
if tarch:
d.setVar("PACKAGE_ARCH", tarch)
}
ENABLE_QMLCOMPILER ?= "${QT_COMMERCIAL_MODULES}"
python __anonymous() {
if (d.getVar('QT_EDITION', True) != 'commercial' or
d.getVar('ENABLE_QMLCOMPILER', True) == '0' or
d.getVar('BPN', True) == 'qmlcompilerplus' or
d.getVar('CLASSOVERRIDE', True) != 'class-target'):
return
if bb.utils.contains('DEPENDS', "qtdeclarative-native", True, False, d):
d.appendVar("DEPENDS", " qmlcompilerplus-native")
}
# Many examples come with libraries installed outside of standard libdir,
# suppress QA check complaining
INSANE_SKIP:${PN}-dbg += "libdir"
INSANE_SKIP:${PN}-examples += "libdir dev-so"
SYSROOT_DIRS += "${QT6_INSTALL_BINDIR} ${QT6_INSTALL_LIBEXECDIR}"
PACKAGE_BEFORE_PN = "${PN}-qmlplugins ${PN}-tools ${PN}-plugins ${PN}-examples"
ALLOW_EMPTY:${PN} = "1"
ALLOW_EMPTY:${PN}-plugins = "1"
ALLOW_EMPTY:${PN}-qmlplugins = "1"
RRECOMMENDS:${PN} = " \
${PN}-plugins \
${PN}-qmlplugins \
"
RRECOMMENDS:${PN}:class-native = ""
RRECOMMENDS:${PN}-dev += " \
${PN}-staticdev \
"
FILES:${PN}-qmlplugins = " \
${QT6_INSTALL_QMLDIR} \
"
FILES:${PN}-tools = " \
${QT6_INSTALL_BINDIR} \
${QT6_INSTALL_LIBEXECDIR} \
"
FILES:${PN}-plugins = " \
${QT6_INSTALL_PLUGINSDIR}/*/*${SOLIBSDEV} \
${QT6_INSTALL_PLUGINSDIR}/*/*/*${SOLIBSDEV} \
${QT6_INSTALL_PLUGINSDIR}/*/*/*/*${SOLIBSDEV} \
"
FILES:${PN}-plugins:mingw32 = " \
${QT6_INSTALL_PLUGINSDIR}/*/*.dll \
${QT6_INSTALL_PLUGINSDIR}/*/*/*.dll \
${QT6_INSTALL_PLUGINSDIR}/*/*/*/*.dll \
"
FILES:${PN} += " \
${QT6_INSTALL_LIBDIR}/lib*${SOLIBS} \
"
FILES:${PN}-dev += " \
${QT6_INSTALL_DESCRIPTIONSDIR} \
${QT6_INSTALL_DOCDIR} \
${QT6_INSTALL_INCLUDEDIR} \
${QT6_INSTALL_LIBDIR}/lib*${SOLIBSDEV} \
${QT6_INSTALL_LIBDIR}/*.prl \
${QT6_INSTALL_LIBDIR}/*.la \
${QT6_INSTALL_LIBDIR}/cmake \
${QT6_INSTALL_LIBDIR}/metatypes \
${QT6_INSTALL_LIBDIR}/pkgconfig \
${QT6_INSTALL_LIBDIR}/sbom \
${QT6_INSTALL_MKSPECSDIR} \
${QT6_INSTALL_QMLDIR}/*.qmltypes \
${QT6_INSTALL_QMLDIR}/*/*.qmltypes \
${QT6_INSTALL_QMLDIR}/*/*/*.qmltypes \
${QT6_INSTALL_QMLDIR}/*/*/*/*.qmltypes \
${QT6_INSTALL_QMLDIR}/*/*/*/*/*.qmltypes \
${QT6_INSTALL_QMLDIR}/*/designer \
${QT6_INSTALL_QMLDIR}/*/*/designer \
${QT6_INSTALL_QMLDIR}/*/*/*/designer \
"
FILES:${PN}-staticdev += " \
${QT6_INSTALL_LIBDIR}/*.a \
${QT6_INSTALL_PLUGINSDIR}/*/*.a \
${QT6_INSTALL_PLUGINSDIR}/*/*.prl \
${QT6_INSTALL_PLUGINSDIR}/*/*/*.a \
${QT6_INSTALL_PLUGINSDIR}/*/*/*.prl \
${QT6_INSTALL_QMLDIR}/*/*.a \
${QT6_INSTALL_QMLDIR}/*/*.prl \
${QT6_INSTALL_QMLDIR}/*/*/*.a \
${QT6_INSTALL_QMLDIR}/*/*/*.prl \
${QT6_INSTALL_QMLDIR}/*/*/*/*.a \
${QT6_INSTALL_QMLDIR}/*/*/*/*.prl \
${QT6_INSTALL_QMLDIR}/*/*/*/*/*.a \
${QT6_INSTALL_QMLDIR}/*/*/*/*/*.prl \
${QT6_INSTALL_LIBDIR}/objects* \
${QT6_INSTALL_PLUGINSDIR}/*/objects* \
${QT6_INSTALL_QMLDIR}/*/objects*/ \
${QT6_INSTALL_QMLDIR}/*/*/objects*/ \
${QT6_INSTALL_QMLDIR}/*/*/*/objects*/ \
${QT6_INSTALL_QMLDIR}/*/*/*/*/objects*/ \
"
FILES:${PN}-examples = " \
${QT6_INSTALL_EXAMPLESDIR} \
"
RDEPENDS:${PN}-examples = "${PN}"

View File

@@ -0,0 +1,38 @@
DESCRIPTION = "Qt component for application lifecycle management"
LICENSE = "The-Qt-Company-Commercial | (GPL-3.0-only & Qt-GPL-exception-1.0) & GFDL-1.3-no-invariants-only & BSD-3-Clause"
LIC_FILES_CHKSUM = " \
file://LICENSES/BSD-3-Clause.txt;md5=cb40fa7520502d8c7a3aea47cae1316c \
file://LICENSES/GFDL-1.3-no-invariants-only.txt;md5=a22d0be1ce2284b67950a4d1673dd1b0 \
file://LICENSES/GPL-3.0-only.txt;md5=d32239bcb673463ab874e80d47fae504 \
file://LICENSES/LicenseRef-Qt-Commercial.txt;md5=40a1036f91cefc0e3fabad241fb5f187 \
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
DEPENDS += "qtbase qtdeclarative libyaml libarchive qtapplicationmanager-native"
DEPENDS:append:libc-musl = " libexecinfo"
RDEPENDS:${PN}:class-target = "libcrypto ${PN}-tools"
EXTRA_OECMAKE += "-DQT_APPMAN_SKIP_EXCLUDE_TOOLS_FROM_DEFAULT_TARGET=ON"
PACKAGECONFIG ?= "${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'multi-process', '', d)}"
PACKAGECONFIG[tools-only] = "-DFEATURE_am_tools_only=ON, -DFEATURE_am_tools_only=OFF"
PACKAGECONFIG[multi-process] = "-DFEATURE_am_multi_process=ON, -DFEATURE_am_multi_process=OFF, qtwayland qtwayland-native"
PACKAGECONFIG:class-native ??= "tools-only"
PACKAGECONFIG:class-nativesdk ??= "${PACKAGECONFIG:class-native}"
FILES:${PN}-tools = "\
${QT6_INSTALL_BINDIR}/appman-packager* \
${QT6_INSTALL_BINDIR}/appman-dumpqmltypes* \
${QT6_INSTALL_BINDIR}/appman-qmltestrunner* \
"
BBCLASSEXTEND = "nativesdk native"
INSANE_SKIP:${PN}-ptest += "buildpaths"

View File

@@ -0,0 +1,126 @@
From a08e167d51c33f91009ba27adaa083c783c1ac54 Mon Sep 17 00:00:00 2001
From: Martin Jansa <Martin.Jansa@gmail.com>
Date: Mon, 15 Apr 2013 04:29:32 +0200
Subject: [PATCH] Add linux-oe-g++ platform
* This qmake.conf unlike other platforms reads most variables from
shell environment, because it's easier for qt recipes to export
*FLAGS or CC specific for given recipe
Upstream-Status: Inappropriate [embedded specific]
too OE specific, probably cannot be upstreamed
Change-Id: I0591ed5da0d61d7cf1509d420e6b293582f1863c
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
---
mkspecs/features/qt.prf | 6 ++---
mkspecs/features/qt_functions.prf | 4 +--
mkspecs/linux-oe-g++/qmake.conf | 38 ++++++++++++++++++++++++++++
mkspecs/linux-oe-g++/qplatformdefs.h | 1 +
mkspecs/oe-device-extra.pri | 0
5 files changed, 44 insertions(+), 5 deletions(-)
create mode 100644 mkspecs/linux-oe-g++/qmake.conf
create mode 100644 mkspecs/linux-oe-g++/qplatformdefs.h
create mode 100644 mkspecs/oe-device-extra.pri
diff --git a/mkspecs/features/qt.prf b/mkspecs/features/qt.prf
index 3c4b284b68..a7545ace5c 100644
--- a/mkspecs/features/qt.prf
+++ b/mkspecs/features/qt.prf
@@ -164,7 +164,7 @@ import_plugins {
plug_name = $$QMAKE_PREFIX_STATICLIB$${plug}$$qtPlatformTargetSuffix($$config_variable).$$QMAKE_EXTENSION_STATICLIB
plug_path = $$eval(QT_PLUGIN.$${plug}.PATH)
isEmpty(plug_path): \
- plug_path = $$[QT_INSTALL_PLUGINS/get]
+ plug_path = $$[QT_INSTALL_PLUGINS]
LIBS += $$plug_path/$$plug_type/$$plug_name
} else {
LIBS += -l$${plug}$$qtPlatformTargetSuffix(CONFIG)
@@ -319,8 +319,8 @@ for(ever) {
# static builds: link qml import plugins into the target.
contains(all_qt_module_deps, qml): \
qtConfig(static):import_plugins:!host_build:!no_import_scan {
- exists($$[QT_INSTALL_QML/get]): \
- QMLPATHS *= $$[QT_INSTALL_QML/get]
+ exists($$[QT_INSTALL_QML]): \
+ QMLPATHS *= $$[QT_INSTALL_QML]
# run qmlimportscanner
qtPrepareLibExecTool(QMLIMPORTSCANNER, qmlimportscanner, , system)
diff --git a/mkspecs/features/qt_functions.prf b/mkspecs/features/qt_functions.prf
index f1371c8cc6..84cbf4a476 100644
--- a/mkspecs/features/qt_functions.prf
+++ b/mkspecs/features/qt_functions.prf
@@ -95,7 +95,7 @@ defineTest(qtPrepareTool) {
cmd = $$eval(QT_TOOL.$${2}.binary)
isEmpty(cmd) {
isEmpty(5) {
- instloc = $$[QT_HOST_BINS]
+ instloc = $$[QT_HOST_BINS/get]
} else {
instloc = $$5
}
@@ -140,7 +140,7 @@ defineTest(qtPrepareTool) {
# Forwards its arguments to qtPrepareTool but defaults the installation location to
# $$[QT_HOST_LIBEXECS]
defineTest(qtPrepareLibExecTool) {
- isEmpty(instloc): instloc = "$$[QT_HOST_LIBEXECS]"
+ isEmpty(instloc): instloc = "$$[QT_HOST_LIBEXECS/get]"
qtPrepareTool($$1, $$2, $$3, $$4, $$instloc)
}
diff --git a/mkspecs/linux-oe-g++/qmake.conf b/mkspecs/linux-oe-g++/qmake.conf
new file mode 100644
index 0000000000..99ff3741d3
--- /dev/null
+++ b/mkspecs/linux-oe-g++/qmake.conf
@@ -0,0 +1,38 @@
+#
+# qmake configuration for linux-g++ with modifications for building with OpenEmbedded
+#
+
+MAKEFILE_GENERATOR = UNIX
+CONFIG += incremental
+QMAKE_INCREMENTAL_STYLE = sublib
+
+include(../common/linux.conf)
+
+QMAKE_AR = $$(OE_QMAKE_AR) cqs
+QMAKE_STRIP = $$(OE_QMAKE_STRIP)
+QMAKE_OBJCOPY = $$(OE_QMAKE_OBJCOPY)
+
+include(../common/gcc-base-unix.conf)
+
+# *FLAGS from gcc-base.conf
+QMAKE_CFLAGS += $$(OE_QMAKE_CFLAGS)
+QMAKE_CXXFLAGS += $$(OE_QMAKE_CXXFLAGS)
+QMAKE_LFLAGS += $$(OE_QMAKE_LDFLAGS)
+
+include(../common/g++-unix.conf)
+
+# tc settings from g++-base.conf
+QMAKE_CC = $$(OE_QMAKE_CC)
+QMAKE_CXX = $$(OE_QMAKE_CXX)
+
+QMAKE_LINK = $$(OE_QMAKE_LINK)
+QMAKE_LINK_SHLIB = $$(OE_QMAKE_LINK)
+QMAKE_LINK_C = $$(OE_QMAKE_LINK)
+QMAKE_LINK_C_SHLIB = $$(OE_QMAKE_LINK)
+
+QMAKE_AR_LTCG = $$(OE_QMAKE_AR_LTCG) cqs
+
+include(../oe-device-extra.pri)
+
+load(device_config)
+load(qt_config)
diff --git a/mkspecs/linux-oe-g++/qplatformdefs.h b/mkspecs/linux-oe-g++/qplatformdefs.h
new file mode 100644
index 0000000000..5d22fb4101
--- /dev/null
+++ b/mkspecs/linux-oe-g++/qplatformdefs.h
@@ -0,0 +1 @@
+#include "../linux-g++/qplatformdefs.h"
diff --git a/mkspecs/oe-device-extra.pri b/mkspecs/oe-device-extra.pri
new file mode 100644
index 0000000000..e69de29bb2

View File

@@ -0,0 +1,39 @@
From 27896986b3c2930ccbbe062d3e7a0b7bcc08caf1 Mon Sep 17 00:00:00 2001
From: Holger Freyther <zecke@selfish.org>
Date: Wed, 26 Sep 2012 17:22:30 +0200
Subject: [PATCH] qlibraryinfo: allow to set qt.conf from the outside using the
environment
Allow to set a qt.conf from the outside using the environment. This allows
to inject new prefixes and other paths into qmake. This is needed when using
the same qmake binary to build qt/x11 and qt/embedded
Upstream-Status: Inappropriate [embedded specific]
again very OE specific to read everything from environment (reusing the same
qmake from sstate and replacing all configured paths in it with qt.conf from
environment).
Change-Id: I41595c6ce7514e8f197d0a19a1308c9460037d1b
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
---
src/corelib/global/qlibraryinfo.cpp | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/src/corelib/global/qlibraryinfo.cpp b/src/corelib/global/qlibraryinfo.cpp
index 4b116c54b2e..bfa21c997b4 100644
--- a/src/corelib/global/qlibraryinfo.cpp
+++ b/src/corelib/global/qlibraryinfo.cpp
@@ -103,7 +103,12 @@ static std::unique_ptr<QSettings> findConfiguration()
if (qtconfManualPath)
return std::make_unique<QSettings>(*qtconfManualPath, QSettings::IniFormat);
- QString qtconfig = QStringLiteral(":/qt/etc/qt.conf");
+ QByteArray config = getenv("OE_QMAKE_QTCONF_PATH");
+ QString qtconfig = QFile::decodeName(config);
+ if (QFile::exists(qtconfig))
+ return std::make_unique<QSettings>(qtconfig, QSettings::IniFormat);
+
+ qtconfig = QStringLiteral(":/qt/etc/qt.conf");
if (QResource(qtconfig, QLocale::c()).isValid())
return std::make_unique<QSettings>(qtconfig, QSettings::IniFormat);
#ifdef Q_OS_DARWIN

View File

@@ -0,0 +1,29 @@
From a4d3698a56665cc73a18fa860c862e1b04533792 Mon Sep 17 00:00:00 2001
From: Samuli Piippo <samuli.piippo@qt.io>
Date: Thu, 16 Dec 2021 13:10:48 +0200
Subject: [PATCH] Fix qt.toolchain.cmake for SDK use
The calculated paths for QT_TOOLCHAIN_RELOCATABLE paths point to
host sysroot which must not be used when cross-compiling other projects.
Change-Id: I52aa2a10d2a13fd27d6bf8b4af6dc1833c7a286a
Upstream-Status: Inappropriate [embedded specific]
---
cmake/qt.toolchain.cmake.in | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/cmake/qt.toolchain.cmake.in b/cmake/qt.toolchain.cmake.in
index 15cf7a432e..03de9288df 100644
--- a/cmake/qt.toolchain.cmake.in
+++ b/cmake/qt.toolchain.cmake.in
@@ -67,8 +67,8 @@ get_filename_component(QT_TOOLCHAIN_RELOCATABLE_CMAKE_DIR "${CMAKE_CURRENT_LIST_
# Instead of collapsing the search prefix (which is the case when one is a subdir of the other),
# it concatenates them creating an invalid path. Workaround it by setting the root path to the
# Qt install prefix, and the prefix path to the lib/cmake subdir.
-list(PREPEND CMAKE_PREFIX_PATH "${QT_TOOLCHAIN_RELOCATABLE_CMAKE_DIR}")
-list(PREPEND CMAKE_FIND_ROOT_PATH "${QT_TOOLCHAIN_RELOCATABLE_INSTALL_PREFIX}")
+#list(PREPEND CMAKE_PREFIX_PATH "${QT_TOOLCHAIN_RELOCATABLE_CMAKE_DIR}")
+#list(PREPEND CMAKE_FIND_ROOT_PATH "${QT_TOOLCHAIN_RELOCATABLE_INSTALL_PREFIX}")
# Let CMake load our custom platform modules.
# CMake-provided platform modules take precedence.

View File

@@ -0,0 +1,29 @@
From 07f7e1ae76b24ba64cd87726c438638a8fa3eba0 Mon Sep 17 00:00:00 2001
From: Samuli Piippo <samuli.piippo@qt.io>
Date: Mon, 22 Aug 2022 15:01:28 +0300
Subject: [PATCH] testlib: don't track the build or source directories
Build tests without location of the build and sources directories.
Upstream-Status: Inappropriate [embedded specific]
Change-Id: I8d5add473623a3d9f481097649819c9fb906e4b2
---
src/testlib/CMakeLists.txt | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/testlib/CMakeLists.txt b/src/testlib/CMakeLists.txt
index 6cdb8f3376..3007585e1c 100644
--- a/src/testlib/CMakeLists.txt
+++ b/src/testlib/CMakeLists.txt
@@ -121,8 +121,8 @@ set(qt_tc_build_dir_def
"$<IF:${qt_bool_tc_build_dir},${qt_tc_build_dir},$<TARGET_PROPERTY:BINARY_DIR>>"
)
set_property(TARGET Test APPEND PROPERTY INTERFACE_COMPILE_DEFINITIONS
- QT_TESTCASE_BUILDDIR="${qt_tc_build_dir_def}"
- QT_TESTCASE_SOURCEDIR="$<TARGET_PROPERTY:SOURCE_DIR>"
+ QT_TESTCASE_BUILDDIR=""
+ QT_TESTCASE_SOURCEDIR=""
)
qt_internal_add_docs(Test

View File

@@ -0,0 +1,260 @@
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 & 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/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 \
"
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.filter('DISTRO_FEATURES', 'wayland', d)} \
${@bb.utils.contains('DISTRO_FEATURES', 'opengl', \
bb.utils.contains('DISTRO_FEATURES', 'x11', 'gl', 'kms gbm gles2 eglfs', d), 'no-opengl', d)} \
${@bb.utils.contains('DISTRO_FEATURES', 'directfb', 'directfb', '', d)} \
linuxfb \
"
PACKAGECONFIG_X11 ?= "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'xcb', '', 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 \
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)} \
"
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)}"
# at-spi bridge is used by XCB and wayland
ACCESSIBILITY_DEPENDS = "${@bb.utils.contains_any("DISTRO_FEATURES", "x11 wayland", "at-spi2-core", "", 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[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,${ACCESSIBILITY_DEPENDS}"
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[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 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_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[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
}
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"

View File

@@ -0,0 +1,18 @@
LICENSE = "The-Qt-Company-Commercial | GPL-3.0-only & GFDL-1.3-no-invariants-only"
LIC_FILES_CHKSUM = " \
file://LICENSES/GFDL-1.3-no-invariants-only.txt;md5=a22d0be1ce2284b67950a4d1673dd1b0 \
file://LICENSES/GPL-3.0-only.txt;md5=d32239bcb673463ab874e80d47fae504 \
file://LICENSES/LicenseRef-Qt-Commercial.txt;md5=40a1036f91cefc0e3fabad241fb5f187 \
"
inherit qt6-cmake
include recipes-qt/qt6/qt6-git.inc
include recipes-qt/qt6/qt6.inc
DEPENDS += "qtbase"
PACKAGECONFIG ?= "qml"
PACKAGECONFIG[qml] = ",,qtdeclarative qtdeclarative-native"
INSANE_SKIP:${PN}-ptest += "buildpaths"

View File

@@ -0,0 +1,18 @@
LICENSE = "The-Qt-Company-Commercial | (GPL-3.0-only & Qt-GPL-exception-1.0) & GFDL-1.3-no-invariants-only & BSD-3-Clause"
LIC_FILES_CHKSUM = " \
file://LICENSES/BSD-3-Clause.txt;md5=cb40fa7520502d8c7a3aea47cae1316c \
file://LICENSES/GFDL-1.3-no-invariants-only.txt;md5=a22d0be1ce2284b67950a4d1673dd1b0 \
file://LICENSES/GPL-3.0-only.txt;md5=d32239bcb673463ab874e80d47fae504 \
file://LICENSES/LicenseRef-Qt-Commercial.txt;md5=40a1036f91cefc0e3fabad241fb5f187 \
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
DEPENDS += "qtbase"
PACKAGECONFIG[examples] = "-DQT_BUILD_EXAMPLES=ON,-DQT_BUILD_EXAMPLES=OFF,qtdeclarative qtdeclarative-native"

View File

@@ -0,0 +1,23 @@
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 & BSD-3-Clause"
LIC_FILES_CHKSUM = " \
file://LICENSES/BSD-3-Clause.txt;md5=cb40fa7520502d8c7a3aea47cae1316c \
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/LGPL-3.0-only.txt;md5=e6a600fd5e1d9cbde2d983680233ad02 \
file://LICENSES/LicenseRef-Qt-Commercial.txt;md5=40a1036f91cefc0e3fabad241fb5f187 \
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
DEPENDS += "qtbase"
PACKAGECONFIG ?= "${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', 'bluez', '', d)}"
PACKAGECONFIG[bluez] = "-DFEATURE_bluez=ON,-DFEATURE_bluez=OFF,bluez5"
PACKAGECONFIG[examples] = "-DQT_BUILD_EXAMPLES=ON,-DQT_BUILD_EXAMPLES=OFF,qtdeclarative qtdeclarative-native"
FILES:${PN}-tools = ""

View File

@@ -0,0 +1,18 @@
LICENSE = "The-Qt-Company-Commercial | (GPL-3.0-only & Qt-GPL-exception-1.0) & GFDL-1.3-no-invariants-only"
LIC_FILES_CHKSUM = " \
file://LICENSES/GFDL-1.3-no-invariants-only.txt;md5=a22d0be1ce2284b67950a4d1673dd1b0 \
file://LICENSES/GPL-3.0-only.txt;md5=d32239bcb673463ab874e80d47fae504 \
file://LICENSES/LicenseRef-Qt-Commercial.txt;md5=40a1036f91cefc0e3fabad241fb5f187 \
file://LICENSES/Qt-GPL-exception-1.0.txt;md5=9a13522cd91a88fba784baf16ea66af8 \
"
inherit qt6-cmake features_check
include recipes-qt/qt6/qt6-git.inc
include recipes-qt/qt6/qt6.inc
REQUIRED_DISTRO_FEATURES = "opengl"
DEPENDS += "qtbase qtdeclarative qtdeclarative-native"
INSANE_SKIP:${PN}-ptest += "buildpaths"

View File

@@ -0,0 +1,22 @@
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 & BSD-3-Clause) & BSD-2-Clause"
LIC_FILES_CHKSUM = " \
file://LICENSES/BSD-3-Clause.txt;md5=cb40fa7520502d8c7a3aea47cae1316c \
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/LGPL-3.0-only.txt;md5=e6a600fd5e1d9cbde2d983680233ad02 \
file://LICENSES/LicenseRef-Qt-Commercial.txt;md5=40a1036f91cefc0e3fabad241fb5f187 \
file://LICENSES/Qt-GPL-exception-1.0.txt;md5=9a13522cd91a88fba784baf16ea66af8 \
file://src/3rdparty/masm/LICENSE;md5=dadc3e328f07d2e6fca9177916e902b5 \
"
inherit qt6-cmake
include recipes-qt/qt6/qt6-git.inc
include recipes-qt/qt6/qt6.inc
DEPENDS += "qtbase qtshadertools qtshadertools-native qtdeclarative-native qtlanguageserver qtsvg"
BBCLASSEXTEND = "native nativesdk"
INSANE_SKIP:${PN}-ptest += "buildpaths"

View File

@@ -0,0 +1,18 @@
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 & BSD-3-Clause"
LIC_FILES_CHKSUM = " \
file://LICENSES/BSD-3-Clause.txt;md5=cb40fa7520502d8c7a3aea47cae1316c \
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/LGPL-3.0-only.txt;md5=e6a600fd5e1d9cbde2d983680233ad02 \
file://LICENSES/LicenseRef-Qt-Commercial.txt;md5=40a1036f91cefc0e3fabad241fb5f187 \
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
DEPENDS = "qtbase qtdeclarative qtdeclarative-native qtvirtualkeyboard"
RDEPENDS:${PN} = "connman"

View File

@@ -0,0 +1,42 @@
LICENSE = "(The-Qt-Company-Commercial | GPL-3.0-only & GFDL-1.3-no-invariants-only & BSD-3-Clause) & Apache-2.0 & CC-BY-4.0 & CC-BY-SA-4.0 & ISC"
LIC_FILES_CHKSUM = " \
file://LICENSES/Apache-2.0.txt;md5=b4c615f64dff32f71eeed614d13dfd4c \
file://LICENSES/BSD-3-Clause.txt;md5=cb40fa7520502d8c7a3aea47cae1316c \
file://LICENSES/CC-BY-4.0.txt;md5=ed88d31cea57b15030a1f58ceb04e0d5 \
file://LICENSES/CC-BY-SA-4.0.txt;md5=7130783469368ceb248a4f03e89ea4b8 \
file://LICENSES/GFDL-1.3-no-invariants-only.txt;md5=a22d0be1ce2284b67950a4d1673dd1b0 \
file://LICENSES/GPL-3.0-only.txt;md5=d32239bcb673463ab874e80d47fae504 \
file://LICENSES/ISC.txt;md5=2494cdbaca137fd93842fe9702e9bc4d \
file://LICENSES/LicenseRef-Qt-Commercial.txt;md5=caa060942f6b722bc4329d4195584c38 \
"
inherit qt6-cmake
include recipes-qt/qt6/qt6-git.inc
include recipes-qt/qt6/qt6.inc
DEPENDS += "\
qtbase \
qtcharts \
qtdeclarative qtdeclarative-native \
qtgraphs \
qtlocation \
qtmultimedia \
qtpositioning \
qtquick3d qtquick3d-native \
qtsensors \
qtshadertools-native \
qtsvg \
qtwebsockets \
"
DEPENDS:append:aarch64 = " ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'qtpdf', '', d)} qtquick3dphysics"
DEPENDS:append:arm = " qtquick3dphysics"
DEPENDS:append:armv6 = " ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'qtpdf', '', d)}"
DEPENDS:append:armv7a = " ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'qtpdf', '', d)}"
DEPENDS:append:armv7ve = " ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'qtpdf', '', d)}"
DEPENDS:append:x86 = " qtquick3dphysics"
DEPENDS:append:x86-64 = " ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'qtpdf', '', d)} qtquick3dphysics"
PACKAGECONFIG ?= "examples"
INSANE_SKIP:${PN}-ptest += "buildpaths"

View File

@@ -0,0 +1,17 @@
LICENSE = "The-Qt-Company-Commercial | (GPL-3.0-only & Qt-GPL-exception-1.0) & GFDL-1.3-no-invariants-only & BSD-3-Clause"
LIC_FILES_CHKSUM = " \
file://LICENSES/BSD-3-Clause.txt;md5=cb40fa7520502d8c7a3aea47cae1316c \
file://LICENSES/GFDL-1.3-no-invariants-only.txt;md5=a22d0be1ce2284b67950a4d1673dd1b0 \
file://LICENSES/GPL-3.0-only.txt;md5=d32239bcb673463ab874e80d47fae504 \
file://LICENSES/LicenseRef-Qt-Commercial.txt;md5=40a1036f91cefc0e3fabad241fb5f187 \
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
DEPENDS += "qtbase qtdeclarative qtdeclarative-native qtquick3d qtquick3d-native"
INSANE_SKIP:${PN}-ptest += "buildpaths"

View File

@@ -0,0 +1,30 @@
From 7e5ddd2e22c57fcd2eb7c8ae24150deb564a1b57 Mon Sep 17 00:00:00 2001
From: Alexey Edelev <alexey.edelev@qt.io>
Date: Wed, 16 Oct 2024 11:19:03 +0200
Subject: [PATCH] Remove the export of QT_PROTO_INCLUDES property
The export is not needed in recent version since the QT_PROTO_INCLUDES
property is calculated according to the QtProtobufWellknownTypes
install/staging/build prefixes.
Pick-to: 6.8
Fixes: QTBUG-130113
Change-Id: I81ddc90334b4828ce5c73fe2ef0f12e3efe6b07c
Upstream-Status: Submitted
---
src/wellknown/Qt6ProtobufWellKnownTypesBuildInternals.cmake | 2 --
1 file changed, 2 deletions(-)
diff --git a/src/wellknown/Qt6ProtobufWellKnownTypesBuildInternals.cmake b/src/wellknown/Qt6ProtobufWellKnownTypesBuildInternals.cmake
index 50900553..49152702 100644
--- a/src/wellknown/Qt6ProtobufWellKnownTypesBuildInternals.cmake
+++ b/src/wellknown/Qt6ProtobufWellKnownTypesBuildInternals.cmake
@@ -121,8 +121,6 @@ function(qt_internal_add_protobuf_wellknown_types target)
EXPORT_NAME_PREFIX "${INSTALL_CMAKE_NAMESPACE}${target}"
)
endif()
-
- set_property(TARGET ${target} APPEND PROPERTY EXPORT_PROPERTIES QT_PROTO_INCLUDES)
endfunction()
# The function generates the header 'alias_file' containing the include of the original

View File

@@ -0,0 +1,25 @@
LICENSE = "The-Qt-Company-Commercial | (LGPL-3.0-only | GPL-2.0-only) & (LGPL-3.0-only | GPL-2.0-only | GPL-3.0-only) & GFDL-1.3-no-invariants-only & BSD-3-Clause"
LIC_FILES_CHKSUM = " \
file://LICENSES/BSD-3-Clause.txt;md5=cb40fa7520502d8c7a3aea47cae1316c \
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/LGPL-3.0-only.txt;md5=e6a600fd5e1d9cbde2d983680233ad02 \
file://LICENSES/LicenseRef-Qt-Commercial.txt;md5=40a1036f91cefc0e3fabad241fb5f187 \
"
inherit qt6-cmake
include recipes-qt/qt6/qt6-git.inc
include recipes-qt/qt6/qt6.inc
SRC_URI += "file://0001-Remove-the-export-of-QT_PROTO_INCLUDES-property.patch"
DEPENDS += "qtbase qtgrpc-native protobuf protobuf-native"
PACKAGECONFIG ?= "qml"
PACKAGECONFIG[qml] = "-DFEATURE_grpcquick=ON,-DFEATURE_grpcquick=OFF,qtdeclarative qtdeclarative-native"
BBCLASSEXTEND = "native nativesdk"
INSANE_SKIP:${PN}-ptest += "buildpaths"

View File

@@ -0,0 +1,17 @@
LICENSE = "The-Qt-Company-Commercial | GPL-3.0-only & GFDL-1.3-no-invariants-only & BSD-3-Clause"
LIC_FILES_CHKSUM = " \
file://LICENSES/BSD-3-Clause.txt;md5=cb40fa7520502d8c7a3aea47cae1316c \
file://LICENSES/GFDL-1.3-no-invariants-only.txt;md5=a22d0be1ce2284b67950a4d1673dd1b0 \
file://LICENSES/GPL-3.0-only.txt;md5=d32239bcb673463ab874e80d47fae504 \
file://LICENSES/LicenseRef-Qt-Commercial.txt;md5=40a1036f91cefc0e3fabad241fb5f187 \
"
inherit qt6-cmake
include recipes-qt/qt6/qt6-git.inc
include recipes-qt/qt6/qt6.inc
DEPENDS += "qtbase"
PACKAGECONFIG ?= "websockets"
PACKAGECONFIG[websockets] = ",,qtwebsockets"

View File

@@ -0,0 +1,22 @@
LICENSE = "The-Qt-Company-Commercial | GPL-3.0-only & (LGPL-3.0-only | GPL-2.0-only | GPL-3.0-only) & GFDL-1.3-no-invariants-only"
LIC_FILES_CHKSUM = " \
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/LGPL-3.0-only.txt;md5=e6a600fd5e1d9cbde2d983680233ad02 \
file://LICENSES/LicenseRef-Qt-Commercial.txt;md5=40a1036f91cefc0e3fabad241fb5f187 \
"
inherit qt6-cmake
include recipes-qt/qt6/qt6-git.inc
include recipes-qt/qt6/qt6.inc
DEPENDS += "qtbase"
PACKAGECONFIG ?= "tiff webp"
PACKAGECONFIG[jasper] = "-DFEATURE_jasper=ON,-DFEATURE_jasper=OFF,jasper"
PACKAGECONFIG[mng] = "-DFEATURE_mng=ON,-DFEATURE_mng=OFF,libmng"
PACKAGECONFIG[tiff] = "-DFEATURE_tiff=ON,-DFEATURE_libtiff=OFF,tiff"
PACKAGECONFIG[webp] = "-DFEATURE_webp=ON,-DFEATURE_webp=OFF,libwebp"

View File

@@ -0,0 +1,12 @@
LICENSE = "The-Qt-Company-Commercial"
LIC_FILES_CHKSUM = "file://LICENSES/LicenseRef-Qt-Commercial.txt;md5=40a1036f91cefc0e3fabad241fb5f187"
inherit qt6-cmake
include recipes-qt/qt6/qt6-git.inc
include recipes-qt/qt6/qt6.inc
include recipes-qt/qt6/qt6-commercial.inc
DEPENDS += "qtbase qtdeclarative qtdeclarative-native"
FILES:${PN} += "${QT6_INSTALL_DATADIR}/qtinsight"

View File

@@ -0,0 +1,34 @@
DESCRIPTION = "Qt Interface Framework"
LICENSE = "The-Qt-Company-Commercial | (GPL-3.0-only & Qt-GPL-exception-1.0) & GFDL-1.3-no-invariants-only & BSD-3-Clause"
LIC_FILES_CHKSUM = " \
file://LICENSES/BSD-3-Clause.txt;md5=cb40fa7520502d8c7a3aea47cae1316c \
file://LICENSES/GFDL-1.3-no-invariants-only.txt;md5=a22d0be1ce2284b67950a4d1673dd1b0 \
file://LICENSES/GPL-3.0-only.txt;md5=d32239bcb673463ab874e80d47fae504 \
file://LICENSES/LicenseRef-Qt-Commercial.txt;md5=40a1036f91cefc0e3fabad241fb5f187 \
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
FILES:${PN}-dev += " \
${QT6_INSTALL_DATADIR}/ifcodegen-templates \
"
DEPENDS += "qtbase qtdeclarative qtdeclarative-native qtinterfaceframework-native"
PACKAGECONFIG ?= "ifcodegen remoteobjects"
PACKAGECONFIG:append:class-native = " host-tools-only"
PACKAGECONFIG:append:class-nativesdk = " host-tools-only"
PACKAGECONFIG[host-tools-only] = "-DFEATURE_host_tools_only=ON,-DFEATURE_host_tools_only=OFF"
PACKAGECONFIG[ifcodegen] = "-DFEATURE_ifcodegen=ON,-DFEATURE_ifcodegen=OFF,python3-qface,python3-qface"
PACKAGECONFIG[remoteobjects] = "-DFEATURE_remoteobjects=ON,-DFEATURE_remoteobjects=OFF,qtremoteobjects qtremoteobjects-native"
BBCLASSEXTEND = "native nativesdk"
PRIVATE_LIBS:${PN}-examples = "libInstrumentCluster.so"
INSANE_SKIP:${PN}-ptest += "buildpaths"

View File

@@ -0,0 +1,20 @@
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"
LIC_FILES_CHKSUM = " \
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/LGPL-3.0-only.txt;md5=e6a600fd5e1d9cbde2d983680233ad02 \
file://LICENSES/LicenseRef-Qt-Commercial.txt;md5=40a1036f91cefc0e3fabad241fb5f187 \
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
DEPENDS += "qtbase"
BBCLASSEXTEND = "native nativesdk"
INSANE_SKIP:${PN}-ptest += "buildpaths"

View File

@@ -0,0 +1,26 @@
LICENSE = "(The-Qt-Company-Commercial | GPL-3.0-only & (LGPL-3.0-only | GPL-2.0-only | GPL-3.0-only) & GFDL-1.3-no-invariants-only) & BSD-3-Clause & MIT"
LIC_FILES_CHKSUM = " \
file://LICENSES/BSD-3-Clause.txt;md5=cb40fa7520502d8c7a3aea47cae1316c \
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/LGPL-3.0-only.txt;md5=e6a600fd5e1d9cbde2d983680233ad02 \
file://LICENSES/LicenseRef-Qt-Commercial.txt;md5=40a1036f91cefc0e3fabad241fb5f187 \
file://LICENSES/MIT.txt;md5=3605d54ecceddcd50962eb89318779ec \
"
inherit qt6-cmake
include recipes-qt/qt6/qt6-git.inc
include recipes-qt/qt6/qt6.inc
DEPENDS += "qtbase qtpositioning"
PACKAGECONFIG ?= "osm qml"
PACKAGECONFIG[esri] = "-DFEATURE_geoservices_esri=ON,-DFEATURE_geoservices_esri=OFF,"
PACKAGECONFIG[mapbox] = "-DFEATURE_geoservices_mapbox=ON,-DFEATURE_geoservices_mapbox=OFF,"
PACKAGECONFIG[nokia] = "-DFEATURE_geoservices_nokia=ON,-DFEATURE_geoservices_nokia=OFF,"
PACKAGECONFIG[osm] = "-DFEATURE_geoservices_osm=ON,-DFEATURE_geoservices_osm=OFF,"
PACKAGECONFIG[qml] = ",,qtdeclarative qtdeclarative-native"
INSANE_SKIP:${PN}-ptest += "buildpaths"

View File

@@ -0,0 +1,15 @@
LICENSE = "The-Qt-Company-Commercial | GPL-3.0-only & GFDL-1.3-no-invariants-only"
LIC_FILES_CHKSUM = " \
file://LICENSES/GFDL-1.3-no-invariants-only.txt;md5=a22d0be1ce2284b67950a4d1673dd1b0 \
file://LICENSES/GPL-3.0-only.txt;md5=d32239bcb673463ab874e80d47fae504 \
file://LICENSES/LicenseRef-Qt-Commercial.txt;md5=40a1036f91cefc0e3fabad241fb5f187 \
"
inherit qt6-cmake
include recipes-qt/qt6/qt6-git.inc
include recipes-qt/qt6/qt6.inc
DEPENDS += "qtbase qtdeclarative qtdeclarative-native"
INSANE_SKIP:${PN}-ptest += "buildpaths"

View File

@@ -0,0 +1,17 @@
LICENSE = "The-Qt-Company-Commercial | GPL-3.0-only & GFDL-1.3-no-invariants-only & BSD-3-Clause"
LIC_FILES_CHKSUM = " \
file://LICENSES/BSD-3-Clause.txt;md5=cb40fa7520502d8c7a3aea47cae1316c \
file://LICENSES/GFDL-1.3-no-invariants-only.txt;md5=a22d0be1ce2284b67950a4d1673dd1b0 \
file://LICENSES/GPL-3.0-only.txt;md5=d32239bcb673463ab874e80d47fae504 \
file://LICENSES/LicenseRef-Qt-Commercial.txt;md5=40a1036f91cefc0e3fabad241fb5f187 \
"
inherit qt6-cmake
include recipes-qt/qt6/qt6-git.inc
include recipes-qt/qt6/qt6.inc
DEPENDS += "qtbase"
PACKAGECONFIG[examples] = "-DQT_BUILD_EXAMPLES=ON,-DQT_BUILD_EXAMPLES=OFF,qtdeclarative qtdeclarative-native qtwebsockets"

View File

@@ -0,0 +1,38 @@
LICENSE = "(The-Qt-Company-Commercial | (GPL-3.0-only & Qt-GPL-exception-1.0) & (LGPL-3.0-only | GPL-3.0-only) & (LGPL-3.0-only | GPL-2.0-only | GPL-3.0-only) & GFDL-1.3-no-invariants-only ) & Apache-2.0 & BSD-3-Clause & MPL-2.0"
LIC_FILES_CHKSUM = " \
file://LICENSES/BSD-3-Clause.txt;md5=cb40fa7520502d8c7a3aea47cae1316c \
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/LGPL-3.0-only.txt;md5=e6a600fd5e1d9cbde2d983680233ad02 \
file://LICENSES/LicenseRef-Qt-Commercial.txt;md5=40a1036f91cefc0e3fabad241fb5f187 \
file://LICENSES/Qt-GPL-exception-1.0.txt;md5=9a13522cd91a88fba784baf16ea66af8 \
file://src/3rdparty/resonance-audio/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \
file://src/3rdparty/eigen/COPYING.BSD;md5=bb155c6d1ebb4543dc4b7b5f33fa40ec \
file://src/3rdparty/eigen/COPYING.MPL2;md5=815ca599c9df247a0c7f619bab123dad \
file://src/3rdparty/pffft/LICENSE;md5=0f39e43e9bc20e7e103e54750e1ec3a2 \
"
inherit qt6-cmake
include recipes-qt/qt6/qt6-git.inc
include recipes-qt/qt6/qt6.inc
DEPENDS += "qtbase qtshadertools qtshadertools-native"
PACKAGECONFIG ?= "\
${@bb.utils.contains_any('LICENSE_FLAGS_ACCEPTED','commercial commercial_ffmpeg','ffmpeg','',d)} \
gstreamer pulseaudio qml spatialaudio spatialaudio_quick3d"
PACKAGECONFIG[alsa] = "-DFEATURE_alsa=ON,-DFEATURE_alsa=OFF,alsa-lib"
PACKAGECONFIG[examples] = "-DQT_BUILD_EXAMPLES=ON,-DQT_BUILD_EXAMPLES=OFF,qtsvg"
PACKAGECONFIG[ffmpeg] = "-DFEATURE_ffmpeg=ON,-DFEATURE_ffmpeg=OFF,ffmpeg"
PACKAGECONFIG[gstreamer] = "-DFEATURE_gstreamer=ON,-DFEATURE_gstreamer=OFF,gstreamer1.0 gstreamer1.0-plugins-base gstreamer1.0-plugins-bad"
PACKAGECONFIG[pulseaudio] = "-DFEATURE_pulseaudio=ON,-DFEATURE_pulseaudio=OFF,pulseaudio"
PACKAGECONFIG[qml] = ",,qtdeclarative qtdeclarative-native"
PACKAGECONFIG[spatialaudio] = "-DFEATURE_spatialaudio=ON,-DFEATURE_spatialaudio=OFF"
PACKAGECONFIG[spatialaudio_quick3d] = "-DFEATURE_spatialaudio_quick3d=ON,-DFEATURE_spatialaudio_quick3d=OFF,qtquick3d qtquick3d-native"
PACKAGECONFIG[vaapi] = "-DFEATURE_vaapi=ON,-DFEATURE_vaapi=OFF,libva"
QT_DEFAULT_MEDIA_BACKEND ?= "${@bb.utils.contains('PACKAGECONFIG', 'gstreamer', 'gstreamer', 'ffmpeg', d)}"
EXTRA_OECMAKE += "-DQT_DEFAULT_MEDIA_BACKEND=${QT_DEFAULT_MEDIA_BACKEND}"

View File

@@ -0,0 +1,15 @@
LICENSE = "The-Qt-Company-Commercial | GPL-3.0-only & GFDL-1.3-no-invariants-only & BSD-3-Clause"
LIC_FILES_CHKSUM = " \
file://LICENSES/BSD-3-Clause.txt;md5=cb40fa7520502d8c7a3aea47cae1316c \
file://LICENSES/GFDL-1.3-no-invariants-only.txt;md5=a22d0be1ce2284b67950a4d1673dd1b0 \
file://LICENSES/GPL-3.0-only.txt;md5=d32239bcb673463ab874e80d47fae504 \
file://LICENSES/LicenseRef-Qt-Commercial.txt;md5=40a1036f91cefc0e3fabad241fb5f187 \
"
inherit qt6-cmake
include recipes-qt/qt6/qt6-git.inc
include recipes-qt/qt6/qt6.inc
DEPENDS += "qtbase"

View File

@@ -0,0 +1,42 @@
LICENSE = "(The-Qt-Company-Commercial | GPL-3.0-only & (LGPL-3.0-only | GPL-2.0-only | GPL-3.0-only) & GFDL-1.3-no-invariants-only) & BSD-3-Clause & CC-BY-SA-4.0 & CC0-1.0 & MIT & MPL-2.0"
LIC_FILES_CHKSUM = " \
file://LICENSES/Apache-2.0.txt;md5=b4c615f64dff32f71eeed614d13dfd4c \
file://LICENSES/BSD-3-Clause.txt;md5=cb40fa7520502d8c7a3aea47cae1316c \
file://LICENSES/CC0-1.0.txt;md5=65d3616852dbf7b1a6d4b53b00626032 \
file://LICENSES/CC-BY-SA-4.0.txt;md5=bb082061306cc1dc0afcd128f972d344 \
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/LGPL-3.0-only.txt;md5=e6a600fd5e1d9cbde2d983680233ad02 \
file://LICENSES/LicenseRef-Qt-Commercial.txt;md5=40a1036f91cefc0e3fabad241fb5f187 \
file://LICENSES/MIT.txt;md5=3605d54ecceddcd50962eb89318779ec \
file://LICENSES/MPL-2.0.txt;md5=48a3fe23ed1353e0995dadfda05ffdb6 \
file://src/3rdparty/open62541/BSD-3-CLAUSE;md5=8647c60c0b1892cb8f30c8efd60b318f \
file://src/3rdparty/open62541/CC-BY-SA-4.0;md5=bb082061306cc1dc0afcd128f972d344 \
file://src/3rdparty/open62541/LICENSE-2.0.txt;md5=3b83ef96387f14655fc854ddc3c6bd57 \
file://src/3rdparty/open62541/LICENSE-CC0;md5=6888abe69dbc6330301f0467e21c0317 \
file://src/3rdparty/open62541/MIT;md5=6b7814836306cd82b4f9ca8be2a8ce55 \
file://src/3rdparty/open62541/mpl-2.0.815ca599c9df.txt;md5=815ca599c9df247a0c7f619bab123dad \
"
inherit qt6-cmake
include recipes-qt/qt6/qt6-git.inc
include recipes-qt/qt6/qt6.inc
PACKAGECONFIG ?= "qml open62541"
PACKAGECONFIG:class-native ?= ""
PACKAGECONFIG:class-nativesdk ?= ""
PACKAGECONFIG[qml] = ",,qtdeclarative qtdeclarative-native"
PACKAGECONFIG[open62541] = "-DFEATURE_open62541=ON,-DFEATURE_open62541=OFF,openssl"
# src/3rdparty/open62541.pri adds -Wno-format, causing following error
# because -Wformat-security cannot be used together with -Wno-format
# cc1: error: -Wformat-security ignored without -Wformat [-Werror=format-security]
SECURITY_STRINGFORMAT = ""
DEPENDS += "qtbase qtopcua-native"
BBCLASSEXTEND = "native nativesdk"
INSANE_SKIP:${PN}-ptest += "buildpaths"

View File

@@ -0,0 +1,38 @@
require recipes-qt/qt6/qtwebengine.inc
require recipes-qt/qt6/chromium-gn.inc
DEPENDS += " \
cups \
nodejs-native \
gperf-native \
bison-native \
nss nss-native \
qtbase qtdeclarative qtdeclarative-native \
gn-native \
libxkbcommon \
python3-html5lib-native \
"
EXTRA_OECMAKE += "\
-DFEATURE_qtwebengine_build=OFF \
-DFEATURE_qtpdf_build=ON \
"
PACKAGECONFIG ?= "qml widgets"
PACKAGECONFIG[pdf-v8] = "-DFEATURE_pdf_v8=ON,-DFEATURE_pdf_v8=OFF,qemu-native"
PACKAGECONFIG[pdf-xfa] = "-DFEATURE_pdf_xfa=ON,-DFEATURE_pdf_xfa=OFF"
PACKAGECONFIG[pdf-xfa-bmp] = "-DFEATURE_pdf_xfa_bmp=ON,-DFEATURE_pdf_xfa_bmp=OFF"
PACKAGECONFIG[pdf-xfa-gif] = "-DFEATURE_pdf_xfa_gif=ON,-DFEATURE_pdf_xfa_gif=OFF"
PACKAGECONFIG[pdf-xfa-png] = "-DFEATURE_pdf_xfa_png=ON,-DFEATURE_pdf_xfa_png=OFF"
PACKAGECONFIG[pdf-xfa-tiff] = "-DFEATURE_pdf_xfa_tiff=ON,-DFEATURE_pdf_xfa_tiff=OFF"
PACKAGECONFIG[qml] = "-DFEATURE_qtpdf_quick_build=ON,-DFEATURE_qtpdf_quick_build=OFF"
PACKAGECONFIG[widgets] = "-DFEATURE_qtpdf_widgets_build=ON,-DFEATURE_qtpdf_widgets_build=OFF"
ENABLE_QMLCOMPILER = "0"
do_install:append() {
# remove conflicting files with QtWebEngine
rm -f ${D}${libdir}/cmake/Qt6BuildInternals/StandaloneTests/QtWebEngineTestsConfig.cmake
rm -f ${D}${libdir}/cmake/Qt6/Find*.cmake
rm -f ${D}${libdir}/sbom/qtwebengine*
}

View File

@@ -0,0 +1,26 @@
LICENSE = "(The-Qt-Company-Commercial | (GPL-3.0-only & Qt-GPL-exception-1.0) & GFDL-1.3-no-invariants-only) & BSD-3-Clause & BSL-1.0 & MIT"
LIC_FILES_CHKSUM = " \
file://LICENSES/BSD-3-Clause.txt;md5=cb40fa7520502d8c7a3aea47cae1316c \
file://LICENSES/GFDL-1.3-no-invariants-only.txt;md5=a22d0be1ce2284b67950a4d1673dd1b0 \
file://LICENSES/GPL-3.0-only.txt;md5=d32239bcb673463ab874e80d47fae504 \
file://LICENSES/LicenseRef-Qt-Commercial.txt;md5=40a1036f91cefc0e3fabad241fb5f187 \
file://LICENSES/Qt-GPL-exception-1.0.txt;md5=9a13522cd91a88fba784baf16ea66af8 \
file://src/3rdparty/clipper/LICENSE;md5=703fd70389dc10159a3da376b5480d52 \
file://src/3rdparty/clip2tri/LICENSE;md5=20ada30cde771326c364b7987ff5585a \
file://src/3rdparty/poly2tri/LICENSE;md5=ee547afd72a735d8f02ff92a09cfe403 \
"
inherit qt6-cmake
include recipes-qt/qt6/qt6-git.inc
include recipes-qt/qt6/qt6.inc
DEPENDS += "qtbase"
PACKAGECONFIG ?= "nmea qml geoclue"
PACKAGECONFIG[geoclue] = ",,,geoclue"
PACKAGECONFIG[gypsy] = "-DFEATURE_gypsy=ON,-DFEATURE_gypsy=OFF,gconf gypsy"
PACKAGECONFIG[nmea] = ",,qtserialport"
PACKAGECONFIG[qml] = ",,qtdeclarative qtdeclarative-native"
INSANE_SKIP:${PN}-ptest += "buildpaths"

View File

@@ -0,0 +1,26 @@
From f8deb4c6db7d1f8badbab5b1c81d1cab3f879db1 Mon Sep 17 00:00:00 2001
From: Samuli Piippo <samuli.piippo@qt.io>
Date: Fri, 3 Jun 2022 06:50:08 +0000
Subject: [PATCH] Skip embree on mingw
Build fails with older mingw headers, skip it complete since
it's not needed for the toolchain.
Upstream-Status: Inappropriate [OE Specific]
---
src/3rdparty/CMakeLists.txt | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/3rdparty/CMakeLists.txt b/src/3rdparty/CMakeLists.txt
index cbb855f5..5d11993f 100644
--- a/src/3rdparty/CMakeLists.txt
+++ b/src/3rdparty/CMakeLists.txt
@@ -3,7 +3,7 @@
# macOS on x86_64 and arm64
# Linux on x86_64 and arm64
# because it's restricted to what Embree builds on in practice.
-if((WIN32 AND (TEST_architecture_arch STREQUAL x86_64))
+if((FALSE AND (TEST_architecture_arch STREQUAL x86_64))
OR (MACOS AND ((TEST_architecture_arch STREQUAL x86_64) OR (TEST_architecture_arch STREQUAL arm64)))
OR (LINUX AND ((TEST_architecture_arch STREQUAL x86_64) OR (TEST_architecture_arch STREQUAL arm64))))
add_subdirectory(embree)

View File

@@ -0,0 +1,46 @@
LICENSE = "(The-Qt-Company-Commercial | (GPL-3.0-only & Qt-GPL-exception-1.0) & GPL-3.0-only & GFDL-1.3-no-invariants-only) & Apache-2.0 & BSD-3-Clause & BSL-1.0 & CC-BY-4.0 & 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/CC-BY-4.0.txt;md5=ed88d31cea57b15030a1f58ceb04e0d5 \
file://LICENSES/GFDL-1.3-no-invariants-only.txt;md5=a22d0be1ce2284b67950a4d1673dd1b0 \
file://LICENSES/GPL-3.0-only.txt;md5=d32239bcb673463ab874e80d47fae504 \
file://LICENSES/LicenseRef-Qt-Commercial.txt;md5=40a1036f91cefc0e3fabad241fb5f187 \
file://LICENSES/Qt-GPL-exception-1.0.txt;md5=9a13522cd91a88fba784baf16ea66af8 \
file://src/3rdparty/assimp/LICENSE;md5=78dabdafb167945fef55b5c37ac94df3 \
file://src/3rdparty/embree/LICENSE.txt;md5=3b83ef96387f14655fc854ddc3c6bd57 \
file://src/3rdparty/tinyexr/LICENSE;md5=27559be3d3cfab88d56b352c10fb9476 \
file://src/3rdparty/xatlas/LICENSE;md5=8605e91c32ad7d58bd62c310eb2c3bf6 \
"
inherit qt6-cmake
include recipes-qt/qt6/qt6-git.inc
include recipes-qt/qt6/qt6.inc
ASSIMP_BRANCH = "qt6_assimp"
SRC_URI += " \
${QT_GIT}/${QT_GIT_PROJECT}/qtquick3d-assimp.git;name=qtquick3d-assimp;branch=${ASSIMP_BRANCH};protocol=${QT_GIT_PROTOCOL};destsuffix=git/src/3rdparty/assimp/src \
file://0001-Skip-embree-on-mingw.patch \
"
DEPENDS = "qtbase qtdeclarative qtshadertools qtshadertools-native qtquick3d-native"
BBCLASSEXTEND = "native nativesdk"
PACKAGECONFIG:class-target ?= "qtquicktimeline"
PACKAGECONFIG[qtquicktimeline] = ",,qtquicktimeline"
PACKAGECONFIG[system-assimp] = "-DFEATURE_system_assimp=ON,-DFEATURE_system_assimp=OFF,assimp"
FILES:${PN}-qmlplugins += " \
${QT6_INSTALL_QMLDIR}/QtQuick3D/Helpers/meshes/*.mesh \
"
SRCREV_FORMAT = "qtquick3d_qtquick3d-assimp"
# Needed for supporting 64bit off_t
CFLAGS:append:libc-musl = " -DIOAPI_NO_64 -D_GNU_SOURCE"
INSANE_SKIP:${PN}-ptest += "buildpaths"

View File

@@ -0,0 +1,26 @@
LICENSE = "(The-Qt-Company-Commercial | (GPL-3.0-only & Qt-GPL-exception-1.0) & GFDL-1.3-no-invariants-only ) & BSD-3-Clause"
LIC_FILES_CHKSUM = " \
file://LICENSES/BSD-3-Clause.txt;md5=cb40fa7520502d8c7a3aea47cae1316c \
file://LICENSES/GFDL-1.3-no-invariants-only.txt;md5=a22d0be1ce2284b67950a4d1673dd1b0 \
file://LICENSES/GPL-3.0-only.txt;md5=d32239bcb673463ab874e80d47fae504 \
file://LICENSES/LicenseRef-Qt-Commercial.txt;md5=40a1036f91cefc0e3fabad241fb5f187 \
file://LICENSES/Qt-GPL-exception-1.0.txt;md5=9a13522cd91a88fba784baf16ea66af8 \
file://src/3rdparty/PhysX/LICENSE.md;md5=bf77e804d5e92c7e2764e9faf9ec1933 \
"
inherit qt6-cmake
include recipes-qt/qt6/qt6-git.inc
include recipes-qt/qt6/qt6.inc
COMPATIBLE_MACHINE = "(-)"
COMPATIBLE_MACHINE:aarch64 = "(.*)"
COMPATIBLE_MACHINE:arm = "(.*)"
COMPATIBLE_MACHINE:x86 = "(.*)"
COMPATIBLE_MACHINE:x86-64 = "(.*)"
DEPENDS = "qtbase qtquick3d qtquick3d-native qtdeclarative-native"
FILES:${PN}-tools = ""
INSANE_SKIP:${PN}-ptest += "buildpaths"

View File

@@ -0,0 +1,15 @@
LICENSE = "GPL-3.0-only | The-Qt-Company-Commercial"
LIC_FILES_CHKSUM = " \
file://LICENSE.GPL3;md5=d32239bcb673463ab874e80d47fae504 \
"
inherit qt6-cmake
include recipes-qt/qt6/qt6-git.inc
include recipes-qt/qt6/qt6.inc
QT_GIT_PROJECT = "qt-labs"
QT_MODULE_BRANCH = "dev"
DEPENDS += "qtbase qtdeclarative qtdeclarative-native"

View File

@@ -0,0 +1,14 @@
LICENSE = "The-Qt-Company-Commercial | GPL-3.0-only & GFDL-1.3-no-invariants-only & BSD-3-Clause"
LIC_FILES_CHKSUM = " \
file://LICENSES/BSD-3-Clause.txt;md5=cb40fa7520502d8c7a3aea47cae1316c \
file://LICENSES/GFDL-1.3-no-invariants-only.txt;md5=a22d0be1ce2284b67950a4d1673dd1b0 \
file://LICENSES/GPL-3.0-only.txt;md5=d32239bcb673463ab874e80d47fae504 \
file://LICENSES/LicenseRef-Qt-Commercial.txt;md5=40a1036f91cefc0e3fabad241fb5f187 \
"
inherit qt6-cmake
include recipes-qt/qt6/qt6-git.inc
include recipes-qt/qt6/qt6.inc
DEPENDS = "qtbase qtdeclarative qtdeclarative-native"

View File

@@ -0,0 +1,22 @@
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 & BSD-3-Clause"
LIC_FILES_CHKSUM = " \
file://LICENSES/BSD-3-Clause.txt;md5=cb40fa7520502d8c7a3aea47cae1316c \
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/LGPL-3.0-only.txt;md5=e6a600fd5e1d9cbde2d983680233ad02 \
file://LICENSES/LicenseRef-Qt-Commercial.txt;md5=40a1036f91cefc0e3fabad241fb5f187 \
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
DEPENDS += "qtbase qtdeclarative qtremoteobjects-native"
BBCLASSEXTEND += "native nativesdk"
INSANE_SKIP:${PN}-ptest += "buildpaths"

View File

@@ -0,0 +1,24 @@
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 & BSD-3-Clause"
LIC_FILES_CHKSUM = " \
file://LICENSES/BSD-3-Clause.txt;md5=cb40fa7520502d8c7a3aea47cae1316c \
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/LGPL-3.0-only.txt;md5=e6a600fd5e1d9cbde2d983680233ad02 \
file://LICENSES/LicenseRef-Qt-Commercial.txt;md5=40a1036f91cefc0e3fabad241fb5f187 \
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
DEPENDS += "qtbase qtscxml-native"
PACKAGECONFIG ?= "qml"
PACKAGECONFIG[qml] = ",,qtdeclarative qtdeclarative-native"
BBCLASSEXTEND = "native nativesdk"
INSANE_SKIP:${PN}-ptest += "buildpaths"

View File

@@ -0,0 +1,19 @@
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 & BSD-3-Clause"
LIC_FILES_CHKSUM = " \
file://LICENSES/BSD-3-Clause.txt;md5=cb40fa7520502d8c7a3aea47cae1316c \
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/LGPL-3.0-only.txt;md5=e6a600fd5e1d9cbde2d983680233ad02 \
file://LICENSES/LicenseRef-Qt-Commercial.txt;md5=40a1036f91cefc0e3fabad241fb5f187 \
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
DEPENDS += "qtbase qtdeclarative qtdeclarative-native"
INSANE_SKIP:${PN}-ptest += "buildpaths"

View File

@@ -0,0 +1,26 @@
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 & BSD-3-Clause"
LIC_FILES_CHKSUM = " \
file://LICENSES/BSD-3-Clause.txt;md5=cb40fa7520502d8c7a3aea47cae1316c \
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/LGPL-3.0-only.txt;md5=e6a600fd5e1d9cbde2d983680233ad02 \
file://LICENSES/LicenseRef-Qt-Commercial.txt;md5=40a1036f91cefc0e3fabad241fb5f187 \
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
DEPENDS += "qtbase"
PACKAGECONFIG ?= "modbus-serialport socketcan"
PACKAGECONFIG:class-native = ""
PACKAGECONFIG:class-nativesdk = ""
PACKAGECONFIG[modbus-serialport] = "-DFEATURE_modbus_serialport=ON,-DFEATURE_modbus_serialport=OFF,qtserialport"
PACKAGECONFIG[socketcan] = "-DFEATURE_socketcan=ON,-DFEATURE_socketcan=OFF,,libsocketcan"
INSANE_SKIP:${PN}-ptest += "buildpaths"

View File

@@ -0,0 +1,19 @@
LICENSE = "The-Qt-Company-Commercial | GPL-3.0-only & (LGPL-3.0-only | GPL-2.0-only | GPL-3.0-only) & GFDL-1.3-no-invariants-only & BSD-3-Clause"
LIC_FILES_CHKSUM = " \
file://LICENSES/BSD-3-Clause.txt;md5=cb40fa7520502d8c7a3aea47cae1316c \
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/LGPL-3.0-only.txt;md5=e6a600fd5e1d9cbde2d983680233ad02 \
file://LICENSES/LicenseRef-Qt-Commercial.txt;md5=40a1036f91cefc0e3fabad241fb5f187 \
"
inherit qt6-cmake
include recipes-qt/qt6/qt6-git.inc
include recipes-qt/qt6/qt6.inc
DEPENDS += "qtbase"
BBCLASSEXTEND = "native nativesdk"

View File

@@ -0,0 +1,26 @@
LICENSE = "(The-Qt-Company-Commercial | (GPL-3.0-only & Qt-GPL-exception-1.0) & GFDL-1.3-no-invariants-only) & (Apache-2.0 | MIT) & BSD-3-Clause & BSD-2-Clause & Apache-2.0 & GPL-3-with-bison-exception"
LIC_FILES_CHKSUM = " \
file://LICENSES/Apache-2.0.txt;md5=c846ebb396f8b174b10ded4771514fcc \
file://LICENSES/BSD-3-Clause.txt;md5=cb40fa7520502d8c7a3aea47cae1316c \
file://LICENSES/GFDL-1.3-no-invariants-only.txt;md5=a22d0be1ce2284b67950a4d1673dd1b0 \
file://LICENSES/GPL-3.0-only.txt;md5=d32239bcb673463ab874e80d47fae504 \
file://LICENSES/LicenseRef-Qt-Commercial.txt;md5=40a1036f91cefc0e3fabad241fb5f187 \
file://LICENSES/Qt-GPL-exception-1.0.txt;md5=9a13522cd91a88fba784baf16ea66af8 \
file://LICENSES/LicenseRef-MIT-Khronos-old.txt;md5=a81aa9fd63b8e618b46e566919afa6a5 \
file://src/3rdparty/SPIRV-Cross/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \
file://src/3rdparty/glslang/LICENSE.txt;md5=2a2b5acd7bc4844964cfda45fe807dc3 \
"
inherit qt6-cmake
include recipes-qt/qt6/qt6-git.inc
include recipes-qt/qt6/qt6.inc
DEPENDS = "qtbase qtshadertools-native"
DEPENDS:append:class-native = " spirv-tools-native"
RDEPENDS:${PN}-tools = "spirv-tools"
RDEPENDS:${PN}-tools:remove:mingw32 = "spirv-tools"
BBCLASSEXTEND = "native nativesdk"

View File

@@ -0,0 +1,22 @@
LICENSE = "The-Qt-Company-Commercial | (LGPL-3.0-only | GPL-2.0-only) & (LGPL-3.0-only | GPL-2.0-only | GPL-3.0-only) & GFDL-1.3-no-invariants-only & BSD-3-Clause"
LIC_FILES_CHKSUM = " \
file://LICENSES/BSD-3-Clause.txt;md5=cb40fa7520502d8c7a3aea47cae1316c \
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/LGPL-3.0-only.txt;md5=e6a600fd5e1d9cbde2d983680233ad02 \
file://LICENSES/LicenseRef-Qt-Commercial.txt;md5=40a1036f91cefc0e3fabad241fb5f187 \
"
inherit qt6-cmake
include recipes-qt/qt6/qt6-git.inc
include recipes-qt/qt6/qt6.inc
DEPENDS += "qtbase qtmultimedia"
PACKAGECONFIG ?= "qml"
PACKAGECONFIG[flite] = "-DFEATURE_flite=ON,-DFEATURE_flite=OFF,flite"
PACKAGECONFIG[qml] = ",,qtdeclarative qtdeclarative-native"
INSANE_SKIP:${PN}-ptest += "buildpaths"

View File

@@ -0,0 +1,19 @@
LICENSE = "(The-Qt-Company-Commercial | GPL-3.0-only & (LGPL-3.0-only | GPL-2.0-only | GPL-3.0-only) & GFDL-1.3-no-invariants-only & BSD-3-Clause) & HPND-sell-variant"
LIC_FILES_CHKSUM = " \
file://LICENSES/BSD-3-Clause.txt;md5=cb40fa7520502d8c7a3aea47cae1316c \
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/LGPL-3.0-only.txt;md5=e6a600fd5e1d9cbde2d983680233ad02 \
file://LICENSES/LicenseRef-Qt-Commercial.txt;md5=40a1036f91cefc0e3fabad241fb5f187 \
file://src/svg/LICENSE.XSVG.txt;md5=46bb75504ccdcac579aa4fee538e6c39 \
"
inherit qt6-cmake
include recipes-qt/qt6/qt6-git.inc
include recipes-qt/qt6/qt6.inc
DEPENDS += "qtbase"
BBCLASSEXTEND = "native nativesdk"

View File

@@ -0,0 +1,45 @@
From 6acac52cec61494e97d3e3db68df2da3c22cff5b Mon Sep 17 00:00:00 2001
From: Samuli Piippo <samuli.piippo@qt.io>
Date: Fri, 18 Oct 2024 09:02:20 +0000
Subject: [PATCH] examples: don't track source path
Avoid using source path in the example binary as that causes
QA error [buildpaths]
Upstream-Status: Pending
Change-Id: Id5aebc2afa7d4ded38d6bdd43fbbb2813f4bad5d
---
examples/assistant/simpletextviewer/CMakeLists.txt | 4 ----
examples/help/contextsensitivehelp/CMakeLists.txt | 4 ----
2 files changed, 8 deletions(-)
diff --git a/examples/assistant/simpletextviewer/CMakeLists.txt b/examples/assistant/simpletextviewer/CMakeLists.txt
index 8d459a261..89076bcd1 100644
--- a/examples/assistant/simpletextviewer/CMakeLists.txt
+++ b/examples/assistant/simpletextviewer/CMakeLists.txt
@@ -27,10 +27,6 @@ set_target_properties(simpletextviewer PROPERTIES
MACOSX_BUNDLE TRUE
)
-target_compile_definitions(simpletextviewer PUBLIC
- SRCDIR="${CMAKE_CURRENT_SOURCE_DIR}/"
-)
-
target_link_libraries(simpletextviewer PUBLIC
Qt::Core
Qt::Gui
diff --git a/examples/help/contextsensitivehelp/CMakeLists.txt b/examples/help/contextsensitivehelp/CMakeLists.txt
index fb251dea7..dd0c30434 100644
--- a/examples/help/contextsensitivehelp/CMakeLists.txt
+++ b/examples/help/contextsensitivehelp/CMakeLists.txt
@@ -27,10 +27,6 @@ set_target_properties(contextsensitivehelp PROPERTIES
MACOSX_BUNDLE TRUE
)
-target_compile_definitions(contextsensitivehelp PUBLIC
- SRCDIR="${CMAKE_CURRENT_SOURCE_DIR}/"
-)
-
target_link_libraries(contextsensitivehelp PUBLIC
Qt6::Core
Qt6::Gui

Some files were not shown because too many files have changed in this diff Show More