diff mbox series

package/qt6/qt6scxml: new package

Message ID 20240911131503.2305836-1-christian@klarinett.li
State Superseded
Headers show
Series package/qt6/qt6scxml: new package | expand

Commit Message

Christian Hitz Sept. 11, 2024, 1:15 p.m. UTC
From: Christian Hitz <christian.hitz@bbv.ch>

Cross-compiling requires the host variant of the same package.

Signed-off-by: Christian Hitz <christian.hitz@bbv.ch>
---
 package/qt6/Config.in              |  1 +
 package/qt6/qt6scxml/Config.in     | 11 ++++++++
 package/qt6/qt6scxml/qt6scxml.hash | 11 ++++++++
 package/qt6/qt6scxml/qt6scxml.mk   | 40 ++++++++++++++++++++++++++++++
 4 files changed, 63 insertions(+)
 create mode 100644 package/qt6/qt6scxml/Config.in
 create mode 100644 package/qt6/qt6scxml/qt6scxml.hash
 create mode 100644 package/qt6/qt6scxml/qt6scxml.mk

Comments

Roy Kollen Svendsen Sept. 11, 2024, 1:48 p.m. UTC | #1
ons. 11. sep. 2024 kl. 15:15 skrev Christian Hitz <christian@klarinett.li>:
>
> From: Christian Hitz <christian.hitz@bbv.ch>
>
> Cross-compiling requires the host variant of the same package.
>
> Signed-off-by: Christian Hitz <christian.hitz@bbv.ch>
> ---
>  package/qt6/Config.in              |  1 +
>  package/qt6/qt6scxml/Config.in     | 11 ++++++++
>  package/qt6/qt6scxml/qt6scxml.hash | 11 ++++++++
>  package/qt6/qt6scxml/qt6scxml.mk   | 40 ++++++++++++++++++++++++++++++
>  4 files changed, 63 insertions(+)
>  create mode 100644 package/qt6/qt6scxml/Config.in
>  create mode 100644 package/qt6/qt6scxml/qt6scxml.hash
>  create mode 100644 package/qt6/qt6scxml/qt6scxml.mk
>
> diff --git a/package/qt6/Config.in b/package/qt6/Config.in
> index 29c1c25c7f..4cbb60322c 100644
> --- a/package/qt6/Config.in
> +++ b/package/qt6/Config.in
> @@ -49,6 +49,7 @@ source "package/qt6/qt6declarative/Config.in"
>  source "package/qt6/qt6languageserver/Config.in"
>  source "package/qt6/qt6mqtt/Config.in"
>  source "package/qt6/qt6opcua/Config.in"
> +source "package/qt6/qt6scxml/Config.in"
>  source "package/qt6/qt6serialbus/Config.in"
>  source "package/qt6/qt6serialport/Config.in"
>  source "package/qt6/qt6shadertools/Config.in"
> diff --git a/package/qt6/qt6scxml/Config.in b/package/qt6/qt6scxml/Config.in
> new file mode 100644
> index 0000000000..23561f61bc
> --- /dev/null
> +++ b/package/qt6/qt6scxml/Config.in
> @@ -0,0 +1,11 @@
> +config BR2_PACKAGE_QT6SCXML
> +       bool "qt6scxml"
> +       select BR2_PACKAGE_QT6DECLARATIVE

According to dependencies.yaml qtdeclarative is optional:


