Age | Commit message (Collapse) | Author |
|
|
|
|
|
git-subtree-dir: rules
git-subtree-mainline: 247e09b1ba01deb5649c6a73a7f272e1f72178fe
git-subtree-split: d44be66f2a916168e0f5a7055e49f12c252b2cd2
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Compared to the previous commit, the action graphs for just
and its unit tests are unchanged.
- Git hash of action graph for ["",""]:
c6e75f17abd7ffaab6ff9bb725ad67ec0bf6c973
- Git hash of action graph for ["test/buildtool","TESTS"]:
8063dfb3dd7daa9ae01d95c177e14946f785c57e
Refactor:
- "local cflags" to "private-cflags"
- "local defines" to "private-defines"
- "link externals" to "private-ldflags"
- "deps" to "private-deps" for (test) binaries
- "proto" to "private-proto" for binaries
Improvements:
- consistent variable declaration order:
OS, ARCH, HOST_ARCH, TARGET_ARCH,
CC, CXX, CFLAGS, CXXFLAGS, ADD_CFLAGS, ADD_CXXFLAGS,
AR, ENV, PATH
- use fields close to their definition (in RULES)
- use common expression for binaries and test binaries
- split expression "flags" and "compiler"
... to separate ones for CC and CXX.
- rename "transition" to "deps-transition"
... to avoid conflicts with other transitions.
- support "defaults-transition" for CC expressions
Implement:
- "cflags" for libraries
- "private-cflags" for (test) binaries
- "private-defines" for test binaries
- "private-ldflags" for test binaries
- (public) "defines" for libraries
|
|
... in favor of the "tree" built-in rule.
|
|
... which is required for cross-compilation, e.g., clang's
`-target` option.
|
|
i.e., libraries that are used only in the implementation without
use in the public header files. In this way, the set of headers
exposed to dependencies can be reduced leading potentially to better
incrementality.
|
|
|
|
|
|
|
|
The test runner is supposed to report the reult in a file
called 'result' in the top-level action directory. However,
before starting the actual test, it changes the working
directory to the subdir 'work' where the input of the test
action is located. Therefore, when reporting the result,
the correct file name is '../result'. Fix this.
|
|
|
|
|
|
|
|
Signed-off-by: Goetz Brasche <goetz.brasche@huawei.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
... in a latest-wins fashion. The intended use case is overlaying
globs with individual patched files.
|
|
|
|
|
|
... as the external link dependency is still associated with this
library. In this way, importing preinstalled libraries can happen
in a sound way, even though the actual library is just an external
link dependency; still dependencies among external libraries are
honored.
|
|
|
|
|
|
|
|
|
|
|
|
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.
|
|
... as some compiler need access to the environemnt
in order to find their utility programs (like cc1).
|
|
... 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.
|
|
|
|
... 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.
|
|
... which can now be parameterized which target_fields to
query the dependencies from.
|
|
In particular, document the result for the most important
rules.
|