qtdeclarative/examples/quick/shared
Alexandru Croitor a6bd1dc3e0 CMake: Add deployment API to our examples
Projects were modified using the tool at:
https://git.qt.io/alcroito/cmake_refactor

A few examples had to be adapted manually, mostly those that build
additional qml modules / plugins.

The INSTALL_EXAMPLESDIR and INSTALL_EXAMPLEDIR assignments were
removed, these are not needed anymore because example directory
selection is handled by the qt_internal_add_example calls.

The install(TARGETS) calls were modified according to our
documentation snippets for qt_generate_deploy_qml_app_script.

A qt_generate_deploy_qml_app_script call was added for each
executable target.

Note that the deployment step will be skipped in the CI for now,
because:
- we enable QT_DEPLOY_MINIMAL_EXAMPLES in the CI instructions and thus
  set QT_INTERNAL_SKIP_DEPLOYMENT to true
- standalone examples feature is not yet enabled in the CI, which
  means we continue to build examples in-tree, and deployment is
  disabled for in-tree prefix builds.
A small list of examples to deploy in the CI will be chosen in the
future, to ensure deployment coverage, without slowing down overall CI
times due to all the *deployqt invocations.

Even if deployment is disabled in the CI, the install(TARGETS) calls
for each example will still run, installing into an
'installed_examples' directory, which will not be archived by the CI.

The QtBundleQmlModuleForMacOS and bundle_shared code was removed,
because we can now depend on the MACOS_BUNDLE_POST_BUILD option of the
deployment api, to ensure macOS bundle examples run properly in the
build dir. This works even in prefix in-tree builds, when installation
deployment is disabled.

Finally, for all examples that build additional qml module libraries or
plugins, the libraries / plugins must be installed into the bin dir of
each project, along with a qmldir file.

This is to support running the installed project for platforms that
don't have deployment api yet, like boot2qt / yocto.

If we want to have super clean install / deployment rules in the
future, we won't be able to avoid adding ugly per-platform conditions.
The current status quo is deemed an improvement over what we had
before.

Pick-to: 6.7
Task-number: QTBUG-101340
Task-number: QTBUG-102056
Task-number: QTBUG-102057
Change-Id: I843d934668c25dbcd1abca52495b393579633fc5
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by:  Alexey Edelev <alexey.edelev@qt.io>
2024-03-27 18:57:34 +01:00
..
images
Button.qml Examples: Do not use import version numbers anymore 2022-08-31 16:37:35 +02:00
CMakeLists.txt CMake: Add deployment API to our examples 2024-03-27 18:57:34 +01:00
CheckBox.qml Examples: Do not use import version numbers anymore 2022-08-31 16:37:35 +02:00
Images.qml Use SPDX license identifiers 2022-06-11 08:05:15 +02:00
Label.qml Examples: Do not use import version numbers anymore 2022-08-31 16:37:35 +02:00
LauncherList.qml examples: Increase hit area of LauncherList buttons; simplify 2023-12-12 16:44:45 -07:00
README
SimpleLauncherDelegate.qml examples: Increase hit area of LauncherList buttons; simplify 2023-12-12 16:44:45 -07:00
Slider.qml Examples: Do not use import version numbers anymore 2022-08-31 16:37:35 +02:00
TabSet.qml Examples: Do not use import version numbers anymore 2022-08-31 16:37:35 +02:00
TextField.qml Examples: Do not use import version numbers anymore 2022-08-31 16:37:35 +02:00
qmldir Move undocumented quick examples to manual tests 2023-11-28 17:57:05 -07:00
quick_shared.qrc
shared.h Adapt examples to AUTO_RESOURCE_PREFIX 2022-06-24 08:45:43 +02:00
shared.qrc Move undocumented quick examples to manual tests 2023-11-28 17:57:05 -07:00

README

These files are shared between multiple examples as a set of common and
reusuable components. While they do demonstrate the building of reusable
components in QML, they are not official examples themselves.
Consequently they do not have entries in the Qt documentation, and are
documented only through the code comments within the files. Developers
new to QML are strongly encouraged to go through the official examples
before delving into this directory.

For most application use, see the Qt Quick Components project to find
ready-made Components you can use in your own projects. Qt Quick
examples do not use them only to avoid external dependencies.