| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Currently, if we say:
$ b dir/ ./foo=bar
The scope the foo=bar is set on is relative to CWD, not dir/. While this
may seem wrong at first, this is the least surprising behavior when we
take into account that there can be multiple dir/'s.
Sometimes, however, we do want the override directory to be treated relative
to (every) target's base scope that we are building. To support this we are
extending the '.' and '..' special directory names (which are still resolved
relative to CWD) with '...', which means "relative to the base scope of every
target in the buildspec". For example:
$ b dir/ .../foo=bar
Is equivalent to:
$ b dir/ dir/foo=bar
And:
$ b liba/ libb/ .../tests/foo=bar
Is equivalent to:
$ b liba/ libb/ liba/tests/foo=bar libb/tests/foo=bar
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Before:
$ b dir/:foo=bar ...
After:
$ b dir/foo=bar
Alternatively (the buildfile syntax):
$ b 'dir/ foo=bar'
Note that the (rarely used) scope visibility modifier now leads to a
double slash:
$ b dir//foo=bar
|
|
|
|
|
|
|
| |
These variables allow overriding guessed compiler id/version/target, for
example, in case of mis-guesses or when working with compilers that don't
report their base (e.g., GCC, Clang) with -v/--version (common in the
embedded space).
|
| |
|
| |
|
| |
|
|
|
|
|
| |
It can be used to detection (for example, in tests) whether this is a staged
toolchain.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Given test.in containing something along these lines:
foo = $foo$
Now we can do:
using in
file{test}: in{test.in}
file{test}: foo = FOO
The alternative variable substitution symbol can be specified with the
in.symbol variable and lax (instead of the default strict) mode with
in.substitution. For example:
file{test}: in.symbol = '@'
file{test}: in.substitution = lax
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The inclusion/exclusion is controlled via the 'include' prerequisite-specific
variable. Valid values are:
false - exclude
true - include
adhoc - include but treat as an ad hoc input
For example:
lib{foo}: cxx{win32-utility}: include = ($cxx.targe.class == 'windows')
exe{bar}: libs{plugin}: include = adhoc
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
In particular, instead of:
exe{test}: test{testscript}
We should now write:
exe{test}: testscript
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
While update still uses the old "all update rules update all their
prerequisites" assumption, test and install have been fixed not to
rely on this.
|
| |
|
| |
|
|
|
|
|
|
| |
Apparently, use of a reference to a global variable need not be captured:
https://bugs.llvm.org/show_bug.cgi?id=35669
|
|
|
|
|
| |
This meta operation can be used to print basic information (name, version,
source/output roots, etc) for one or more projects.
|
|
|
|
|
| |
This fixes wrong merging of, say, file{README} and file{README.MySQL}
(in libmysqlclient).
|
|
|
|
|
|
|
|
|
|
| |
The original semantics turned out to be too restrictive. For example, the
user may have specified the config.c variable on the command line that is
only used by an imported project that is loaded in a subsequent generation.
We are also relaxing it for values since conceptually the two feel the same.
For a value the (hypothetical) example is a "common" variable set in a project
root that is only queried in a subdirectory in a subsequent generation.
|
|
|
|
| |
In this case the build state may no longer be valid.
|
|
|
|
|
| |
Instead of printing a line for each target skipped we now print a summary
with count at the end. We also now show the skip count in progress.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The semantics is similar to the C++11 range-based for:
list = 1 2 3
for i: $list
print $i
Note that there is no scoping of any kind for the loop variable ('i' in
the above example).
See tests/loop/for.test for some examples/ideas.
In the future the plan is to also support more general while-loop as well
as break and continue.
|
| |
|
| |
|
|
|
|
| |
This can be used to handle installed target groups like lib{}.
|
|
|
|
|
| |
Extract them from manifest in the version module. Use them when generating
the pkg-config's .pc files.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
It is still not clear whether this is the right thing to allow, conceptually,
but with this disallowed it's hard to test this functionality. Perhaps we
should have an attribute [overridable]. The problem is one will also have to
set this variable to some value (e.g., [null]) which is not exactly the same
as undefined (especially when testing).
|
|
|
|
|
|
|
| |
Keep going is the default but there is now the -s|--serial-stop that makes
the driver run serially and stop at first error.
Also fix some lockups, other minor improvements/features.
|
| |
|