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_args string[]: Zusätzliche Argumente, die direkt an qt-rcc übergeben werden.
  • method string: Die Methode, die zur Erkennung von Qt verwendet wird, siehe dependency() 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_args string[]: Zusätzliche Argumente, die direkt an qt-uic übergeben werden.
  • method string: Die Methode, die zur Erkennung von Qt verwendet wird, siehe dependency() für weitere Informationen.
  • preserve_paths bool: Seit 1.4.0. Wenn true, gibt an, dass die Ausgabedateien ihre Verzeichnisstruktur innerhalb des temporären Zielverzeichnisses beibehalten müssen. Wenn beispielsweise eine Datei namens subdir/one.input verarbeitet wird, generiert sie eine Datei {target private directory}/subdir/one.out, wenn true ist, und {target private directory}/one.out, wenn false ist (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_args string[]: Zusätzliche Argumente, die direkt an qt-moc übergeben werden.
  • method string: Die Methode, die zur Erkennung von Qt verwendet wird, siehe dependency() für weitere Informationen.
  • dependencies: Abhängigkeitsobjekte, deren Include-Verzeichnisse von moc verwendet werden.
  • include_directories (string | IncludeDirectory)[]: Eine Liste von include_directory()-Objekten, die beim Transpilieren der .moc-Dateien verwendet werden.
  • preserve_paths bool: Neu in 1.4.0. Wenn true, gibt an, dass die Ausgabedateien ihre Verzeichnisstruktur innerhalb des temporären Zielverzeichnisses beibehalten müssen. Wenn beispielsweise eine Datei namens subdir/one.input verarbeitet wird, generiert sie eine Datei {target private directory}/subdir/one.out, wenn true ist, und {target private directory}/one.out, wenn false ist (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 den uic-Compiler übergeben.
  • moc_sources: (string | File | CustomTarget)[]: An den moc-Compiler übergeben. Diese werden in .moc-Dateien umgewandelt, die #included werden sollen.
  • moc_headers: (string | File | CustomTarget)[]: An den moc-Compiler übergeben. Diese werden in .cpp-Dateien umgewandelt.
  • include_directories (IncludeDirectories | string)[], die Verzeichnisse, die dem Header-Suchpfad für moc hinzugefügt werden sollen.
  • moc_extra_arguments string[]: Zusätzliche Argumente für moc. Seit v0.44.0.
  • uic_extra_arguments string[]: Zusätzliche Argumente für uic. Seit v0.49.0.
  • rcc_extra_arguments string[]: Zusätzliche Argumente für rcc. Seit v0.49.0.
  • dependencies Dependency[]: 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_paths bool: Neu in 1.4.0. Wenn true, gibt an, dass die Ausgabedateien ihre Verzeichnisstruktur innerhalb des temporären Zielverzeichnisses beibehalten müssen. Wenn beispielsweise eine Datei namens subdir/one.input verarbeitet wird, generiert sie eine Datei {target private directory}/subdir/one.out, wenn true ist, und {target private directory}/one.out, wenn false ist (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.
  • install bool: Wenn true, wird dieses Ziel während des Installationsschritts installiert (optional).
  • install_dir string: Verzeichnis, in das installiert werden soll (optional).
  • build_by_default bool: Wenn auf true gesetzt, wird dieses Ziel standardmäßig erstellt, d. h. beim Aufruf von meson compile; der Standardwert ist false (optional).
  • qresource string: 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_arguments string[]: Zusätzliche Argumente für rcc (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:

  • required bool | FeatureOption: Standardmäßig ist required auf false gesetzt. Wenn required auf true oder ein aktiviertes feature gesetzt ist und einige Werkzeuge fehlen, wird Meson abgebrochen.
  • method string: Methode, die zur Suche der Qt-Abhängigkeit verwendet wird (standardmäßig auto).

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