View Source mix compile (Mix v1.10.4)

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

Link to this section Functions

Link to this function

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

View Source

Returns all compilers.