package/qt6/qt6declarative: new package

Add host-qt6svg to dependencies when qt6svg is available to build the
required svgtoqml host tool:

  Failed to find the host tool "Qt6::svgtoqml".  It is part of the
  Qt6QuickTools package, but the package could not be found.  Make sure you
  have built and installed the host Quick module, which will ensure the
  creation of the Qt6QuickTools package.

Select the host-qt6base Testlib module to build the qmltestrunner host
tool when the qt6base Testlib module is enabled:

  Failed to find the host tool "Qt6::qmltestrunner".  It is part of the
  Qt6QmlTools package, but the package did not contain the tool.  Make sure
  that the host module Qml was built with all features enabled (no explicitly
  disabled tools).

Select the host-qt6base Network module to build the qmlprofiler host
tool when the qt6base Network module is enabled:

  Failed to find the host tool "Qt6::qmlprofiler".  It is part of the
  Qt6QmlTools package, but the package did not contain the tool.  Make sure
  that the host module Qml was built with all features enabled (no explicitly
  disabled tools).

Add patch to avoid checking for FEATURE_ssl when FEATURE_network
is not available. FEATURE_ssl is defined by the Qt Network module. So
we will get the following build failure if the patch is not applied and
FEATURE_network=ON:

  Attempting to evaluate feature ssl but its definition is missing.  Either
  the feature does not exist or a dependency to the module that defines it is
  missing

Signed-off-by: Roy Kollen Svendsen <roykollensvendsen@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
This commit is contained in:
Roy Kollen Svendsen
2024-06-25 23:18:33 +02:00
committed by Thomas Petazzoni
parent f69f957f28
commit b4e6ef2c7a
5 changed files with 129 additions and 0 deletions

View File

@@ -45,6 +45,7 @@ if BR2_PACKAGE_QT6
source "package/qt6/qt6base/Config.in"
source "package/qt6/qt6core5compat/Config.in"
source "package/qt6/qt6declarative/Config.in"
source "package/qt6/qt6languageserver/Config.in"
source "package/qt6/qt6serialbus/Config.in"
source "package/qt6/qt6serialport/Config.in"

View File

@@ -0,0 +1,28 @@
From 8377691a0998fd84e6fc8349a5db450bf2d79164 Mon Sep 17 00:00:00 2001
From: Tasuku Suzuki <tasuku.suzuki@signal-slot.co.jp>
Date: Tue, 21 Nov 2023 23:58:43 +0900
Subject: Fix build with -no-feature-network
Change-Id: Ib21012301da6afb5458f707b39a9a8079d93eb93
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
Upstream: https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=8377691a0998fd84e6fc8349a5db450bf2d79164
Signed-off-by: Roy Kollen Svendsen <roy.kollen.svendsen@akersolutions.com>
---
src/qml/configure.cmake | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/qml/configure.cmake b/src/qml/configure.cmake
index 2d0434643a..d1ff90bd54 100644
--- a/src/qml/configure.cmake
+++ b/src/qml/configure.cmake
@@ -82,7 +82,7 @@ qt_feature("qml-ssl" PUBLIC
SECTION "QML"
LABEL "QML SSL support"
PURPOSE "Provides ssl support in QML."
- CONDITION QT_FEATURE_ssl
+ CONDITION QT_FEATURE_qml_network AND QT_FEATURE_ssl
)
# On arm and arm64 we need a specialization of cacheFlush() for each OS to be
--
cgit v1.2.3

View File

@@ -0,0 +1,22 @@
config BR2_PACKAGE_QT6DECLARATIVE
bool "qt6declarative"
# Enable host test module to ensure that qmltestrunner is built
help
Qt is a cross-platform application and UI framework for
developers using C++.
This package corresponds to the qt6declarative module.
https://doc.qt.io/qt-6/qtdeclarative-index.html
if BR2_PACKAGE_QT6DECLARATIVE
config BR2_PACKAGE_QT6DECLARATIVE_QUICK
bool "quick module"
select BR2_PACKAGE_HOST_QT6BASE_TEST if BR2_PACKAGE_QT6BASE_TEST # qmltestrunner
select BR2_PACKAGE_HOST_QT6BASE_NETWORK if BR2_PACKAGE_QT6BASE_NETWORK # qmlprofiler
select BR2_PACKAGE_QT6BASE_GUI
select BR2_PACKAGE_QT6BASE_OPENGL if BR2_PACKAGE_QT6_GL_SUPPORTS
select BR2_PACKAGE_QT6SHADERTOOLS
endif