> +       help
> +         Qt is a cross-platform application and UI framework for
> +         developers using C++.
> +
> +         The Qt SCXML module provides functionality to create state
> +         machines from SCXML files.
> +
> +         https://doc.qt.io/qt-6/qtscxml-index.html
> diff --git a/package/qt6/qt6scxml/qt6scxml.hash b/package/qt6/qt6scxml/qt6scxml.hash
> new file mode 100644
> index 0000000000..6c39be214a
> --- /dev/null
> +++ b/package/qt6/qt6scxml/qt6scxml.hash
> @@ -0,0 +1,11 @@
> +# Hash from: https://download.qt.io/official_releases/qt/6.7/6.7.2/submodules/qtscxml-everywhere-src-6.7.2.tar.xz.sha256
> +sha256  20ecf93506d48f27b492ad3dd9d88830e08d642faec3071ce53396a8ae05c86f  qtscxml-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
> diff --git a/package/qt6/qt6scxml/qt6scxml.mk b/package/qt6/qt6scxml/qt6scxml.mk
> new file mode 100644
> index 0000000000..a455b01257
> --- /dev/null
> +++ b/package/qt6/qt6scxml/qt6scxml.mk
> @@ -0,0 +1,40 @@
> +################################################################################
> +#
> +# qt6scxml
> +#
> +################################################################################
> +
> +QT6SCXML_VERSION = $(QT6_VERSION)
> +QT6SCXML_SITE = $(QT6_SITE)
> +QT6SCXML_SOURCE = qtscxml-$(QT6_SOURCE_TARBALL_PREFIX)-$(QT6CONNECTIVITY_VERSION).tar.xz
> +QT6SCXML_INSTALL_STAGING = YES
> +QT6SCXML_SUPPORTS_IN_SOURCE_BUILD = NO
> +
> +QT6SCXML_CMAKE_BACKEND = ninja
> +
> +QT6SCXML_LICENSE = \
> +       GPL-2.0+ or LGPL-3.0, \
> +       GPL-3.0 with exception(tools), \
> +       GFDL-1.3 (docs)
> +
> +QT6SCXML_LICENSE_FILES = \
> +       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
> +
> +QT6SCXML_CONF_OPTS = \
> +       -DQT_HOST_PATH=$(HOST_DIR) \
> +       -DBUILD_WITH_PCH=OFF \
> +       -DQT_BUILD_EXAMPLES=OFF \
> +       -DQT_BUILD_TESTS=OFF
> +
> +QT6SCXML_DEPENDENCIES = \
> +       host-qt6scxml \
> +       qt6base
> +
> +HOST_QT6SCXML_DEPENDENCIES = \
> +       host-qt6base
> +
> +$(eval $(cmake-package))
> +$(eval $(host-cmake-package))
> --
> 2.46.0
>
Roy Kollen Svendsen Sept. 11, 2024, 2:05 p.m. UTC | #2
Hi Christian,

Unfortunately i hit Ctrl+Enter immediately after starting a review. So
my previous response was a bit sparse.

Your changes are relevant for what I'm working on, so I'll do some
tests and try to send you some constructive comments when I get the
chance.

Regards,
Roy

