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_args string[]: Zusätzliche Argumente, die direkt an qt-rcc übergeben werden.
  • method Zeichenkette: Die Methode, die zur Erkennung von Qt verwendet werden soll, 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 (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_args string[]: Zusätzliche Argumente, die direkt an qt-uic übergeben werden.
  • method Zeichenkette: Die Methode, die zur Erkennung von Qt verwendet werden soll, 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 (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_args string[]: Zusätzliche Argumente, die direkt an qt-moc übergeben werden.
  • method Zeichenkette: Die Methode, die zur Erkennung von Qt verwendet werden soll, 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 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 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 Zeichenkette[]: Zusätzliche Argumente für moc. Seit v0.44.0.
  • uic_extra_arguments Zeichenkette[]: Zusätzliche Argumente für uic. Seit v0.49.0.
  • rcc_extra_arguments Zeichenkette[]: Zusätzliche Argumente für rcc. Seit v0.49.0.
  • dependencies Abhä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_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 (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.
  • 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 Zeichenkette: rcc-Quelldatei zum Extrahieren von ts_files; kann nicht mit dem ts_files-Stichwort verwendet werden. Verfügbar seit v0.56.0.
  • rcc_extra_arguments Zeichenkette[]: 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 Zeichenkette: Methode, die zum Finden 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. 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