The Meson Build System
http://mesonbuild.com/
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
84 lines
3.2 KiB
84 lines
3.2 KiB
name: generator |
|
returns: generator |
|
description: | |
|
See also: [[custom_target]] |
|
|
|
This function creates a [[@generator]] object that can |
|
be used to run custom compilation commands. The only positional |
|
argument is the executable to use. It can either be a self-built |
|
executable or one returned by find_program. |
|
|
|
The template strings passed to all the keyword arguments accept |
|
the following special substitutions: |
|
|
|
- `@PLAINNAME@`: the complete input file name, e.g: `foo.c` becomes `foo.c` (unchanged) |
|
- `@BASENAME@`: the base of the input filename, e.g.: `foo.c.y` becomes `foo.c` (extension is removed) |
|
|
|
Each string passed to the `output` keyword argument *must* be |
|
constructed using one or both of these two substitutions. |
|
|
|
In addition to the above substitutions, the `arguments` keyword |
|
argument also accepts the following: |
|
|
|
- `@OUTPUT@`: the full path to the output file |
|
- `@INPUT@`: the full path to the input file |
|
- `@DEPFILE@`: the full path to the depfile |
|
- `@SOURCE_DIR@`: the full path to the root of the source tree |
|
- `@CURRENT_SOURCE_DIR@`: this is the directory where the currently processed meson.build is located in |
|
- `@BUILD_DIR@`: the full path to the root of the build dir where the output will be placed |
|
|
|
NOTE: Generators should only be used for outputs that will ***only*** |
|
be used as inputs for a [[build_target]] or a [[custom_target]]. |
|
When you use the processed output of a |
|
generator in multiple targets, the generator will be run multiple |
|
times to create outputs for each target. Each output will be created |
|
in a target-private directory `@BUILD_DIR@`. |
|
|
|
If you want to generate files for general purposes such as for |
|
generating headers to be used by several sources, or data that will be |
|
installed, and so on, use a [[custom_target]] instead. |
|
|
|
posargs: |
|
exe: |
|
type: exe | external_program |
|
description: Executable for the command to run |
|
|
|
kwargs: |
|
arguments: |
|
type: list[str] |
|
description: A list of template strings that will be the command line arguments passed to the executable. |
|
|
|
depends: |
|
# Not sure why this is not just `target` |
|
type: list[build_tgt | custom_tgt | custom_idx] |
|
since: 0.51.0 |
|
description: | |
|
An array of build targets that must be built before |
|
this generator can be run. This is used if you have a generator that calls |
|
a second executable that is built in this project (custom_idx was not |
|
available between 0.60 and 1.4.0). |
|
|
|
depfile: |
|
type: str |
|
description: | |
|
A template string pointing to a dependency file that a |
|
generator can write listing all the additional files this target |
|
depends on, for example a C compiler would list all the header files |
|
it included, and a change in any one of these files triggers a |
|
recompilation, |
|
|
|
output: |
|
type: list[str] |
|
description: | |
|
Template string (or list of template strings) defining |
|
how an output file name is (or multiple output names are) generated |
|
from a single source file name. |
|
|
|
capture: |
|
type: bool |
|
default: false |
|
since: 0.43.0 |
|
description: | |
|
When this argument is set to true, Meson captures `stdout` |
|
of the `executable` and writes it to the target file |
|
specified as `output`.
|
|
|