Age | Commit message (Collapse) | Author |
|
As the default target is also staged canonically, there
is no longer the need for the bootstrap script to know
the path and staging output of the internal main target.
|
|
For historic reasons, we considerd special strings as false values.
Drop that behavior in favor of a clean LISP-like semantics: everything
is true that is not empty.
|
|
|
|
... so that the calls using stdin/stdout redirect also work
properly.
|
|
|
|
... to foster the implementation of the built-in target "TREE"
|
|
|
|
|
|
|
|
... so remove it from the list of expected keys.
|
|
Reporting, with exponentially backing off intervals, the number of
cache hits found so far, the number of actions that have ben run,
and the number of actions currently under consideration.
|
|
|
|
|
|
|
|
|
|
While on the console, we want multi-line logs nicely aligned, when
logging to a file, unique readability is enough. So we can fix the
continuation prefix to a fixed string (with non-overlapping initial
segment). This makes log files easier to scan and also avoids
very long lines, given that the more complete message prefixes
are very long.
|
|
... to install the resulting binary to "bin".
|
|
|
|
... to have consistent punctuation. Also make clear, that the
configuration does not have to specify "CC", etc, as usually they
are taken from the default target.
|
|
This patch introduces a templated ParseEntityName which can accept a
json or ExpressionPtr. Internally, performs a proper dispatch on these
cases
- isString
- isList
- size == 2
- size >= 3
A test is added for checking the proper handling of an empty list
|
|
EntityName now clearly expresses its double identity:
- NamedTarget
- AnonymousTarget
The usage of std::variant<NamedTarget,AnonymousTarget> guarantees that
EntityName, internally, is not a mix of the two - like could happen
before this patch.
NamedTarget features an enum ReferenceType to express the type of the
target, namely, "normal target" or an "explicit file reference".
Thanks to this refactoring, the introduction of new targets type
should be easier, since the design is more modular.
NamedTarget
|
|
|
|
|
|
... that allow us to treat builds and tests in a uniform way, basically
by building a test report.
|
|
|
|
|
|
|
|
... so that they become fully content-fixed and we can benefit from
target caching, once implemented.
|
|
... and in this way enable them to present themselves to our tool
als fully specified content (which will be useful once we add target
caching). If that file root is under git anyway (like the rules or
external target files in this repository) computing that git root
is also a relatively cheap operation.
|
|
By having a proper rule for CC/IDE, these targets are no longer
needed
|
|
This is useful when e.g. using an IDE to get access to the definition/
declaration of the symbols of external dependencies
|
|
|
|
... which was accessing the wrong artifacts in the list if the
artifact list contains a mixture of files and trees.
|
|
|
|
|
|
|
|
If we do not use a target directly, we also should not include
it. It's be build tool's job to track indirect dependencies.
|
|
While our own tool is entirely written in C++, we link against
libraries written in C which, in the default multi-repo setup we
build from source. Therefore, the target also depends on the C
compiler, not only the C++ one. Hence also allow the user to user
a different compiler here as well, in the same way as they can
override the C++ compiler.
|
|
I this way, also resulting trees can cleanly be printed on the command
line via the -P option.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
... to be consistent with the remote execution protocol.
|
|
|
|
... as wrongfully only sub-tree entries were added to
locally cached trees, although they should also store
entries for files and executables.
|
|
... as wrongfully only sub-tree entries were added to
locally cached trees, although they should also store
entries for files and executables.
|
|
|