ons. 11. sep. 2024 kl. 15:48 skrev Roy Kollen Svendsen
<roykollensvendsen@gmail.com>:
>
> ons. 11. sep. 2024 kl. 15:15 skrev Christian Hitz <christian@klarinett.li>:
> >
> > From: Christian Hitz <christian.hitz@bbv.ch>
> >
> > Cross-compiling requires the host variant of the same package.
> >
> > Signed-off-by: Christian Hitz <christian.hitz@bbv.ch>
> > ---
> >  package/qt6/Config.in              |  1 +
> >  package/qt6/qt6scxml/Config.in     | 11 ++++++++
> >  package/qt6/qt6scxml/qt6scxml.hash | 11 ++++++++
> >  package/qt6/qt6scxml/qt6scxml.mk   | 40 ++++++++++++++++++++++++++++++
> >  4 files changed, 63 insertions(+)
> >  create mode 100644 package/qt6/qt6scxml/Config.in
> >  create mode 100644 package/qt6/qt6scxml/qt6scxml.hash
> >  create mode 100644 package/qt6/qt6scxml/qt6scxml.mk
> >
> > diff --git a/package/qt6/Config.in b/package/qt6/Config.in
> > index 29c1c25c7f..4cbb60322c 100644
> > --- a/package/qt6/Config.in
> > +++ b/package/qt6/Config.in
> > @@ -49,6 +49,7 @@ source "package/qt6/qt6declarative/Config.in"
> >  source "package/qt6/qt6languageserver/Config.in"
> >  source "package/qt6/qt6mqtt/Config.in"
> >  source "package/qt6/qt6opcua/Config.in"
> > +source "package/qt6/qt6scxml/Config.in"
> >  source "package/qt6/qt6serialbus/Config.in"
> >  source "package/qt6/qt6serialport/Config.in"
> >  source "package/qt6/qt6shadertools/Config.in"
> > diff --git a/package/qt6/qt6scxml/Config.in b/package/qt6/qt6scxml/Config.in
> > new file mode 100644
> > index 0000000000..23561f61bc
> > --- /dev/null
> > +++ b/package/qt6/qt6scxml/Config.in
> > @@ -0,0 +1,11 @@
> > +config BR2_PACKAGE_QT6SCXML
> > +       bool "qt6scxml"
> > +       select BR2_PACKAGE_QT6DECLARATIVE
>
> According to dependencies.yaml qtdeclarative is optional:
>
>
> > +       help
> > +         Qt is a cross-platform application and UI framework for
> > +         developers using C++.
> > +
> > +         The Qt SCXML module provides functionality to create state
> > +         machines from SCXML files.
> > +
> > +         https://doc.qt.io/qt-6/qtscxml-index.html
> > diff --git a/package/qt6/qt6scxml/qt6scxml.hash b/package/qt6/qt6scxml/qt6scxml.hash
> > new file mode 100644
> > index 0000000000..6c39be214a
> > --- /dev/null
> > +++ b/package/qt6/qt6scxml/qt6scxml.hash
> > @@ -0,0 +1,11 @@
> > +# Hash from: https://download.qt.io/official_releases/qt/6.7/6.7.2/submodules/qtscxml-everywhere-src-6.7.2.tar.xz.sha256
> > +sha256  20ecf93506d48f27b492ad3dd9d88830e08d642faec3071ce53396a8ae05c86f  qtscxml-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
> > diff --git a/package/qt6/qt6scxml/qt6scxml.mk b/package/qt6/qt6scxml/qt6scxml.mk
> > new file mode 100644
> > index 0000000000..a455b01257
> > --- /dev/null
> > +++ b/package/qt6/qt6scxml/qt6scxml.mk
> > @@ -0,0 +1,40 @@
> > +################################################################################
> > +#
> > +# qt6scxml
> > +#
> > +################################################################################
> > +
> > +QT6SCXML_VERSION = $(QT6_VERSION)
> > +QT6SCXML_SITE = $(QT6_SITE)
> > +QT6SCXML_SOURCE = qtscxml-$(QT6_SOURCE_TARBALL_PREFIX)-$(QT6CONNECTIVITY_VERSION).tar.xz
> > +QT6SCXML_INSTALL_STAGING = YES
> > +QT6SCXML_SUPPORTS_IN_SOURCE_BUILD = NO
> > +
> > +QT6SCXML_CMAKE_BACKEND = ninja
> > +
> > +QT6SCXML_LICENSE = \
> > +       GPL-2.0+ or LGPL-3.0, \
> > +       GPL-3.0 with exception(tools), \
> > +       GFDL-1.3 (docs)
> > +
> > +QT6SCXML_LICENSE_FILES = \
> > +       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
> > +
> > +QT6SCXML_CONF_OPTS = \
> > +       -DQT_HOST_PATH=$(HOST_DIR) \
> > +       -DBUILD_WITH_PCH=OFF \
> > +       -DQT_BUILD_EXAMPLES=OFF \
> > +       -DQT_BUILD_TESTS=OFF
> > +
> > +QT6SCXML_DEPENDENCIES = \
> > +       host-qt6scxml \
> > +       qt6base
> > +
> > +HOST_QT6SCXML_DEPENDENCIES = \
> > +       host-qt6base
> > +
> > +$(eval $(cmake-package))
> > +$(eval $(host-cmake-package))
> > --
> > 2.46.0
> >
Roy Kollen Svendsen Sept. 11, 2024, 9:07 p.m. UTC | #3
Hi Christian and Thomas,

Good to see you are working on this, Christian!

Thomas, please verify the sanity if my comments.

