diff options
author | Dylan Baker <dylan@pnwbakers.com> | 2021-06-15 12:42:45 -0700 |
---|---|---|
committer | Dylan Baker <dylan@pnwbakers.com> | 2021-06-15 14:15:13 -0700 |
commit | 753573610873e925f820af8a21e3f900390284b8 (patch) | |
tree | 6e1a80d6330782559f5caed9bdb78ec0f012dd23 | |
parent | bfaa529a7a35039d4a782615a428935df5336b94 (diff) | |
download | meson-753573610873e925f820af8a21e3f900390284b8.zip meson-753573610873e925f820af8a21e3f900390284b8.tar.gz meson-753573610873e925f820af8a21e3f900390284b8.tar.bz2 |
docs: Use an include for the qt modules
Insteadf of qt4 referencing the Qt5 page, include the same content in
both.
-rw-r--r-- | docs/markdown/Qt4-module.md | 2 | ||||
-rw-r--r-- | docs/markdown/Qt5-module.md | 163 | ||||
-rw-r--r-- | docs/markdown/_include_qt_base.md | 160 | ||||
-rwxr-xr-x | run_unittests.py | 2 |
4 files changed, 165 insertions, 162 deletions
diff --git a/docs/markdown/Qt4-module.md b/docs/markdown/Qt4-module.md index 4be1be5..6b62415 100644 --- a/docs/markdown/Qt4-module.md +++ b/docs/markdown/Qt4-module.md @@ -2,3 +2,5 @@ This module provides support for Qt4's `moc`, `uic` and `rcc` tools. It is used identically to the [Qt 5 module](Qt5-module.md). + +{{ _include_qt_base.md }} diff --git a/docs/markdown/Qt5-module.md b/docs/markdown/Qt5-module.md index 1d7b381..8a5eb00 100644 --- a/docs/markdown/Qt5-module.md +++ b/docs/markdown/Qt5-module.md @@ -1,165 +1,6 @@ # Qt5 module The Qt5 module provides tools to automatically deal with the various -tools and steps required for Qt. The module has two methods. +tools and steps required for Qt. -## 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)[]: A list of sources to be transpiled. Required, - must have at least one source - - `extra_args` string[]: Extra arguments to pass directly to `qt-rcc` - - `method` string: The method to use to detect qt, see `dependency()` for more - information. - -## 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)[]: A list of sources to be transpiled. Required, - must have at least one source - - `extra_args` string[]: Extra arguments to pass directly to `qt-uic` - - `method` string: The method to use to detect qt, see `dependency()` for more - information. - -## 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)[]: A list of sources to be transpiled into .moc - files for manual inclusion. - - `headers` (File | string)[]: A list of headers to be transpiled into .cpp files - - `extra_args` string[]: Extra arguments to pass directly to `qt-moc` - - `method` string: The method to use to detect qt, see `dependency()` for more - information. - - `include_directories` 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 wirtten to a single output file - -The variadic `sources` arguments have been deprecated since Meson 0.59.0, as has the `sources` keyword argument. These passed files unmodified through the preprocessor, don't do this, just add the output of the generator 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`: a list of strings, Files, Custom Targets, or Build Targets to pass the `rcc` compiler - - `ui_files`: a list of strings, Files, Custom Targets, or Build Targets to pass the `uic` compiler - - `moc_sources`: a list of strings, Files, Custom Targets, or Build Targets to pass the `moc` compiler the - - `moc_headers`: a list of strings, Files, Custom Targets, or Build Targets to pass the `moc` compiler. These will be converted into .cpp files - - `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. - - `uic_extra_arguments`, any additional arguments to `uic` (optional). Available since v0.49.0. - - `rcc_extra_arguments`, any additional arguments to `rcc` (optional). Available since v0.49.0. - - `dependencies`, dependency objects needed by moc. Available since v0.48.0. - - `sources`, a list of extra sources, which are added to the output unchaged. Deprecated in 0.59.0 - -It returns an array of targets and sources to pass to a compilation target. - -## compile_translations (since v0.44.0) - -This method generates the necessary targets to build translation files with -lrelease, it takes no positional arguments, and the following keyword arguments: - - - `ts_files` (str | File)[], the list of input translation files produced by Qt's lupdate tool. - - `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. Available since v0.56.0. - - `rcc_extra_arguments` string[]: any additional arguments to `rcc` (optional), - when used with `qresource. Available since v0.56.0. - -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 -qt5 = import('qt5') -if qt5.has_tools(required: get_option('qt_feature')) - moc_files = qt5.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: method used to find the Qt dependency (`auto` by default). - -*Since: 0.54.0* - -## 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.compile_moc(headers : 'myclass.h', - extra_arguments: ['-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) -``` - -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 -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) -``` +{{ _include_qt_base.md }} diff --git a/docs/markdown/_include_qt_base.md b/docs/markdown/_include_qt_base.md new file mode 100644 index 0000000..4c50abc --- /dev/null +++ b/docs/markdown/_include_qt_base.md @@ -0,0 +1,160 @@ +## 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)[]: A list of sources to be transpiled. Required, + must have at least one source + - `extra_args` string[]: Extra arguments to pass directly to `qt-rcc` + - `method` string: The method to use to detect qt, see `dependency()` for more + information. + +## 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)[]: A list of sources to be transpiled. Required, + must have at least one source + - `extra_args` string[]: Extra arguments to pass directly to `qt-uic` + - `method` string: The method to use to detect qt, see `dependency()` for more + information. + +## 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)[]: A list of sources to be transpiled into .moc + files for manual inclusion. + - `headers` (File | string)[]: A list of headers to be transpiled into .cpp files + - `extra_args` string[]: Extra arguments to pass directly to `qt-moc` + - `method` string: The method to use to detect qt, see `dependency()` for more + information. + - `include_directories` 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 wirtten to a single output file + +The variadic `sources` arguments have been deprecated since Meson 0.59.0, as has the `sources` keyword argument. These passed files unmodified through the preprocessor, don't do this, just add the output of the generator 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`: a list of strings, Files, Custom Targets, or Build Targets to pass the `rcc` compiler + - `ui_files`: a list of strings, Files, Custom Targets, or Build Targets to pass the `uic` compiler + - `moc_sources`: a list of strings, Files, Custom Targets, or Build Targets to pass the `moc` compiler the + - `moc_headers`: a list of strings, Files, Custom Targets, or Build Targets to pass the `moc` compiler. These will be converted into .cpp files + - `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. + - `uic_extra_arguments`, any additional arguments to `uic` (optional). Available since v0.49.0. + - `rcc_extra_arguments`, any additional arguments to `rcc` (optional). Available since v0.49.0. + - `dependencies`, dependency objects needed by moc. Available since v0.48.0. + - `sources`, a list of extra sources, which are added to the output unchaged. Deprecated in 0.59.0 + +It returns an array of targets and sources to pass to a compilation target. + +## compile_translations (since v0.44.0) + +This method generates the necessary targets to build translation files with +lrelease, it takes no positional arguments, and the following keyword arguments: + + - `ts_files` (str | File)[], the list of input translation files produced by Qt's lupdate tool. + - `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. Available since v0.56.0. + - `rcc_extra_arguments` string[]: any additional arguments to `rcc` (optional), + when used with `qresource. Available since v0.56.0. + +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 +qt5 = import('qt5') +if qt5.has_tools(required: get_option('qt_feature')) + moc_files = qt5.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: method used to find the Qt dependency (`auto` by default). + +*Since: 0.54.0* + +## 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.compile_moc(headers : 'myclass.h', + extra_arguments: ['-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) +``` + +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 +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) +``` diff --git a/run_unittests.py b/run_unittests.py index d17c243..92557b2 100755 --- a/run_unittests.py +++ b/run_unittests.py @@ -1846,7 +1846,7 @@ class DataTests(unittest.TestCase): markdownfiles = [f.name for f in Path("docs/markdown").iterdir() if f.is_file() and f.suffix == '.md'] exceptions = ['_Sidebar.md'] for f in markdownfiles: - if f not in exceptions: + if f not in exceptions and not f.startswith('_include'): self.assertIn(f, toc) def test_vim_syntax_highlighting(self): |