summaryrefslogtreecommitdiffstats
path: root/build2/variable.hxx
Commit message (Collapse)AuthorAgeFilesLines
* Add support for target and prerequisite specific variable blocksBoris Kolpackov2018-11-211-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | For example, now instead of: lib{foo}: cxx.loptions += -static lib{foo}: cxx.libs += -lpthread We can write: lib{foo}: { cxx.loptions += -static cxx.libs += -lpthread } The same works for prerequisites as well as target type/patterns. For example: exe{*.test}: { test = true install = false }
* Minor terminology tweaks (model -> build state)Boris Kolpackov2018-11-131-2/+2
|
* Add support for relative to base scope command line variable overridesBoris Kolpackov2018-11-091-3/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Add support for rule-specific variables, use to fix cc.type data raceBoris Kolpackov2018-11-011-0/+3
|
* Add support for returning optional<T> from (buildfile) function implementationsBoris Kolpackov2018-08-091-0/+7
|
* Make project variable to be of project_name typeKaren Arutyunov2018-07-301-1/+21
|
* Workaround for VC14 bugBoris Kolpackov2018-06-281-0/+4
|
* Add prerequisite variable visibility specification/enforcementBoris Kolpackov2018-06-281-5/+36
|
* Implement support for excluded and ad hoc prerequisitesBoris Kolpackov2018-06-281-0/+7
| | | | | | | | | | | | | | 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
* Update copyright yearKaren Arutyunov2018-05-191-1/+1
|
* Implement forwarded configurations and backlinkingBoris Kolpackov2018-04-261-4/+11
|
* Use prefix_map::find_sup/sub()Boris Kolpackov2018-01-181-1/+1
|
* Add support for variable aliasesBoris Kolpackov2018-01-051-16/+57
|
* Implement info meta operationBoris Kolpackov2017-12-131-0/+12
| | | | | This meta operation can be used to print basic information (name, version, source/output roots, etc) for one or more projects.
* Add support for first-access value typification during non-load phasesBoris Kolpackov2017-12-051-5/+27
|
* Minor value typification API changeBoris Kolpackov2017-12-051-3/+3
|
* Add cast_empty() for value castingBoris Kolpackov2017-12-041-0/+11
|
* Add few clarifying commentsBoris Kolpackov2017-12-031-1/+4
|
* Allow typification of variables and values across load generationsBoris Kolpackov2017-12-031-2/+0
| | | | | | | | | | 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.
* Add support for for-loopBoris Kolpackov2017-11-091-1/+5
| | | | | | | | | | | | | | | | 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.
* Adapt to modularization of libbutlKaren Arutyunov2017-10-031-2/+2
|
* Add support for not cleaning generated version fileBoris Kolpackov2017-08-201-5/+9
|
* Experimental (and probably broken) pkg-config generation supportBoris Kolpackov2017-07-311-2/+7
|
* Add support for regex function familyKaren Arutyunov2017-06-271-1/+1
|
* Add hxx extension for headersKaren Arutyunov2017-05-011-0/+1328