summaryrefslogtreecommitdiffstats
path: root/build2/parser.cxx
Commit message (Collapse)AuthorAgeFilesLines
* Add support for alternative build file/directory naming schemeBoris Kolpackov2019-03-071-8/+23
| | | | | | | | Now the build/*.build, buildfile, and .buildignore filesystem entries in a project can alternatively (but consistently) be called build2/*.build2, build2file, and .build2ignore. See a note at the beginning of the Project Structure section in the manual for details (motivation, restrictions, etc).
* Update copyright yearKaren Arutyunov2019-01-161-1/+1
|
* Diagnose separated variable/function nameBoris Kolpackov2018-12-031-1/+3
|
* Don't allow pattern characters in target names, scope directoriesBoris Kolpackov2018-11-231-16/+49
|
* Fix bug in dependency chain logicBoris Kolpackov2018-11-221-13/+15
|
* Add support for target and prerequisite specific variable blocksBoris Kolpackov2018-11-211-212/+387
| | | | | | | | | | | | | | | | | | | | | | | | 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-136/+167
| | | | | | | | | | | | | | | | | | | | 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
* Fallback to loading outer buildfile if there isn't one in src_baseBoris Kolpackov2018-11-141-3/+3
| | | | | | This covers the case where the target is defined in the outer buildfile which is common with non-intrusive project conversions where everything is built from a single root buildfile.
* Tweak assert directive diagnosticsBoris Kolpackov2018-11-141-3/+4
|
* Remove extraneous spaceBoris Kolpackov2018-11-071-1/+1
|
* Improve parser diagnosticsBoris Kolpackov2018-11-071-0/+11
|
* Treat invalid names as values if they are quotedBoris Kolpackov2018-10-231-19/+29
|
* Fix uncaught invalid_path exceptionKaren Arutyunov2018-09-141-18/+25
|
* Create .buildignore file in testscript root working directoryKaren Arutyunov2018-09-051-1/+2
|
* Ignore directories with .buildignore file when generating names with ↵Karen Arutyunov2018-09-031-9/+11
| | | | wildcard patterns
* Adjust terminology in diagnostic and commentsBoris Kolpackov2018-08-311-5/+5
|
* Handle missing export directive in export stubBoris Kolpackov2018-08-301-0/+3
| | | | If none were executed, then we assume the requested target is not exported.
* Handle few corner cases in concatenated expansionBoris Kolpackov2018-08-091-23/+42
|
* Add support for name patterns without wildcard charactersBoris Kolpackov2018-08-091-16/+17
| | | | | | | | In particular, this allows the "if-exists" specification of prerequisites, for example: for t: $tests exe{$t}: cxx{$t} test{+$t}
* Fix issue with concatenating empty typed LHSBoris Kolpackov2018-08-091-3/+14
|
* Add support for default extension specification, trailing dot escapingBoris Kolpackov2018-08-071-67/+133
| | | | | | | | | | | | | For example: cxx{*}: extension = cxx cxx{foo} # foo.cxx cxx{foo.test} # foo.test (probably what we want...) cxx{foo.test...} # foo.test.cxx (... is this) cxx{foo..} # foo. cxx{foo....} # foo.. cxx{foo.....} # error (must come in escape pair)
* Make project variable to be of project_name typeKaren Arutyunov2018-07-301-8/+19
|
* Add prerequisite variable visibility specification/enforcementBoris Kolpackov2018-06-281-10/+36
|
* Update copyright yearKaren Arutyunov2018-05-191-1/+1
|
* Fix uncaught invalid_path exceptionKaren Arutyunov2018-05-161-11/+19
|
* Fix assertion failure due to parser::attributes_pop() call in pre-parse modeKaren Arutyunov2018-05-121-1/+2
|
* Enable new directory target-specific variable assignment syntaxBoris Kolpackov2018-05-041-125/+103
|
* Regularize directory target/scope-specific variable assignment syntaxBoris Kolpackov2018-05-031-117/+204
|
* Redo run directive diagnostics not to rely on invalid pathsBoris Kolpackov2018-04-271-28/+13
|
* Implement run buildfile directiveBoris Kolpackov2018-04-261-53/+170
| | | | | | | Now we can do: run echo 'foo = bar' print $foo
* Add support for update-for-{test,install} operation aliasesBoris Kolpackov2018-02-071-2/+2
|
* Get rid of action rule override semanticsBoris Kolpackov2018-02-031-6/+7
| | | | | Instead we now have two more or less separate match states for outer and inner parts of an action.
* Fix few undefined behavior (ubsan) bugsBoris Kolpackov2018-01-021-3/+3
|
* Split stream verbosity into components (path, extension)Boris Kolpackov2017-12-161-7/+0
| | | | | Use to make sure structured result output always contains absolute target path.
* Fix bug in importing multiple targets with single directiveBoris Kolpackov2017-11-281-0/+7
|
* Add support for dumping prerequisite-specific variablesBoris Kolpackov2017-11-201-3/+6
|
* Implement dump directiveBoris Kolpackov2017-11-201-9/+100
| | | | | | | | | | | 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-2/+168
| | | | | | | | | | | | | | | | 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-25/+121
|
* Adapt to modularization of libbutlKaren Arutyunov2017-10-031-1/+1
|
* Allow pattern group to start with inclusionKaren Arutyunov2017-09-291-30/+130
|
* Add ability to pass scope to buildfile functions, add $install.resolve()Boris Kolpackov2017-09-111-3/+3
|
* Resolve if-else block ambiguityBoris Kolpackov2017-08-061-5/+9
|
* Add support for fail, warn, info, text directivesBoris Kolpackov2017-07-191-1/+40
|
* Allow independent wildcard patterns in a groupKaren Arutyunov2017-07-171-6/+17
|
* Fix crashing if path_search() failsKaren Arutyunov2017-06-121-2/+9
|
* Remove few unused lambda capturesBoris Kolpackov2017-06-121-2/+2
|
* Add full support for pattern exclusionsKaren Arutyunov2017-06-081-29/+26
|
* Add hxx extension for headersKaren Arutyunov2017-05-011-12/+12
|
* Add support for stub versions in version moduleBoris Kolpackov2017-04-291-1/+1
|