ons. 11. sep. 2024 kl. 15:15 skrev Christian Hitz <christian@klarinett.li>:
>
> From: Christian Hitz <christian.hitz@bbv.ch>
>
> Cross-compiling requires the host variant of the same package.
>
> Signed-off-by: Christian Hitz <christian.hitz@bbv.ch>
> ---
>  package/qt6/Config.in              |  1 +
>  package/qt6/qt6scxml/Config.in     | 11 ++++++++
>  package/qt6/qt6scxml/qt6scxml.hash | 11 ++++++++
>  package/qt6/qt6scxml/qt6scxml.mk   | 40 ++++++++++++++++++++++++++++++
>  4 files changed, 63 insertions(+)
>  create mode 100644 package/qt6/qt6scxml/Config.in
>  create mode 100644 package/qt6/qt6scxml/qt6scxml.hash
>  create mode 100644 package/qt6/qt6scxml/qt6scxml.mk
>
> diff --git a/package/qt6/Config.in b/package/qt6/Config.in
> index 29c1c25c7f..4cbb60322c 100644
> --- a/package/qt6/Config.in
> +++ b/package/qt6/Config.in
> @@ -49,6 +49,7 @@ source "package/qt6/qt6declarative/Config.in"
>  source "package/qt6/qt6languageserver/Config.in"
>  source "package/qt6/qt6mqtt/Config.in"
>  source "package/qt6/qt6opcua/Config.in"
> +source "package/qt6/qt6scxml/Config.in"
>  source "package/qt6/qt6serialbus/Config.in"
>  source "package/qt6/qt6serialport/Config.in"
>  source "package/qt6/qt6shadertools/Config.in"
> diff --git a/package/qt6/qt6scxml/Config.in
b/package/qt6/qt6scxml/Config.in
> new file mode 100644
> index 0000000000..23561f61bc
> --- /dev/null
> +++ b/package/qt6/qt6scxml/Config.in
> @@ -0,0 +1,11 @@
> +config BR2_PACKAGE_QT6SCXML
> +       bool "qt6scxml"
> +       select BR2_PACKAGE_QT6DECLARATIVE

This is optional for both target and host.

> +       help
> +         Qt is a cross-platform application and UI framework for
> +         developers using C++.

You follow the samme pattern as many of the other Qt6 packages her.

But I don't think is it usefull to repeat this text in every qt6 package.

It should be enough to say it once. We should fix this for the other
packages as well.

> +
> +         The Qt SCXML module provides functionality to create state

When I grep for modules in the qtscxml repo I find the following:

