Mix.Task.Compiler behaviour
This module defines the behaviour for a Mix task that does compilation.
A Mix compiler task can be defined by simply using Mix.Task.Compiler
in a module whose name starts with Mix.Tasks.Compile.
and defining the run/1
function:
defmodule Mix.Tasks.Compile.MyLanguage do use Mix.Task.Compiler def run(_args) do :ok end end
The run/1
function returns an atom indicating the status of the compilation, and optionally can also return a list of “diagnostics” such as warnings or compilation errors. Doing this enables code editors to display issues inline without having to analyze the command-line output.
If the compiler uses manifest files to track stale sources, it should define manifests/0
, and if it writes any output to disk it should also define clean/0
.
A compiler supports the same attributes for configuration and documentation as a regular Mix task. See Mix.Task
for more information.
Summary
Callbacks
- clean()
-
Removes build artifacts and manifests
- manifests()
-
Lists manifest files for the compiler
- run(list)
-
Receives command-line arguments and performs compilation. If it produces errors, warnings, or any other diagnostic information, it should return a tuple with the status and a list of diagnostics
Callbacks
clean() (optional)
clean() :: any()
Removes build artifacts and manifests.
manifests() (optional)
manifests() :: [Path.t()]
Lists manifest files for the compiler.
run(list)
run([binary()]) :: :ok | :noop | {:ok | :noop | :error, [Mix.Task.Compiler.Diagnostic.t()]}
Receives command-line arguments and performs compilation. If it produces errors, warnings, or any other diagnostic information, it should return a tuple with the status and a list of diagnostics.
© 2012 Plataformatec
Licensed under the Apache License, Version 2.0.
https://hexdocs.pm/mix/1.6.6/Mix.Task.Compiler.html