Age | Commit message (Collapse) | Author |
|
|
|
...and unset TOOLCHAIN and TOOLCHAIN_DIR.
|
|
The parsing logic was buggy:
- quotation was not properly taken into account
- multiple keys provided as "@KEY1@${KEY2}@KEY3@" were not correctly parsed
- #cmakedefine KEY1 "@KEY2@" was not correctly parsed: in this case, only @KEY2@ must be expanded, provided variable KEY1 is defined
- only lines containing the magic string were processed
|
|
|
|
... instead of composing a shell command doing a cd first.
|
|
|
|
Now that justbuild 1.4 is available, the workaround of defining
"nub_left" in terms of "reverse" and "nub_right" is no longer
necessary.
|
|
|
|
|
|
dependencies
|
|
... as using the built-in "[]" directly is cleaner and equally
readable.
|
|
While there, also properly transition "srcs" and "private-hdrs"
to the host version.
|
|
If the configuration variable "LINT" is set, also provide information
on compile actions and header files (with preprocessing as described
command, in particular also providing the correct flags) in correct
dependency context. In this way, lint rules can request the needed
information for performing their checks.
|
|
... instead of hard-coding ["cqs"].
|
|
... to avoid staging conflicts with the toolchain
|
|
In this action we support a user provided toolchain, hence all the
components of the library need to go into a subdirectory to avoid
staiging conflicts.
|
|
... and add a rule allowing the summarizer to specify what it needs.
|
|
... as test meta data. Tests are executed in an unspecified directory,
assuming pass or fail is independent of the location where the test
is run. While this generally is true, test logs often contain the
working directory. So, in order to more easily compare different
execution orders of a potential race condition, it can be desirable
to compare logs "up to the execution directory". This, however,
requires that this directory is recored in the first place. Do so.
For consistency of the output format, also have a (fixed) artifact
pwd in the summary report.
|
|
If a test is run several times (as set by RUNS_PER_TEST), a summary of
the individual test runs is computed using a summarizer as configured
in the target layer of the rules. As the inputs for computing that
test summary are all the individual test runs, that action has a
large number of files as input, including a large number of identical
files, e.g., the ones indicating the outcome of an individual run.
Therefore, allow setting additional remote-execution properties
allowing to dispatch that action to a suitable end point.
|
|
|
|
This ensures that one can inspect, e.g., generated protobuf source
files (.pb.cc) or standard library headers while debugging proto
libraries or general C++ libraries and binaries, respectively.
|
|
|
|
|
|
|
|
|
|
For libraries the headers of private dependencies were wrongly
skipped from staging. For binaries, no headers were passed at all
in the provides map. To fix these issues, an additional field is
added in the provides map to ensure we collect, and then properly
stage, all needed headers for both libraries and binaries.
|
|
This is useful when we want to install targets built in debug mode,
but do not want to stage all the additional source and header files
if no debugging is being performed, e.g., in tests.
|
|
... instead of defaulting to "". In this way, an empty default target can
be used as toolchain defaults for systems with default names.
|
|
|
|
... instead of hard-coding /bin/sh.
|
|
|
|
So far, our rules, where depending on the shell, implicitly use
"normal" defaults, hard-coded in the rules. Support configuring
those in a default target, in the same way we do so for other tools,
like the C compiler. In this, it is also possible to bring your
own shell, built as a (compiled) target.
|
|
The existing rule is extended to also stage source files if in
debug mode, in order for a debugger to be able to find all needed
symbols. Conflicting paths are allowed; in case of conflicts, the
file from the closest target in the dependency chain wins.
|
|
|
|
Our pkg config rule postprocesses the output of pkgconfig to add
options -rpath where appropriate. This postprocessing, however,
relies on (standard) tools from the environment, in particular
cat(1). Therefore, the environment (in particular PATH) needs to
be set properly for this auxilliary action.
|
|
The C++ programming language is tightly related to the C programming
language. Consequently, the command line interface for C and C++
are also related and share quite a number of compile flags. Honor
this tight connection by have in our defaults a field allowing to
extend both compile flags, those for C as well as those for C++. In
this way, build defaults can be described in a more readable way.
|
|
... to allow test actions to have a larger time out, while not
changing anything in the build actions (and hence being able to
use cache hits from normal build of the library being tested).
|
|
... to the same value as TEST_TMPDIR. While TEST_TMPDIR is the
conventional name that tests should use for their temporary file,
setting TMPDIR as well has the advantage that more library functions
can be used to create temporary files and directories, as quite a
few of them inspect the variable TMPDIR.
While there, also fix some typos in the documentation strings.
|
|
... instead of inlining the code. In this way, we also have all
the checks that the test runner consists of precisely one artifact.
|
|
... not that everyone has updated to 1.2 or later we can use
the built-in expressions "reverse" and "set".
|
|
... which should accumulate values from all base targets
unless the flag type (CFLAGS, CXXFLAGS, or LDFLAGS) is
explicity overwritten by the inheritor.
|
|
... instead of assuming it to be installed under /usr/bin as we
also do in other places. In this way, we do not make any additional
assumptions on top of the already existing one on the path of env.
|
|
When a shared library is picked up from the host system via pkg-config
that is located at a non-standard location, binaries linked against
this library by a standard linker either need LD_LIBRARY_PATH set
appropriately, or -rpath set at link time. However, not all custom
installations set -rpath in the link flags in their pkg-config file.
Therefore, in order to get working binaries (and not have to set
custom paths in tests), add a -rpath for every -L option found in
the ldflags provided by pkg-config.
|
|
|
|
|
|
|
|
|
|
|
|
... and document at the appropriate place
|
|
... and mention it at the appropriate part of the documentation.
While there, also provide a default TARGETS file.
|