Age | Commit message (Collapse) | Author |
|
... to initially use rules' predefined defaults.
|
|
|
|
|
|
So that we can, also for header-only libraries, always declare the
direct dependencies without creating a cyclic dependency between
entity_name_data and expressions.
|
|
|
|
In the defining expression of a rule, the TREE function is also
available. Document this.
|
|
|
|
test hard-link capabilities on self generated file instead of relying
on right permissions of the input file.
|
|
Add a function transforming a list into a map. In this way, artifacts
collected positionally in a list can easily be realized as a stage
used for input to an action or output of a target.
|
|
|
|
|
|
|
|
... and headers should be treated as headers.
|
|
Add a "deps" field to ["data", "staged"] from which the runfiles
also added, without being staged, e.g., another ["data", "staged"]
target, possibly with a different stage. This allows convenient
collection of files, logically put to different directories.
|
|
Not only trees, but also regular files can disallow paths reaching
into them. If we have a file at a/b then another file at a/b/c
is a staging conflict as well. Make our tool recognize this.
|
|
In particular, ensure that the empty path and "." have the
same normal form.
|
|
... so that destinations like "foo/." are handled correctly.
Also, support linking to "." in trees by only late creation of the
input directory.
|
|
|
|
|
|
... which were all ignored except the last. CLI11 usually
only calls the option function once all options have been
parsed. This change ensures that the option function is
called everytime the option is parsed.
|
|
... supporting trigger_on_parse() option, which allows to
call option functions multiple times, instead of collecting
the option values in a vector and processing this vector.
|
|
... and detect conflicts araising this way. Also normalize
the paths after staging them to the specified subdir.
|
|
Our maps serve two purposes: on the one hand, they can be a generic
key-value association with arbitrary strings as keys. On the other
hand, we use them to describe arrangements of files (inputs to actions,
artifacts or runfiles generated). In this function, certain keys refer
to the same path and hence have to be identifed. Therefore, at places
where the keys clearly have to be paths in the file system, implicitly
normalize them and check for conflicts.
|
|
... as it will be required outside the target map.
|
|
While there, also fix a few typos.
|
|
|
|
|
|
... and also use it for "git init" and "git add" as well, to avoid
effects of unusual git configurations.
|
|
One of the uses of "just analyse" is to obtain the action graph
which also contains identifiers depending on the way artifacts
are hashed, e.g., blobs or known artifacts. Therefore, make
just analyse support compatible mode as well.
|
|
|
|
... as some compiler need access to the environemnt
in order to find their utility programs (like cc1).
|
|
We assume that the git2 directory in the include-file path is
owned by git2 and no other targets put files there. Document this
by closing it up as a tree. (As a side effect we pass around fewer
identifiers and reported runfiles list get easier to read.) Note
that for the tree we can't use the TREE constructor, as, besides
the source files, there is also a generated file contained in that
directory.
|
|
... by using "disjoint_map_union" instead of "map_union" which
has a latest-wins semantics and does not have a "msg" arguement.
|
|
|
|
... and replace all instances where the field_*_list variant
of those expressions is used solely for the purpose of
performing the disjoint union manually.
|
|
|
|
... for collecting link-args from dependencies. By
consistently using this expression, we fix an issue with C++
binary and test, which both did not collect the linker
arguments from their proto-deps.
|
|
|
|
... to query and merge map/list entries from the provides
map of the given target_fields' targets.
|
|
|
|
before this patch the completion from just install to install-cas did not work.
this patch adds autocompletion to directories and files as well.
|
|
|
|
While git's (sha1-based) blob identifier is good for daily use and
strong enough to avoid accidental hash collisions (after all, we're
using git to version our sources), sha1 is no longer considered
safe enough to verify files downloaded through an unsecure channel.
Therefore, support additional checksum verification when obtaining
a file from the network.
|
|
As our default (bundled) bootstrap brings a well defined version of
ssl, use this also in the initial bootstrap step.
|
|
Since in default (bundled) bootstrap, we bring our own version
of libgit2, also use that for the initial bootstrap step.
|
|
Some libraries, e.g., libgit2, bring an include directory that is
expected to occur directly in the search path (containing a git2
directory and a git2.h file). Support this use case by allowing
"." as include_name in the bootstrap hints.
|
|
|
|
The expected size of the list that defines the target was not checked
consistently. So, in case a target expected a list with 4 elements,
but got just 3, a segfault would happen.
This patch resolves this issue.
|
|
|
|
... which are more efficient if the caller wants to perform
the union manually (because disjointness should be enforced
or additional maps should be added to the union, etc.). As a
positive side effect, code reuse is slightly increased by
consistently calling these newly introduced expressions for
obtaining the artifacts/runfiles from all targets of a
target field.
|