Qt6-Modul
Neu in Meson 0.57.0
Das Qt6-Modul bietet Methoden, um die verschiedenen Tools und Schritte, die für Qt erforderlich sind, automatisch zu verwalten.
compile_resources
Neu in 0.59.0
Kompiliert Qt's Ressourcensammlungsdateien (.qrc) in C++-Dateien zur Kompilierung.
Es nimmt keine positionalen Argumente und die folgenden Schlüsselwortargumente entgegen:
-
name(string | leer): Wenn angegeben, wird eine einzelne .cpp-Datei generiert und die Ausgabe aller qrc-Dateien wird in dieser Datei kombiniert, andernfalls wird jede qrc-Datei in ihre eigene cpp-Datei geschrieben. -
sources(Datei | Zeichenkette | benutzerdefiniertes Ziel | benutzerdefiniertes Ziel-Index | Generator-Ausgabe)[]: Eine Liste von Quellcodedateien, die transpilert werden sollen. Erforderlich, muss mindestens eine Quellcodedatei enthalten.
Neu in 0.60.0: Unterstützung für custom_target, custom_target_index und generator_output. -
extra_argsstring[]: Zusätzliche Argumente, die direkt anqt-rccübergeben werden. -
methodZeichenkette: Die Methode zur Erkennung von Qt, siehedependency()
compile_ui
Neu in 0.59.0
Kompiliert Qt's ui-Dateien (.ui) in Header-Dateien.
Es nimmt keine positionalen Argumente und die folgenden Schlüsselwortargumente entgegen:
-
sources(Datei | Zeichenkette | benutzerdefiniertes Ziel | benutzerdefiniertes Ziel-Index | Generator-Ausgabe)[]: Eine Liste von Quellcodedateien, die transpilert werden sollen. Erforderlich, muss mindestens eine Quellcodedatei enthalten.
Neu in 0.60.0: Unterstützung für custom_target, custom_target_index und generator_output. -
extra_argsstring[]: Zusätzliche Argumente, die direkt anqt-uicübergeben werden. -
methodZeichenkette: Die Methode zur Erkennung von Qt, siehedependency() -
preserve_pathsbool: Neu in 1.4.0. Wenntrue, gibt an, dass die Ausgabedateien ihre Verzeichnisstruktur innerhalb des temporären Zielverzeichnisses beibehalten müssen. Wenn beispielsweise eine Datei namenssubdir/one.inputverarbeitet wird, generiert sie eine Datei{target private directory}/subdir/one.out, wenntrueist, und{target private directory}/one.out, wennfalseist (Standard).
compile_moc
Neu in 0.59.0
Kompiliert Qt's moc-Dateien (.moc) in Header- und/oder Quelldateien. Mindestens eines der Schlüsselwortargumente headers und sources muss angegeben werden.
Es nimmt keine positionalen Argumente und die folgenden Schlüsselwortargumente entgegen:
-
sources(Datei | Zeichenkette | benutzerdefiniertes Ziel | benutzerdefiniertes Ziel-Index | Generator-Ausgabe)[]: Eine Liste von Quellcodedateien, die in .moc-Dateien transpilert und manuell eingebunden werden sollen.
Neu in 0.60.0: Unterstützung für custom_target, custom_target_index und generator_output. -
headers(Datei | Zeichenkette | benutzerdefiniertes Ziel | benutzerdefiniertes Ziel-Index | Generator-Ausgabe)[]: Eine Liste von Header-Dateien, die in .cpp-Dateien transpilert werden sollen.
Neu in 0.60.0: Unterstützung für custom_target, custom_target_index und generator_output. -
extra_argsstring[]: Zusätzliche Argumente, die direkt anqt-mocübergeben werden. -
methodZeichenkette: Die Methode zur Erkennung von Qt, siehedependency() -
dependencies: Abhängigkeitsobjekte, deren Include-Verzeichnisse von moc verwendet werden. -
include_directories(string | IncludeDirectory)[]: Eine Liste voninclude_directory()-Objekten, die beim Transpilieren der .moc-Dateien verwendet werden. -
preserve_pathsbool: Neu in 1.4.0. Wenntrue, gibt an, dass die Ausgabedateien ihre Verzeichnisstruktur innerhalb des temporären Zielverzeichnisses beibehalten müssen. Wenn beispielsweise eine Datei namenssubdir/one.inputverarbeitet wird, generiert sie eine Datei{target private directory}/subdir/one.out, wenntrueist, und{target private directory}/one.out, wennfalseist (Standard).
preprocess
Ziehen Sie in Betracht, stattdessen compile_resources, compile_ui und compile_moc zu verwenden.
Nimmt Quellen für moc, uic und rcc entgegen und wandelt sie in C++-Dateien zur Kompilierung um.
Hat die folgende Signatur: qt.preprocess(name: str | None, *sources: str)
Wenn der Parameter name übergeben wird, werden alle rcc-Dateien in eine einzige Ausgabedatei geschrieben.
Veraltet in 0.59.0: Dateien, die in den variablen sources-Argumenten sowie im Schlüsselwortargument sources angegeben wurden, wurden unverändert durch die Präprozessorprogramme weitergeleitet. Tun Sie dies nicht – fügen Sie einfach die Ausgabe von preprocess() zu einer anderen Quellenliste hinzu.
sources = files('a.cpp', 'main.cpp', 'bar.c')
sources += qt.preprocess(qresources : ['resources'])
Diese Methode nimmt die folgenden Schlüsselwortargumente entgegen:
-
qresources(string | File)[]: An den RCC-Compiler übergeben. -
ui_files: (string | File | CustomTarget)[]: An denuic-Compiler übergeben. -
moc_sources: (string | File | CustomTarget)[]: An denmoc-Compiler übergeben. Diese werden in .moc-Dateien umgewandelt, die#included werden sollen. -
moc_headers: (string | File | CustomTarget)[]: An denmoc-Compiler übergeben. Diese werden in .cpp-Dateien umgewandelt. -
include_directories(IncludeDirectories | string)[], die Verzeichnisse, die dem Header-Suchpfad fürmochinzugefügt werden sollen. -
moc_extra_argumentsZeichenkette[]: Zusätzliche Argumente fürmoc. -
uic_extra_argumentsZeichenkette[]: Zusätzliche Argumente füruic. -
rcc_extra_argumentsZeichenkette[]: Zusätzliche Argumente fürrcc. -
dependenciesAbhängigkeit[]: Abhängigkeitsobjekte, die von moc benötigt werden. -
Veraltet in 0.59.0.:
sources: eine Liste zusätzlicher Quellcodedateien, die unverändert zur Ausgabe hinzugefügt werden. -
preserve_pathsbool: Seit 1.4.0. Wenntrue, gibt an, dass die Ausgabedateien ihre Verzeichnisstruktur innerhalb des temporären Zielverzeichnisses beibehalten müssen. Wenn beispielsweise eine Datei namenssubdir/one.inputverarbeitet wird, generiert sie eine Datei{target private directory}/subdir/one.out, wenntrueist, und{target private directory}/one.out, wennfalseist (Standard).
Gibt ein Array von Zielen und Quellen zurück, die an ein Kompilierungsziel übergeben werden sollen.
compile_translations
Diese Methode generiert die notwendigen Ziele zum Erstellen von Übersetzungsdateien mit lrelease. Sie nimmt keine positionalen Argumente entgegen und die folgenden Schlüsselwortargumente:
-
ts_files(Datei | Zeichenkette | benutzerdefiniertes Ziel | benutzerdefiniertes Ziel-Index | Generator-Ausgabe)[]: Die Liste der Eingabetranslate-Dateien, die vom Qt-Tool lupdate erstellt wurden.
Neu in 0.60.0: Unterstützung für custom_target, custom_target_index und generator_output. -
installbool: Wenn true, wird dieses Ziel während des Installationsschritts installiert (optional). -
install_dirstring: Verzeichnis, in das installiert werden soll (optional). -
build_by_defaultbool: Wenn auf true gesetzt, wird dieses Ziel standardmäßig erstellt, d. h. beim Aufruf vonmeson compile; der Standardwert ist false (optional). -
qresourceZeichenkette: rcc-Quelldatei zum Extrahieren von ts_files; kann nicht mit dem kwarg ts_files verwendet werden. -
rcc_extra_argumentsZeichenkette[]: Zusätzliche Argumente fürrcc(optional), wenn mit `qresource` verwendet.
Gibt entweder eine Liste von benutzerdefinierten Zielen für die kompilierten Übersetzungen zurück oder, wenn eine qresource-Datei verwendet wird, ein einzelnes benutzerdefiniertes Ziel, das die verarbeitete Quelldatei enthält und an ein Hauptbuild-Ziel übergeben werden sollte.
has_tools
Diese Methode gibt true zurück, wenn alle von diesem Modul verwendeten Werkzeuge gefunden werden, andernfalls false.
Sie sollte verwendet werden, um optionalen Qt-Code zu kompilieren.
qt6 = import('qt6')
if qt6.has_tools(required: get_option('qt_feature'))
moc_files = qt6.preprocess(...)
...
endif
Diese Methode nimmt die folgenden Schlüsselwortargumente entgegen:
-
requiredbool | FeatureOption: Standardmäßig istrequiredauffalsegesetzt. Wennrequiredauftrueoder ein aktiviertesfeaturegesetzt ist und einige Werkzeuge fehlen, wird Meson abgebrochen. -
methodZeichenkette: Die Methode zur Erkennung von Qt, siehedependency() -
tools: Zeichenkette[]: Seit 1.6.0. Liste der zu prüfenden Werkzeuge. Testbare Werkzeuge sindmoc,uic,rccundlrelease. Standardmäßig isttoolsauf['moc', 'uic', 'rcc', 'lrelease']gesetzt.
Abhängigkeiten
Siehe Qt-Abhängigkeiten.
Das Argument 'modules' wird verwendet, um Qt-Module im Projekt einzubinden. Siehe die Qt-Dokumentation für die Liste der Module.
Das Argument 'private_headers' ermöglicht die Verwendung der privaten Header von Qt-Modulen.
Beispiel
Ein einfaches Beispiel würde wie folgt aussehen:
qt6 = import('qt6')
qt6_dep = dependency('qt6', modules: ['Core', 'Gui'])
inc = include_directories('includes')
moc_files = qt6.compile_moc(headers : 'myclass.h',
extra_arguments: ['-DMAKES_MY_MOC_HEADER_COMPILE'],
include_directories: inc,
dependencies: qt6_dep)
translations = qt6.compile_translations(ts_files : 'myTranslation_fr.ts', build_by_default : true)
executable('myprog', 'main.cpp', 'myclass.cpp', moc_files,
include_directories: inc,
dependencies : qt6_dep)
Manchmal sind Übersetzungen über qresource-Dateien in die Binärdatei eingebettet. In diesem Fall müssen die ts-Dateien nicht explizit aufgelistet werden, sondern werden aus den in der qresource-Datei aufgelisteten, erstellten qm-Dateien abgeleitet. Zum Beispiel:
qt6 = import('qt6')
qt6_dep = dependency('qt6', modules: ['Core', 'Gui'])
lang_cpp = qt6.compile_translations(qresource: 'lang.qrc')
executable('myprog', 'main.cpp', lang_cpp,
dependencies: qt6_dep)
Die Ergebnisse der Suche sind