Auf dieser Seite

qt_generate_wayland_protocol_client_sources

Erzeugt clientseitige C++-Bindings für eine .XML-Datei des Wayland-Protokolls.

Der Befehl ist in der Komponente „ WaylandClient “ des Pakets „ Qt6 “ definiert, das wie folgt geladen werden kann:

find_package(Qt6 REQUIRED COMPONENTS WaylandClient)

Dieser Befehl wurde in Qt 6.0 eingeführt.

Übersicht

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

Wenn versionslose Befehle deaktiviert sind, verwenden Sie stattdessen „ qt6_generate_wayland_protocol_client_sources() “. Dieser Befehl unterstützt dieselben Argumente wie der vorliegende Befehl.

Beschreibung

qt_generate_wayland_protocol_client_sources() erstellt die Build-Schritte, um wayland-scanner und qtwaylandscanner auf eine oder mehrere Wayland-Protokolldateien anzuwenden. Die Tools generieren wiederum Bindungscode in C und C++ zur Implementierung der Protokolle, und die resultierenden Dateien werden als Teil des target erstellt.

Die Optionen PUBLIC_CODE und PRIVATE_CODE (in Qt 6.8 hinzugefügt) entsprechen den Optionen „ public-code “ und „ private-code “ von wayland-scanner. Mit „ PUBLIC_CODE “ werden die Symbole im von wayland-scanner generierten Code exportiert.

Vor Qt 6.12 war die Standardeinstellung „ PUBLIC_CODE “. Ab Qt 6.12 ist die Standardeinstellung „ PRIVATE_CODE “, sofern die Qt-Richtlinie „qt_cmake_policy_qtp0006“ auf „ NEW “ gesetzt ist. Generell wird „ PRIVATE_CODE “ dringend empfohlen.

Standardmäßig wird „ wayland-scanner “ mit dem Argument „ --include-core-only “ aufgerufen, wodurch sichergestellt wird, dass der generierte Code „ "wayland-client-core.h" “ einbindet. Dieses Verhalten kann mit der Option „ NO_INCLUDE_CORE_ONLY “ deaktiviert werden, wodurch die Einbindung auf „ "wayland-client.h" “ umgestellt wird.

Hinweis: Von der Verwendung von ` NO_INCLUDE_CORE_ONLY ` wird generell abgeraten. ` "wayland-client.h" ` enthält eine vorkompilierte Version des Wayland-Kernprotokolls, die zu Konflikten mit neueren Protokollversionen oder anderen Header-Dateien (wie älteren Versionen von Vulkan) führen kann. Verwenden Sie diese Option nur, wenn Sie einen konkreten Bedarf an Typen haben, die nicht im Kern-Header enthalten sind, und sich der potenziellen Konflikte bei der Kompilierung bewusst sind.

qt_generate_wayland_protocol_client_sources() löst die Generierung der Dateien aus, die zur Implementierung der Client-Seite des Protokolls benötigt werden. qt_generate_wayland_protocol_server_sources() ist die entsprechende Funktion für den Compositor.

In den Beispielen „Custom Shell“ oder „Custom Extension“ wird die Verwendung dieser Funktionen veranschaulicht.

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.