| # Qt5 module | |
| The Qt5 module provides tools to automatically deal with the various | |
| tools and steps required for Qt. The module has two methods. | |
| ## preprocess | |
| This method takes the following keyword arguments: | |
| - `moc_headers`, `moc_sources`, `ui_files`, `qresources`, which define the files that require preprocessing with `moc`, `uic` and `rcc` | |
| - `include_directories`, the directories to add to header search path for `moc` (optional) | |
| - `moc_extra_arguments`, any additional arguments to `moc` (optional). Available since v0.44.0. | |
| It returns an opaque object that should be passed to a main build target. | |
| ## compile_translations (since v0.44.0) | |
| This method generates the necessary targets to build translation files with lrelease, it takes the following keyword arguments: | |
| - `ts_files`, the list of input translation files produced by Qt's lupdate tool. | |
| - `install` when true, this target is installed during the install step (optional). | |
| - `install_dir` directory to install to (optional). | |
| - `build_by_default` when set to true, to have this target be built by default, that is, when invoking plain ninja; the default value is false (optional). | |
| ## Dependencies | |
| See [Qt dependencies](Dependencies.md#qt4-qt5) | |
| The 'modules' argument is used to include Qt modules in the project. | |
| See the Qt documentation for the [list of modules](http://doc.qt.io/qt-5/qtmodules.html). | |
| The 'private_headers' argument allows usage of Qt's modules private headers. | |
| (since v0.47.0) | |
| ## Example | |
| A simple example would look like this: | |
| ```meson | |
| qt5 = import('qt5') | |
| qt5_dep = dependency('qt5', modules: ['Core', 'Gui']) | |
| inc = include_directories('includes') | |
| moc_files = qt5.preprocess(moc_headers : 'myclass.h', | |
| moc_extra_arguments: ['-DMAKES_MY_MOC_HEADER_COMPILE'], | |
| include_directories: inc) | |
| 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) | |
| ``` |