Age | Commit message (Collapse) | Author | Files | Lines |
|
|
|
|
|
|
|
The problematic scenario this fixes is an ad hoc pattern rule (which
we register for dist in order to inject any additional sources; see
parser.cxx for details) that pulls a tool imported from the system
(say /usr/bin/xxd).
|
|
Specifically, the dist target-specific variable now can specify a path
besides true or false. This path is the "imaginary" source location which
is used to derive the corresponding distribution local. This location can
be either a directory path (to remap with the same file name) or a file
path (to remap with a different name). If the path is relative, then it's
treated relative to the target directory. Note that to make things less
error prone, simple paths without any directory separators are not allowed
(use ./<name> instead).
Note that if multiple targets end up with the same source location, the
behavior is undefined and no diagnostics is issued.
Note also that such remapping has no effect in the bootstrap distribution
mode.
|
|
|
|
A rule hint is a target attribute, for example:
[rule_hint=cxx] exe{hello}: c{hello}
Rule hints can be used to resolve ambiguity when multiple rules match the same
target as well as to override an unambiguous match.
|
|
|
|
In this mode the dist meta-operation does not load the project (but does
bootstrap it) and adds all the source files into the distribution only
ignoring files and directories that start with a dot. This mode is primarily
meant for situation where the project cannot (yet) be loaded due to missing
dependencies.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
This is similar to the config.export variable functionality except it can be
called from within buildfiles.
Note that this function can only be used during configure unless the config
module creation was forced for other meta-operations with config.module=true
in bootstrap.build.
|
|
All non-const global state is now in class context and we can now have
multiple independent builds going on at the same time.
|
|
|
|
|