|
|
|
name: configure_file
|
|
|
|
returns: file
|
|
|
|
description: |
|
|
|
|
This function can run in three modes depending on the keyword arguments
|
|
|
|
passed to it.
|
|
|
|
|
|
|
|
When a [[@cfg_data]] object is passed
|
|
|
|
to the `configuration:` keyword argument, it takes a template file as
|
|
|
|
the `input:` (optional) and produces the `output:` (required) by
|
|
|
|
substituting values from the configuration data as detailed in [the
|
|
|
|
configuration file documentation](Configuration.md). *(since 0.49.0)*
|
|
|
|
A dictionary can be passed instead of a
|
|
|
|
[[@cfg_data]] object.
|
|
|
|
|
|
|
|
When a list of strings is passed to the `command:` keyword argument,
|
|
|
|
it takes any source or configured file as the `input:` and assumes
|
|
|
|
that the `output:` is produced when the specified command is run.
|
|
|
|
|
|
|
|
*(since 0.47.0)* When the `copy:` keyword argument is set to `true`,
|
|
|
|
this function will copy the file provided in `input:` to a file in the
|
|
|
|
build directory with the name `output:` in the current directory.
|
|
|
|
|
|
|
|
kwargs:
|
|
|
|
capture:
|
|
|
|
type: bool
|
|
|
|
since: 0.41.0
|
|
|
|
default: false
|
|
|
|
description: |
|
|
|
|
When this argument is set to true,
|
|
|
|
Meson captures `stdout` of the `command` and writes it to the target
|
|
|
|
file specified as `output`.
|
|
|
|
|
|
|
|
command:
|
|
|
|
type: list[str | file]
|
|
|
|
description: |
|
|
|
|
As explained above, if specified, Meson does not create
|
|
|
|
the file itself but rather runs the specified command, which allows
|
|
|
|
you to do fully custom file generation. *(since 0.52.0)* The command can contain
|
|
|
|
file objects and more than one file can be passed to the `input` keyword
|
|
|
|
argument, see [[custom_target]] for details about string
|
|
|
|
substitutions.
|
|
|
|
|
|
|
|
configuration:
|
|
|
|
type: "cfg_data | dict[str | int | bool]"
|
|
|
|
description: |
|
|
|
|
As explained above, when passed this will provide the replacement
|
|
|
|
data for the input file (if provided) or key value pairs to be
|
|
|
|
written to the output.
|
|
|
|
|
|
|
|
copy:
|
|
|
|
type: bool
|
|
|
|
default: false
|
|
|
|
since: 0.47.0
|
|
|
|
description: |
|
|
|
|
As explained above, if specified Meson only
|
|
|
|
copies the file from input to output.
|
|
|
|
|
|
|
|
depfile:
|
|
|
|
type: str
|
|
|
|
since: 0.52.0
|
|
|
|
description: |
|
|
|
|
A dependency file that the command can write listing
|
|
|
|
all the additional files this target depends on. A change
|
|
|
|
in any one of these files triggers a reconfiguration.
|
|
|
|
|
|
|
|
format:
|
|
|
|
type: str
|
|
|
|
since: 0.46.0
|
|
|
|
default: "'meson'"
|
|
|
|
description: |
|
|
|
|
The format of defines. It defaults to `'meson'`, and so substitutes
|
|
|
|
`#mesondefine` statements and variables surrounded by `@` characters, you can also use `'cmake'`
|
|
|
|
to replace `#cmakedefine` statements and variables with the `${variable}` syntax. Finally you can use
|
|
|
|
`'cmake@'` in which case substitutions will apply on `#cmakedefine` statements and variables with
|
|
|
|
the `@variable@` syntax.
|
|
|
|
|
|
|
|
input:
|
|
|
|
type: str | file
|
|
|
|
description: |
|
|
|
|
The input file name. If it's not specified in configuration
|
|
|
|
mode, all the variables in the `configuration:` object (see above)
|
|
|
|
are written to the `output:` file.
|
|
|
|
|
|
|
|
install:
|
|
|
|
type: bool
|
|
|
|
default: false
|
|
|
|
since: 0.50.0
|
|
|
|
description: |
|
|
|
|
When true, this generated file is installed during
|
|
|
|
the install step, and `install_dir` must be set and not empty. When false, this
|
|
|
|
generated file is not installed regardless of the value of `install_dir`.
|
|
|
|
When omitted it defaults to true when `install_dir` is set and not empty,
|
|
|
|
false otherwise.
|
|
|
|
|
|
|
|
install_dir:
|
|
|
|
type: str
|
|
|
|
description: |
|
|
|
|
The subdirectory to install the generated file to
|
|
|
|
(e.g. `share/myproject`), if omitted or given the value of empty
|
|
|
|
string, the file is not installed.
|
|
|
|
|
|
|
|
install_mode:
|
|
|
|
type: list[str | int]
|
|
|
|
since: 0.47.0
|
|
|
|
description: |
|
|
|
|
Specify the file mode in symbolic format
|
|
|
|
and optionally the owner/uid and group/gid for the installed files.
|
|
|
|
|
|
|
|
See the `install_mode` kwarg of [[install_data]] for more information.
|
|
|
|
|
|
|
|
install_tag:
|
|
|
|
type: str
|
|
|
|
since: 0.60.0
|
|
|
|
description: |
|
|
|
|
A string used by the `meson install --tags` command
|
|
|
|
to install only a subset of the files. By default the file has no install
|
|
|
|
tag which means it is not being installed when `--tags` argument is specified.
|
|
|
|
|
|
|
|
output:
|
|
|
|
type: str
|
|
|
|
description: |
|
|
|
|
The output file name. *(since 0.41.0)* may contain
|
|
|
|
`@PLAINNAME@` or `@BASENAME@` substitutions. In configuration mode,
|
|
|
|
the permissions of the input file (if it is specified) are copied to
|
|
|
|
the output file.
|
|
|
|
|
|
|
|
output_format:
|
|
|
|
type: str
|
|
|
|
since: 0.47.0
|
|
|
|
description: |
|
|
|
|
The format of the output to generate when no input
|
|
|
|
was specified. It defaults to `c`, in which case preprocessor directives
|
|
|
|
will be prefixed with `#`, you can also use `nasm`, in which case the
|
|
|
|
prefix will be `%`.
|
|
|
|
|
|
|
|
encoding:
|
|
|
|
type: str
|
|
|
|
default: "'utf-8'"
|
|
|
|
since: 0.47.0
|
|
|
|
description: |
|
|
|
|
Set the file encoding for the input and output file.
|
|
|
|
The supported encodings are those of python3, see
|
|
|
|
[standard-encodings](https://docs.python.org/3/library/codecs.html#standard-encodings).
|