Qt5-Modul
Das Qt5-Modul stellt Werkzeuge zur Verfügung, um die verschiedenen Werkzeuge 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 Quellen, die transpiliert werden sollen. Erforderlich, muss mindestens eine Quelle haben. Neu ab 0.60.0: Unterstützung für benutzerdefiniertes_ziel, benutzerdefiniertes_ziel_index und generator_ausgabe. -
extra_argsstring[]: Zusätzliche Argumente, die direkt anqt-rccübergeben werden. -
methodZeichenkette: Die Methode, die zur Erkennung von Qt verwendet werden soll, 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(Datei | Zeichenkette | benutzerdefiniertes_ziel | benutzerdefiniertes_ziel_index | generator_ausgabe)[],: Eine Liste von Quellen, die transpiliert werden sollen. Erforderlich, muss mindestens eine Quelle haben. Neu ab 0.60.0: Unterstützung für benutzerdefiniertes_ziel, benutzerdefiniertes_ziel_index und generator_ausgabe. -
extra_argsstring[]: Zusätzliche Argumente, die direkt anqt-uicübergeben werden. -
methodZeichenkette: Die Methode, die zur Erkennung von Qt verwendet werden soll, 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(Datei | Zeichenkette | benutzerdefiniertes_ziel | benutzerdefiniertes_ziel_index | generator_ausgabe)[],: Eine Liste von Quellen, die in .moc-Dateien transpiliert werden sollen, zur manuellen Einbindung. Neu ab 0.60.0: Unterstützung für benutzerdefiniertes_ziel, benutzerdefiniertes_ziel_index und generator_ausgabe. -
headers(Datei | Zeichenkette | benutzerdefiniertes_ziel | benutzerdefiniertes_ziel_index | generator_ausgabe)[],: Eine Liste von Headern, die in .cpp-Dateien transpiliert werden sollen. Neu ab 0.60.0: Unterstützung für benutzerdefiniertes_ziel, benutzerdefiniertes_ziel_index und generator_ausgabe. -
extra_argsstring[]: Zusätzliche Argumente, die direkt anqt-mocübergeben werden. -
methodZeichenkette: Die Methode, die zur Erkennung von Qt verwendet werden soll, 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 Argumente sources wurden seit Meson 0.59.0 deprecationiert, ebenso wie das Schlüsselwortargument sources. Diese leiteten Dateien unverändert durch den Präprozessor weiter, tun Sie dies nicht, fügen Sie einfach die Ausgabe des Generators 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. Seit v0.44.0. -
uic_extra_argumentsZeichenkette[]: Zusätzliche Argumente füruic. Seit v0.49.0. -
rcc_extra_argumentsZeichenkette[]: Zusätzliche Argumente fürrcc. Seit v0.49.0. -
dependenciesAbhängigkeit[]: 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. Deprecationiert 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(Datei | Zeichenkette | benutzerdefiniertes_ziel | benutzerdefiniertes_ziel_index | generator_ausgabe)[],: Die Liste der Eingabe-Übersetzungsdateien, die vom Qt lupdate-Tool erzeugt werden. Neu ab 0.60.0: Unterstützung für benutzerdefiniertes_ziel, benutzerdefiniertes_ziel_index und generator_ausgabe. -
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 ts_files-Stichwort verwendet werden. Verfügbar seit v0.56.0. -
rcc_extra_argumentsZeichenkette[]: 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. -
methodZeichenkette: Methode, die zum Finden 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. Weitere Informationen finden Sie in der Qt-Dokumentation unter Liste der Module.
Das Argument 'private_headers' ermöglicht die Verwendung der privaten Header 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