blob: 3b2e2a851b24388e882d8454da9d823abb57cb96 [file] [log] [blame]
name: env
long_name: Environment
description: |
This object is returned by [[environment]] and stores
detailed information about how environment variables should be set.
It should be passed as the `env` keyword argument to tests and other functions.
*Since 0.58.0* [[env.append]] and [[env.prepend]] can be called multiple times
on the same `varname`. Earlier Meson versions would warn and only the last
operation took effect.
*Since 1.5.0* This object becomes immutable after first use. This means that
calling append(), prepend() or set() will cause a deprecation warning if this
object has already been used in any function arguments. However, assignment
creates a mutable copy.
example: |
```meson
env = environment()
# MY_PATH will be '0:1:2:3'
env.set('MY_PATH', '1')
env.append('MY_PATH', '2')
env.append('MY_PATH', '3')
env.prepend('MY_PATH', '0')
# Deprecated since 1.5.0
run_command('script.py', env: env)
env.append('MY_PATH', '4')
# Allowed and only env2 is modified
env2 = env
env2.append('MY_PATH', '4')
```
methods:
- name: append
returns: void
description: |
appends the given values to
the old value of the environment variable, e.g. `env.append('FOO',
'BAR', 'BAZ', separator : ';')` produces `BOB;BAR;BAZ` if `FOO` had
the value `BOB` and plain `BAR;BAZ` if the value was not defined.
posargs:
variable:
type: str
description: The variable to modify
varargs:
type: str
name: Value
description: The values to append
kwargs:
separator:
type: str
description: |
The separator to use. If not explicitly specified, the default path
separator for the host operating system will be used, i.e. ';' for
Windows and ':' for UNIX/POSIX systems.
- name: prepend
returns: void
description: Same as `append` except that it writes to the beginning of the variable.
posargs:
variable:
type: str
description: The variable to modify
varargs:
type: str
name: Value
description: The values to prepend
kwargs_inherit: env.append
- name: set
returns: void
description: |
Sets the environment variable
specified in the first argument to the values in the varargs
joined by the separator. For instance, `env.set('FOO', 'BAR'),` sets envvar
`FOO` to value `BAR`.
posargs:
variable:
type: str
description: The variable to modify
varargs:
type: str
name: Value
description: The values to set
kwargs_inherit: env.append
- name: unset
returns: void
since: 1.4.0
description: |
Unset the specified environment variable. If this variable does not exist,
nothing happens.