rule, alias, depend
A rule describes how to update an artefact using a recipe. An alias defines a means to reference one or more artefacts with a single name / object. Depend allows to make an artefact explicitly dependent one or more other artefacts.
synopsis
-
rule
(recipe, targets, sources=[], dependencies=[], attrs=0, features=(), module=None, path_spec='', logfile=None) Express how to generate artefacts. In the simplest case this involves a source and a recipe...
- Arguments:
recipe: an action taking sources as input and producing targets.
- targets: what to make. This can be a string (typically a filename),
an existing artefact object, or a list of either strings or artefacts (or a mix thereof).
- sources: the source to make the artefact from. As with artefacts, this
may be a string, a artefact, or a list of those.
depends: additional dependencies not to be used as source.
attrs: flags
features: a set of features
module: the module to instantiate the artefact in
-
alias
(target, source, attrs=4, module=None) Declare target to be an alias for source, i.e., update source whenever updating target is requested.
-
depend
(target, dependencies) Declare target to depend on dependencies.
Examples
# bind target to source using the above rules
obj = rule(compile, 'hello.o', 'hello.cpp')
bin = rule(link, 'hello', obj)
# force obj to be updated whenever header.h is newer.
depend(obj, 'header.h')
# make 'all' an alias for 'hello'
alias('all', bin)
With the above, faber all will update the hello binary.