# Mix v1.10.3 mix compile View Source

A meta task that compiles source files.

It simply runs the compilers registered in your project and returns a tuple with the compilation status and a list of diagnostics.

## Configuration

- `:compilers` - compilers to run, defaults to `Mix.compilers/0`, which are `[:yecc, :leex, :erlang, :elixir, :app]`.

- `:consolidate_protocols` - when `true`, runs protocol consolidation via the `compile.protocols` task. The default value is `true`.

- `:build_embedded` - when `true`, embeds all code and priv content in the `_build` directory instead of using symlinks.

- `:build_path` - the directory where build artifacts should be written to. This option is intended only for child apps within a larger umbrella application so that each child app can use the common `_build` directory of the parent umbrella. In a non-umbrella context, configuring this has undesirable side-effects (such as skipping some compiler checks) and should be avoided.

## Compilers

To see documentation for each specific compiler, you must invoke `help` directly for the compiler command:

    mix help compile.elixir
    mix help compile.erlang

You can get a list of all compilers by running:

    mix compile --list

## Command line options

- `--list` - lists all enabled compilers
- `--no-archives-check` - skips checking of archives
- `--no-deps-check` - skips checking of dependencies
- `--no-protocol-consolidation` - skips protocol consolidation
- `--force` - forces compilation
- `--return-errors` - returns error status and diagnostics instead of exiting on error
- `--erl-config` - path to an Erlang term file that will be loaded as Mix config

# Link to this section Summary

## Functions

compilers(config \\ Mix.Project.config())

Returns all compilers.

# Link to this section Functions

Link to this function

# compilers(config \\ Mix.Project.config())

View Source

Returns all compilers.