doc: Add documentation for cmake functions

This adds documentation for the cmake functions used to generate
binding code for protocol extensions. Since the Wayland Client
library did not have any documentation landing page, it also
adds that. This currently only links to the cmake function, but
it can be extended to include other APIs later if we add them.

Pick-to: 6.7
Fixes: QTBUG-114147
Change-Id: I07d8dbe3bc32e5845482fe3e69ec6ba94897331b
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
This commit is contained in:
Eskil Abrahamsen Blomfeldt 2024-02-08 08:51:27 +01:00
parent 6529e2386f
commit 468e59f478
4 changed files with 116 additions and 0 deletions

View File

@ -163,5 +163,9 @@ qt_internal_extend_target(WaylandClient CONDITION QT_FEATURE_draganddrop
qwaylanddnd.cpp qwaylanddnd_p.h
)
qt_internal_add_docs(WaylandClient
doc/qtwaylandclient.qdocconf
)
qt_record_extra_qt_main_tools_package_dependency(WaylandClient WaylandScannerTools "${PROJECT_VERSION}")
qt_record_extra_qt_package_dependency(WaylandClient WaylandGlobalPrivate "${PROJECT_VERSION}")

View File

@ -0,0 +1,31 @@
include($QT_INSTALL_DOCS/global/qt-module-defaults.qdocconf)
include($QT_INSTALL_DOCS/config/exampleurl-qtwayland.qdocconf)
project = QtWaylandClient
description = Qt Wayland Client Reference Documentation
version = $QT_VERSION
qhp.projects = QtWaylandClient
qhp.QtWaylandClient.file = qtwaylandclient.qhp
qhp.QtWaylandClient.namespace = org.qt-project.QtWaylandClient.$QT_VERSION_TAG
qhp.QtWaylandClient.virtualFolder = QtWaylandClient
qhp.QtWaylandClient.indexTitle = Qt Wayland Client
qhp.QtWaylandClient.indexRoot =
depends += qtcore \
qtqml \
qtquick \
qtdoc \
qtcmake \
qtwaylandcompositor
headerdirs += \
../
sourcedirs += \
../
navigation.landingpage = "Qt Wayland Client"
# Enforce zero documentation warnings
warninglimit = 0

View File

@ -0,0 +1,45 @@
// Copyright (C) 2024 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only
/*!
\page qt-generate-wayland-protocol-client-sources.html
\ingroup cmake-commands-qtwaylandclient
\title qt_generate_wayland_protocol_client_sources
\keyword qt6_generate_wayland_protocol_client_sources
\summary {Generates client-side C++ bindings for a Wayland protocol .XML file}
\cmakecommandsince 6.0
The command is defined in the \c WaylandClient component of the \c Qt6 package, which
can be loaded like so:
\badcode
find_package(Qt6 REQUIRED COMPONENTS WaylandClient)
\endcode
\section1 Synopsis
\badcode
qt_generate_wayland_protocol_client_sources(target
FILES file1.xml [file2.xml ...])
\endcode
\versionlessCMakeCommandsNote qt6_generate_wayland_protocol_client_sources()
\section1 Description
qt_generate_wayland_protocol_client_sources() creates the build steps to run \c{waylandscanner} and
\c{qtwaylandscanner} on one or more Wayland protocol files. The tools will in turn generate binding
code in C and C++ for implementing the protocols, and the resulting files will be built as part
of the \c target.
qt_generate_wayland_protocol_client_sources() will trigger generation of the files needed to
implement the client side of the protocol. \l{qt_generate_wayland_protocol_server_sources}{qt_generate_wayland_protocol_server_sources()}
is the equivalent function for the compositor.
See the \l{Custom Shell} or \l{Custom Extension} examples for a demonstration of how to use these
functions.
*/

View File

@ -0,0 +1,36 @@
// Copyright (C) 2024 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only
/*!
\page qtwaylandclient-index.html
\title Qt Wayland Client
\brief Library to enable connecting to a Wayland compositor as a client
The Qt Wayland Client library provides the necessary functions for an application to act
as a \l {https://wayland.freedesktop.org/}{Wayland} client and connect to a Wayland compositor.
For most use cases, the library is used automatically through the Wayland QPA plugin, and there is
no need for the application itself to use any functions from the library.
However, when paired with \l{Qt Wayland Compositor}, the cmake function
\l{qt_generate_wayland_protocol_client_sources}{qt_generate_wayland_protocol_client_sources()}
can be used to create custom protocol extensions.
\section1 Licenses and Attributions
Qt Wayland Compositor and the Qt Wayland integration plugin
are available under commercial licenses from \l{The Qt Company}.
In addition, Qt Wayland Compositor is available under the
\l{GNU General Public License, version 3}, while
the Qt Wayland integration plugin is available under the
\l{GNU Lesser General Public License, version 3} or the
\l{GNU General Public License, version 2}.
See \l{Qt Licensing} for further details.
Qt Wayland Compositor and the Qt Wayland integration plugin
use protocol definitions under following permissive licenses:
\generatelist{groupsbymodule attributions-qtwaylandcompositor}
*/