Age | Commit message (Collapse) | Author |
|
Templates now no longer use Make variables for substitution
but instead replace strings with their equivalent:
template_name: Corresponds to n=template_name
project_name: Corresponds to $(PROJECT) or in=project_name
This allows defining templates outside of Makefiles. For
example an external plugin could define their templates
in templates/my_template.erl and then have the following
in the included Makefile:
tpl_my_template = $(file < $(THIS)/templates/my_template.erl)
By default the created file will be in src/template_name.erl.
This can be overriden with the tplp_* variable:
tplp_my_template = src/model/my_template.erl
Substitution is applied both to the template contents and
to its path.
In addition, attempting to overwrite an existing file when
creating a template will result in failure.
|
|
It's better than extending help:: because this gets printed
at the end instead of before Erlang.mk's own help.
|
|
If the application's Makefile specify either:
DEP_PLUGINS = $(PROJECT)
or e.g.:
DEP_PLUGINS = $(PROJECT)/mk/dist.mk
then load the plugin from the application instead of a dependency.
This helps when you have an application with common Erlang modules and
Erlang.mk plugins: your common application can load Erlang.mk plugins
exactly like other applications depending on the common application.
|
|
Regular plugins (`$(DEP_PLUGINS)`) are loaded near the end of Erlang.mk.
This is fine when you want to modify variables initialized earlier in
Erlang.mk or add new targets and variables.
However, it doesn't allow you to declare more dependencies because they
are loaded too late for that.
This commit introduces a new variable, `$(DEP_EARLY_PLUGINS)`, which can
be used to list plugins meant to be loaded near the beginning of
Erlang.mk. Those allow to append to the list of dependencies.
They work exactly like regular plugins otherwise. The default filename
loaded is `early-plugins.mk`.
|
|
This will allow to provide permanent URLs to the documentation.
|
|
|
|
|
|
Plugins can automatically be fetched and included from
dependencies. All that is needed is to add either the
dependency name or the name + path of the plugin to the
DEP_PLUGINS variable.
Useful for allowing tools to easily add support for new
targets, adding templates or for putting the whole build
ecosystem in one common dependency.
|