summaryrefslogtreecommitdiffstats
path: root/build2/parser.hxx
Commit message (Collapse)AuthorAgeFilesLines
* Update copyright yearKaren Arutyunov2019-01-161-1/+1
|
* Add support for target and prerequisite specific variable blocksBoris Kolpackov2018-11-211-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | 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 }
* Implement support for dependency chainsBoris Kolpackov2018-11-161-2/+7
| | | | | | | | | | | | | | | | | | | | Now instead of: ./: exe{foo} exe{foo}: cxx{*} We can write: ./: exe{foo}: cxx{*} Or even: ./: exe{foo}: libue{foo}: cxx{*} This can be combined with prerequisite-specific variables (which naturally only apply to the last set of prerequisites in the chain): ./: exe{foo}: libue{foo}: bin.whole = false
* Add support for name patterns without wildcard charactersBoris Kolpackov2018-08-091-1/+2
| | | | | | | | In particular, this allows the "if-exists" specification of prerequisites, for example: for t: $tests exe{$t}: cxx{$t} test{+$t}
* Make project variable to be of project_name typeKaren Arutyunov2018-07-301-3/+3
|
* Update copyright yearKaren Arutyunov2018-05-191-1/+1
|
* Regularize directory target/scope-specific variable assignment syntaxBoris Kolpackov2018-05-031-1/+4
|
* Implement run buildfile directiveBoris Kolpackov2018-04-261-0/+13
| | | | | | | Now we can do: run echo 'foo = bar' print $foo
* Implement dump directiveBoris Kolpackov2017-11-201-0/+3
| | | | | | | | | | | It can be used to print (to stderr) a human-readable representation of the current scope or a list of targets. For example: dump # Dump current scope. dump lib{foo} details/exe{bar} # Dump two targets. This is primarily useful for debugging as well as to write build system tests.
* Add support for for-loopBoris Kolpackov2017-11-091-0/+3
| | | | | | | | | | | | | | | | 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.
* Initial support for prerequisite-specific variables, use for bin.wholeBoris Kolpackov2017-11-091-5/+8
|
* Add support for fail, warn, info, text directivesBoris Kolpackov2017-07-191-0/+3
|
* Implement parsing of C++ module declarationsBoris Kolpackov2017-05-251-0/+1
|
* Add hxx extension for headersKaren Arutyunov2017-05-011-0/+593