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.