aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHagen Möbius <hagen.moebius@googlemail.com>2022-09-08 08:57:47 +0200
committerJussi Pakkanen <jpakkane@gmail.com>2022-11-13 21:48:01 +0200
commit0bfe776132925ee5f075215c3a6a6447e8beb3fa (patch)
treedbb955bd847f128fdd86a14860c1328ddd22f3b1
parent3646697892605ee2c85f285db31fa6aa4ddde0f3 (diff)
downloadmeson-0bfe776132925ee5f075215c3a6a6447e8beb3fa.zip
meson-0bfe776132925ee5f075215c3a6a6447e8beb3fa.tar.gz
meson-0bfe776132925ee5f075215c3a6a6447e8beb3fa.tar.bz2
Update Qt6-module.md
- qt5 -> qt6 - remove version information from when the Qt6 module was not a thing - linked to dependency function - highlight version information with *...* and placing it at the front of options or on new lines in text - reformatted for shorter lines
-rw-r--r--docs/markdown/Qt6-module.md175
1 files changed, 173 insertions, 2 deletions
diff --git a/docs/markdown/Qt6-module.md b/docs/markdown/Qt6-module.md
index 4d40423..6fe783d 100644
--- a/docs/markdown/Qt6-module.md
+++ b/docs/markdown/Qt6-module.md
@@ -2,7 +2,178 @@
*New in Meson 0.57.0*
-The Qt5 module provides tools to automatically deal with the various
+The Qt6 module provides tools to automatically deal with the various
tools and steps required for Qt.
-{{ _include_qt_base.md }}
+## compile_resources
+
+*New in 0.59.0*
+
+Compiles Qt's resources collection files (.qrc) into c++ files for compilation.
+
+It takes no positional arguments, and the following keyword arguments:
+ - `name` (string | empty): if provided a single .cpp file will be generated,
+ and the output of all qrc files will be combined in this file, otherwise
+ each qrc file be written to it's own cpp file.
+ - `sources` (File | string | custom_target | custom_target index | generator_output)[]:
+ A list of sources to be transpiled. Required, must have at least one source<br/>
+ *New in 0.60.0*: support for custom_target, custom_target_index, and generator_output.
+ - `extra_args` string[]: Extra arguments to pass directly to `qt-rcc`
+ - `method` string: The method to use to detect qt, see [[dependency]]
+
+## compile_ui
+
+*New in 0.59.0*
+
+Compiles Qt's ui files (.ui) into header files.
+
+It takes no positional arguments, and the following keyword arguments:
+ - `sources` (File | string | custom_target | custom_target index | generator_output)[]:
+ A list of sources to be transpiled. Required, must have at least one source<br/>
+ *New in 0.60.0*: support for custom_target, custom_target_index, and generator_output.
+ - `extra_args` string[]: Extra arguments to pass directly to `qt-uic`
+ - `method` string: The method to use to detect qt, see [[dependency]]
+
+## compile_moc
+
+*New in 0.59.0*
+
+Compiles Qt's moc files (.moc) into header and/or source files. At least one of
+the keyword arguments `headers` and `sources` must be provided.
+
+It takes no positional arguments, and the following keyword arguments:
+ - `sources` (File | string | custom_target | custom_target index | generator_output)[]:
+ A list of sources to be transpiled into .moc files for manual inclusion.<br/>
+ *New in 0.60.0*: support for custom_target, custom_target_index, and generator_output.
+ - `headers` (File | string | custom_target | custom_target index | generator_output)[]:
+ A list of headers to be transpiled into .cpp files<br/>
+ *New in 0.60.0*: support for custom_target, custom_target_index, and generator_output.
+ - `extra_args` string[]: Extra arguments to pass directly to `qt-moc`
+ - `method` string: The method to use to detect qt, see [[dependency]]
+ - `dependencies`: dependency objects whose include directories are used by moc.
+ - `include_directories` (string | IncludeDirectory)[]: A list of `include_directory()`
+ objects used when transpiling the .moc files
+
+## preprocess
+
+Consider using `compile_resources`, `compile_ui`, and `compile_moc` instead.
+
+Takes sources for moc, uic, and rcc, and converts them into c++ files for
+compilation.
+
+Has the following signature: `qt.preprocess(name: str | None, *sources: str)`
+
+If the `name` parameter is passed then all of the rcc files will be written to
+a single output file
+
+*Deprecated in 0.59.0*: Files given in the variadic `sources` arguments as well
+as the `sources` keyword argument, were passed unmodified through the preprocessor
+programs. Don't do this - just add the output of `preprocess()` to another sources
+list:
+```meson
+sources = files('a.cpp', 'main.cpp', 'bar.c')
+sources += qt.preprocess(qresources : ['resources'])
+```
+
+This method takes the following keyword arguments:
+ - `qresources` (string | File)[]: Passed to the RCC compiler
+ - `ui_files`: (string | File | CustomTarget)[]: Passed the `uic` compiler
+ - `moc_sources`: (string | File | CustomTarget)[]: Passed the `moc` compiler.
+ These are converted into .moc files meant to be `#include`ed
+ - `moc_headers`: (string | File | CustomTarget)[]: Passied the `moc` compiler.
+ These will be converted into .cpp files
+ - `include_directories` (IncludeDirectories | string)[], the directories to add
+ to header search path for `moc`
+ - `moc_extra_arguments` string[]: any additional arguments to `moc`.
+ - `uic_extra_arguments` string[]: any additional arguments to `uic`.
+ - `rcc_extra_arguments` string[]: any additional arguments to `rcc`.
+ - `dependencies` Dependency[]: dependency objects needed by moc.
+ - *Deprecated in 0.59.0.*: `sources`: a list of extra sources, which are added
+ to the output unchanged.
+
+It returns an array of targets and sources to pass to a compilation target.
+
+## compile_translations
+
+This method generates the necessary targets to build translation files with
+lrelease, it takes no positional arguments, and the following keyword arguments:
+
+ - `ts_files` (File | string | custom_target | custom_target index | generator_output)[]:
+ the list of input translation files produced by Qt's lupdate tool.<br/>
+ *New in 0.60.0*: support for custom_target, custom_target_index, and generator_output.
+ - `install` bool: when true, this target is installed during the install step (optional).
+ - `install_dir` string: directory to install to (optional).
+ - `build_by_default` bool: when set to true, to have this target be built by
+ default, that is, when invoking `meson compile`; the default value is false
+ (optional).
+ - `qresource` string: rcc source file to extract ts_files from; cannot be used
+ with ts_files kwarg.
+ - `rcc_extra_arguments` string[]: any additional arguments to `rcc` (optional),
+ when used with `qresource.
+
+Returns either: a list of custom targets for the compiled
+translations, or, if using a `qresource` file, a single custom target
+containing the processed source file, which should be passed to a main
+build target.
+
+## has_tools
+
+This method returns `true` if all tools used by this module are found,
+`false` otherwise.
+
+It should be used to compile optional Qt code:
+```meson
+qt6 = import('qt6')
+if qt6.has_tools(required: get_option('qt_feature'))
+ moc_files = qt6.preprocess(...)
+ ...
+endif
+```
+
+This method takes the following keyword arguments:
+- `required` bool | FeatureOption: by default, `required` is set to `false`. If `required` is set to
+ `true` or an enabled [`feature`](Build-options.md#features) and some tools are
+ missing Meson will abort.
+- `method` string: The method to use to detect qt, see [[dependency]]
+
+## 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-6/qtmodules.html).
+
+The 'private_headers' argument allows usage of Qt's modules private
+headers.
+
+## Example
+A simple example would look like this:
+
+```meson
+qt6 = import('qt6')
+qt6_dep = dependency('qt6', modules: ['Core', 'Gui'])
+inc = include_directories('includes')
+moc_files = qt6.compile_moc(headers : 'myclass.h',
+ extra_arguments: ['-DMAKES_MY_MOC_HEADER_COMPILE'],
+ include_directories: inc,
+ dependencies: qt6_dep)
+translations = qt6.compile_translations(ts_files : 'myTranslation_fr.ts', build_by_default : true)
+executable('myprog', 'main.cpp', 'myclass.cpp', moc_files,
+ include_directories: inc,
+ dependencies : qt6_dep)
+```
+
+Sometimes, translations are embedded inside the binary using qresource
+files. In this case the ts files do not need to be explicitly listed,
+but will be inferred from the built qm files listed in the qresource
+file. For example:
+
+```meson
+qt6 = import('qt6')
+qt6_dep = dependency('qt6', modules: ['Core', 'Gui'])
+lang_cpp = qt6.compile_translations(qresource: 'lang.qrc')
+executable('myprog', 'main.cpp', lang_cpp,
+ dependencies: qt6_dep)
+```
+