View File

@@ -0,0 +1,11 @@
# Hash from: https://download.qt.io/official_releases/qt/6.7/6.7.2/submodules/qtdeclarative-everywhere-src-6.7.2.tar.xz.sha256
sha256 4c29cba1af8c42d425d8eb6e01bad24cb80f4b983d71eef566a0542dfdb9b999 qtdeclarative-everywhere-src-6.7.2.tar.xz
# Hashes for license files:
sha256 9f0490f18656c6f2435bd14f603ef0c96434d1825615363dce43abb42ed1dcce LICENSES/BSD-3-Clause.txt
sha256 110535522396708cea37c72a802c5e7e81391139f5f7985631c93ef242b206a4 LICENSES/GFDL-1.3-no-invariants-only.txt
sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 LICENSES/GPL-2.0-only.txt
sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 LICENSES/GPL-3.0-only.txt
sha256 da7eabb7bafdf7d3ae5e9f223aa5bdc1eece45ac569dc21b3b037520b4464768 LICENSES/LGPL-3.0-only.txt
sha256 9b1f50aae6267f9d5e0ceb6775ee86450262c25ec7c0573e151fe5d3f18a4700 LICENSES/LicenseRef-Qt-Commercial.txt
sha256 40678d338ce53cd93f8b22b281a2ecbcaa3ee65ce60b25ffb0c462b0530846b2 LICENSES/Qt-GPL-exception-1.0.txt

View File

@@ -0,0 +1,67 @@
################################################################################
#
# qt6declaratve
#
################################################################################
QT6DECLARATIVE_VERSION = $(QT6_VERSION)
QT6DECLARATIVE_SITE = $(QT6_SITE)
QT6DECLARATIVE_SOURCE = qtdeclarative-$(QT6_SOURCE_TARBALL_PREFIX)-$(QT6DECLARATIVE_VERSION).tar.xz
QT6DECLARATIVE_INSTALL_STAGING = YES
QT6DECLARATIVE_SUPPORTS_IN_SOURCE_BUILD = NO
QT6DECLARATIVE_CMAKE_BACKEND = ninja
QT6DECLARATIVE_LICENSE = \
LGPL-3.0 or GPL-3.0 or GPL-2.0, \
BSD-3-Clause (docs), \
GFDL-1.3 no invariants (docs), \
BSD-3-Clause (examples), \
GPL-3.0 (tests), \
GPL-3.0 WITH Qt-GPL-exception-1.0 (tools)
QT6DECLARATIVE_LICENSE_FILES = \
LICENSES/BSD-3-Clause.txt \
LICENSES/GPL-2.0-only.txt \
LICENSES/GPL-3.0-only.txt \
LICENSES/LGPL-3.0-only.txt \
LICENSES/GFDL-1.3-no-invariants-only.txt \
LICENSES/Qt-GPL-exception-1.0.txt
QT6DECLARATIVE_CONF_OPTS = \
-DQT_HOST_PATH=$(HOST_DIR) \
-DBUILD_WITH_PCH=OFF \
-DQT_BUILD_EXAMPLES=OFF \
-DQT_BUILD_TESTS=OFF
HOST_QT6DECLARATIVE_CONF_OPTS = \
-DQT_HOST_PATH=$(HOST_DIR) \
-DBUILD_WITH_PCH=OFF \
-DQT_BUILD_EXAMPLES=OFF \
-DQT_BUILD_TESTS=OFF
HOST_QT6DECLARATIVE_DEPENDENCIES = \
host-qt6base
QT6DECLARATIVE_DEPENDENCIES = \
host-qt6declarative \
qt6base
ifeq ($(BR2_PACKAGE_QT6DECLARATIVE_QUICK),y)
HOST_QT6DECLARATIVE_DEPENDENCIES += \
host-qt6shadertools
QT6DECLARATIVE_DEPENDENCIES += \
host-qt6base \
qt6shadertools
# We need host-qt6svg, when qt6svg is available to build the required
# svgtoqml host tool
ifeq ($(BR2_PACKAGE_QT6SVG),y)
HOST_QT6DECLARATIVE_DEPENDENCIES += host-qt6svg
endif
endif
$(eval $(cmake-package))
$(eval $(host-cmake-package))