---
short-description: Targets to run external commands
...

# Run targets

Sometimes you need to have a target that just runs an external command. As an example you might have a build target that reformats your source code, runs `cppcheck` or something similar. In Meson this is accomplished with a so called *run target*.

The recommended way of doing this is writing the command(s) you want to run to a script file. Here's an example script.

```bash
#!/bin/sh

cd "${MESON_SOURCE_ROOT}"
inspector_command -o "${MESON_BUILD_ROOT}/inspection_result.txt"
```

Note the two environment variables `MESON_SOURCE_ROOT` and `MESON_BUILD_ROOT`. These are absolute paths to your project's source and build directories and they are automatically set up by Meson. In addition to these Meson also sets up the variable `MESON_SUBDIR`, which points to the subdirectory where the run command was specified. Most commands don't need to set up this.

Note how the script starts by cd'ing into the source dir. Meson does not guarantee that the script is run in any specific directory. Whether you need to do the same depends on what your custom target wants to do.

To make this a run target we write it to a script file called `scripts/inspect.sh` and specify it in the top level Meson file like this.

```meson
run_target('inspector',
  command : 'scripts/inspect.sh')
```

Run targets are not run by default. To run it run the following command.

```console
$ meson compile inspector
```

All additional entries in `run_target`'s `command` array are passed unchanged to the inspector script, so you can do things like this:

```meson
run_target('inspector',
  command : ['scripts/inspect.sh', '--exclude', 'tests'])
```
