aboutsummaryrefslogtreecommitdiff
path: root/old-tests/variable
AgeCommit message (Collapse)AuthorFilesLines
2022-12-02Fail if scope or target qualification in variable expansion is unknownBoris Kolpackov3-0/+8
There are three options here: we can "fall through" to an outer scope (there is always the global scope backstop; this is the old semantics, sort of), we can return NULL straight away, or we can fail. It feels like in most cases unknown scope or target is a mistake and doing anything other than failing is just making things harder to debug.
2022-10-13Update old tests to public/private variable modelBoris Kolpackov4-77/+77
2022-10-13Switch to public/private variables modelBoris Kolpackov1-21/+21
Now unqualified variables are project-private and can be typified.
2021-05-28Add support for regex-based target type/pattern specific variablesBoris Kolpackov1-39/+0
This is in addition to the already supported path-based target type/pattern specific variables. For example: hxx{*}: x = y # path-based hxx{~/.*/}: x = y # regex-based
2019-11-15Generalize attributes to be comma-separated with arbitrary valuesBoris Kolpackov1-5/+5
Before: x = [string null] After: x = [string, null]
2019-11-14Tighten up attribute recognition during parsingBoris Kolpackov1-2/+1
Now it should be possible to use `[]` for wildcard patterns, for example: foo = foo.[hit]xx Note that a leading bracket expression will still be recognized as attributes and escaping or quoting it will inhibit pattern matching. To resolve this case we need to specify an empty attribute list: foo = [] [abc]-foo.cxx
2019-03-14Add support for multiple variable overridesBoris Kolpackov1-3/+3
Now we can do: $ b config.cxx.coptions=-O3 config.cxx.coptions=-O0 Or even: $ b config.cxx.coptions=-O3 config.cxx.coptions+=-g
2018-11-09Add support for relative to base scope command line variable overridesBoris Kolpackov1-0/+30
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
2018-11-08Make command line variable override scope syntax consistent with buildfileBoris Kolpackov1-2/+2
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
2018-05-03Regularize directory target/scope-specific variable assignment syntaxBoris Kolpackov7-48/+6
2017-02-13Use variable_cache for target type/pattern-specific prepend/appendBoris Kolpackov2-22/+0
2016-12-01Port old value reversibility testsBoris Kolpackov8-142/+0
2016-12-01Move old tests to old-tests/Boris Kolpackov35-0/+918