qt_generate_wayland_protocol_server_sources

Generates server-side C++ bindings for a Wayland protocol .XML file

The command is defined in the WaylandCompositor component of the Qt6 package, which can be loaded like so:

 find_package(Qt6 REQUIRED COMPONENTS WaylandCompositor)

This command was introduced in Qt 6.0.

Synopsis

 qt_generate_wayland_protocol_server_sources(target
                                             [PUBLIC_CODE | PRIVATE_CODE]
                                             FILES file1.xml [file2.xml ...])

If versionless commands are disabled, use qt6_generate_wayland_protocol_server_sources() instead. It supports the same set of arguments as this command.

Description

qt_generate_wayland_protocol_server_sources() creates the build steps to run waylandscanner and 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 target.

The options PUBLIC_CODE and PRIVATE_CODE (added in Qt 6.8) correspond to the public-code and private-code options of wayland-scanner. For backwards compatibility PUBLIC_CODE is the default but generally PRIVATE_CODE is strongly recommended.

qt_generate_wayland_protocol_server_sources() will trigger generation of the files needed to implement the compositor side of the protocol.

qt_generate_wayland_protocol_client_sources() is the equivalent function for the client.

See the Custom Shell or Custom Extension examples for a demonstration of how to use these functions.