$ grep -ir "qt_internal_add_.*module"
src/scxmlqml/CMakeLists.txt:qt_internal_add_qml_module(ScxmlQml
src/scxml/CMakeLists.txt:qt_internal_add_module(Scxml
src/statemachineqml/CMakeLists.txt:qt_internal_add_qml_module(StateMachineQml
src/statemachine/CMakeLists.txt:qt_internal_add_module(StateMachine

And I find the following non-test related tools:

$ grep -B 1 -ir "qt_internal_add_tool"
...
--
tools/qscxmlc/CMakeLists.txt-qt_get_tool_target_name(target_name qscxmlc)
tools/qscxmlc/CMakeLists.txt:qt_internal_add_tool(${target_name}

So rather than just saying something about one of the specific modules in
the repo I think
it is better to say something general about the qtscxml repo... and then
list  or say something
more specific about the modules and tools etc.

There seems to be a confusion about qt repos vs qt modules, which I've
probably contributed to.

We should update the info for existing modules to follow the same patter.

> +         machines from SCXML files.
> +
> +         https://doc.qt.io/qt-6/qtscxml-index.html
> diff --git a/package/qt6/qt6scxml/qt6scxml.hash
b/package/qt6/qt6scxml/qt6scxml.hash
> new file mode 100644
> index 0000000000..6c39be214a
> --- /dev/null
> +++ b/package/qt6/qt6scxml/qt6scxml.hash
> @@ -0,0 +1,11 @@
> +# Hash from:
https://download.qt.io/official_releases/qt/6.7/6.7.2/submodules/qtscxml-everywhere-src-6.7.2.tar.xz.sha256
> +sha256  20ecf93506d48f27b492ad3dd9d88830e08d642faec3071ce53396a8ae05c86f
 qtscxml-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

I think the file above is dropped in some of the existing packages. Can you
comment on this Thomas?

> +sha256  40678d338ce53cd93f8b22b281a2ecbcaa3ee65ce60b25ffb0c462b0530846b2
 LICENSES/Qt-GPL-exception-1.0.txt

> diff --git a/package/qt6/qt6scxml/qt6scxml.mk b/package/qt6/qt6scxml/
qt6scxml.mk
> new file mode 100644
> index 0000000000..a455b01257
> --- /dev/null
> +++ b/package/qt6/qt6scxml/qt6scxml.mk
> @@ -0,0 +1,40 @@
>
+################################################################################
> +#
> +# qt6scxml
> +#
>
+################################################################################
> +
> +QT6SCXML_VERSION = $(QT6_VERSION)
> +QT6SCXML_SITE = $(QT6_SITE)
> +QT6SCXML_SOURCE =
qtscxml-$(QT6_SOURCE_TARBALL_PREFIX)-$(QT6CONNECTIVITY_VERSION).tar.xz
> +QT6SCXML_INSTALL_STAGING = YES
> +QT6SCXML_SUPPORTS_IN_SOURCE_BUILD = NO
> +

Maybe drop this new-line?

> +QT6SCXML_CMAKE_BACKEND = ninja
> +
> +QT6SCXML_LICENSE = \
> +       GPL-2.0+ or LGPL-3.0, \
> +       GPL-3.0 with exception(tools), \

Add a space after the license. Maybe we should be explicit about which
exception?

> +       GFDL-1.3 (docs)

I also like to sort the licenses Alphabetically and write the licenenses as
in the SPDX-License-Identifier (with some exception to like 'with', 'or',
'and' with small letters).

I also think it is good to be more explicit about which parts of software
the licenses applies to:

QT6SCXML_LICENSE = \
    BSD-3-Clause (buildsystem, examples, snippets), \
    GFDL-1.3-no-invariants (docs), \
    GPL-3.0 (tests), \
    GPL-3.0 with Qt-GPL-exception-1.0 (tools, utils), \
    LGPL-3.0 or GPL-2.0 or GPL-3.0 (modules, plugins)

By the way: In addition to grep-ing for spdx license identifiers there is
often some more interesting license information available in the
qt_attribution.json-files.

But in this case there were no such files.

> +
> +QT6SCXML_LICENSE_FILES = \
> +       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
> +

You dropped LICENSES/BSD-3-Clause.txt, the commercial license file and the
exception.

This is not done consistently in the existing qt6 packages. Thomas should
comment on this.

Maybe order these alphabetically and only drop the commercial license file?:

QT6SCXML_LICENSE_FILES = \
    LICENSES/BSD-3-Clause.txt \
    LICENSES/GFDL-1.3-no-invariants-only.txt \
    LICENSES/GPL-2.0-only.txt \
    LICENSES/GPL-3.0-only.txt \
    LICENSES/LGPL-3.0-only.txt \
    LICENSES/Qt-GPL-exception-1.0.txt

I think it is safer to specify too much license information than too little.

> +QT6SCXML_CONF_OPTS = \
> +       -DQT_HOST_PATH=$(HOST_DIR) \
> +       -DBUILD_WITH_PCH=OFF \
> +       -DQT_BUILD_EXAMPLES=OFF \
> +       -DQT_BUILD_TESTS=OFF
> +
> +QT6SCXML_DEPENDENCIES = \
> +       host-qt6scxml \
> +       qt6base
> +
> +HOST_QT6SCXML_DEPENDENCIES = \
> +       host-qt6base

Add optional dependency for both target and host on qt6declarative:

$ grep -r "find_package(Qt6 \${PROJECT_VERSION}"
CMakeLists.txt:find_package(Qt6 ${PROJECT_VERSION} CONFIG REQUIRED
COMPONENTS BuildInternals Core)
CMakeLists.txt:find_package(Qt6 ${PROJECT_VERSION} CONFIG
OPTIONAL_COMPONENTS Gui Qml Widgets OpenGL OpenGLWidgets Network QuickTest)

$ cat dependencies.yaml
dependencies:
  ../qtbase:
    ref: b5fbe0923cfc566036b83c3d968f225b26117efc
    required: true
  ../qtdeclarative:
    ref: 12533cc0bd83a2076efb4af0bc1832b0db9568fc
    required: false

also expressed here:

CMakeLists.txt:find_package(Qt6 ${PROJECT_VERSION} CONFIG REQUIRED
COMPONENTS BuildInternals Core)
CMakeLists.txt:find_package(Qt6 ${PROJECT_VERSION} CONFIG
OPTIONAL_COMPONENTS Gui *Qml* Widgets OpenGL OpenGLWidgets Network
*QuickTest*)

> +
> +$(eval $(cmake-package))
> +$(eval $(host-cmake-package))
> --
> 2.46.0
>
diff mbox series

Patch

diff --git a/package/qt6/Config.in b/package/qt6/Config.in
index 29c1c25c7f..4cbb60322c 100644
--- a/package/qt6/Config.in
+++ b/package/qt6/Config.in
@@ -49,6 +49,7 @@  source "package/qt6/qt6declarative/Config.in"
 source "package/qt6/qt6languageserver/Config.in"
 source "package/qt6/qt6mqtt/Config.in"
 source "package/qt6/qt6opcua/Config.in"
+source "package/qt6/qt6scxml/Config.in"
 source "package/qt6/qt6serialbus/Config.in"
 source "package/qt6/qt6serialport/Config.in"
 source "package/qt6/qt6shadertools/Config.in"
diff --git a/package/qt6/qt6scxml/Config.in b/package/qt6/qt6scxml/Config.in
new file mode 100644
index 0000000000..23561f61bc
--- /dev/null
+++ b/package/qt6/qt6scxml/Config.in
@@ -0,0 +1,11 @@ 
+config BR2_PACKAGE_QT6SCXML
+	bool "qt6scxml"
+	select BR2_PACKAGE_QT6DECLARATIVE
+	help
+	  Qt is a cross-platform application and UI framework for
+	  developers using C++.
+
+	  The Qt SCXML module provides functionality to create state
+	  machines from SCXML files.
+
+	  https://doc.qt.io/qt-6/qtscxml-index.html
diff --git a/package/qt6/qt6scxml/qt6scxml.hash b/package/qt6/qt6scxml/qt6scxml.hash
new file mode 100644
index 0000000000..6c39be214a
--- /dev/null
+++ b/package/qt6/qt6scxml/qt6scxml.hash
@@ -0,0 +1,11 @@ 
+# Hash from: https://download.qt.io/official_releases/qt/6.7/6.7.2/submodules/qtscxml-everywhere-src-6.7.2.tar.xz.sha256
+sha256  20ecf93506d48f27b492ad3dd9d88830e08d642faec3071ce53396a8ae05c86f  qtscxml-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
diff --git a/package/qt6/qt6scxml/qt6scxml.mk b/package/qt6/qt6scxml/qt6scxml.mk
new file mode 100644
index 0000000000..a455b01257
--- /dev/null
+++ b/package/qt6/qt6scxml/qt6scxml.mk
@@ -0,0 +1,40 @@ 
+################################################################################
+#
+# qt6scxml
+#
+################################################################################
+
+QT6SCXML_VERSION = $(QT6_VERSION)
+QT6SCXML_SITE = $(QT6_SITE)
+QT6SCXML_SOURCE = qtscxml-$(QT6_SOURCE_TARBALL_PREFIX)-$(QT6CONNECTIVITY_VERSION).tar.xz
+QT6SCXML_INSTALL_STAGING = YES
+QT6SCXML_SUPPORTS_IN_SOURCE_BUILD = NO
+
+QT6SCXML_CMAKE_BACKEND = ninja
+
+QT6SCXML_LICENSE = \
+	GPL-2.0+ or LGPL-3.0, \
+	GPL-3.0 with exception(tools), \
+	GFDL-1.3 (docs)
+
+QT6SCXML_LICENSE_FILES = \
+	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
+
+QT6SCXML_CONF_OPTS = \
+	-DQT_HOST_PATH=$(HOST_DIR) \
+	-DBUILD_WITH_PCH=OFF \
+	-DQT_BUILD_EXAMPLES=OFF \
+	-DQT_BUILD_TESTS=OFF
+
+QT6SCXML_DEPENDENCIES = \
+	host-qt6scxml \
+	qt6base
+
+HOST_QT6SCXML_DEPENDENCIES = \
+	host-qt6base
+
+$(eval $(cmake-package))
+$(eval $(host-cmake-package))