Qt4 Modul
Dieses Modul bietet Unterstützung für die Qt4-Werkzeuge moc, uic und rcc. Es wird identisch mit dem Qt 5 Modul verwendet.
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(File | string | custom_target | custom_target index | generator_output)[]: Eine Liste von Quellen, die transpiliert werden sollen. Erforderlich, muss mindestens eine Quelle haben. 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. -
methodstring: Die Methode, die zur Erkennung von Qt verwendet wird, siehedependency()für weitere Informationen.
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(File | string | custom_target | custom_target index | generator_output)[]: Eine Liste von Quellen, die transpiliert werden sollen. Erforderlich, muss mindestens eine Quelle haben. 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. -
methodstring: Die Methode, die zur Erkennung von Qt verwendet wird, siehedependency()für weitere Informationen. -
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).
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(File | string | custom_target | custom_target index | generator_output)[]: Eine Liste von Quellen, die in .moc-Dateien zur manuellen Einbindung transpiliert werden sollen. Neu in 0.60.0: Unterstützung für custom_target, custom_target_index und generator_output. -
headers(File | string | custom_target | custom_target index | generator_output)[]: Eine Liste von Headern, die in .cpp-Dateien transpiliert 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. -
methodstring: Die Methode, die zur Erkennung von Qt verwendet wird, siehedependency()für weitere Informationen. -
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.
Die variadischen sources-Argumente sind seit Meson 0.59.0 veraltet, ebenso wie das Schlüsselwortargument sources. Diese übergaben Dateien unverändert durch den Präprozessor, tun Sie dies nicht, fügen Sie einfach die Ausgabe des Generators einer anderen Quellliste 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_argumentsstring[]: Zusätzliche Argumente fürmoc. Seit v0.44.0. -
uic_extra_argumentsstring[]: Zusätzliche Argumente füruic. Seit v0.49.0. -
rcc_extra_argumentsstring[]: Zusätzliche Argumente fürrcc. Seit v0.49.0. -
dependenciesDependency[]: Abhängigkeitsobjekte, die von moc benötigt werden. Verfügbar seit v0.48.0. -
sources: Eine Liste zusätzlicher Quellen, die unverändert zur Ausgabe hinzugefügt werden. Veraltet in 0.59.0. -
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).
Gibt ein Array von Zielen und Quellen zurück, die an ein Kompilierungsziel übergeben werden sollen.
compile_translations
seit 0.44.0
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(File | string | custom_target | custom_target index | generator_output)[]: Die Liste der Eingabe-Übersetzungsdateien, die vom Qt-Tool lupdate erzeugt 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). -
qresourcestring: rcc-Quelldatei, aus der ts_files extrahiert werden sollen; kann nicht mit dem kwarg ts_files verwendet werden. Verfügbar seit v0.56.0. -
rcc_extra_argumentsstring[]: Zusätzliche Argumente fürrcc(optional), wenn mit `qresource` verwendet. Verfügbar seit v0.56.0.
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
seit 0.54.0
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.
qt5 = import('qt5')
if qt5.has_tools(required: get_option('qt_feature'))
moc_files = qt5.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. -
methodstring: Methode, die zur Suche der Qt-Abhängigkeit verwendet wird (standardmäßigauto).
Abhängigkeiten
Siehe Qt-Abhängigkeiten.
Das Argument 'modules' wird verwendet, um Qt-Module in das Projekt einzubinden. Siehe die Qt-Dokumentation für die Liste der Module.
Das Argument 'private_headers' ermöglicht die Verwendung von privaten Headern von Qt-Modulen (seit v0.47.0).
Beispiel
Ein einfaches Beispiel würde wie folgt aussehen:
qt5 = import('qt5')
qt5_dep = dependency('qt5', modules: ['Core', 'Gui'])
inc = include_directories('includes')
moc_files = qt5.compile_moc(headers : 'myclass.h',
extra_args: ['-DMAKES_MY_MOC_HEADER_COMPILE'],
include_directories: inc,
dependencies: qt5_dep)
translations = qt5.compile_translations(ts_files : 'myTranslation_fr.ts', build_by_default : true)
executable('myprog', 'main.cpp', 'myclass.cpp', moc_files,
include_directories: inc,
dependencies : qt5_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:
qt5 = import('qt5')
qt5_dep = dependency('qt5', modules: ['Core', 'Gui'])
lang_cpp = qt5.compile_translations(qresource: 'lang.qrc')
executable('myprog', 'main.cpp', lang_cpp,
dependencies: qt5_dep)
Die Ergebnisse der Suche sind