summaryrefslogtreecommitdiffstats
path: root/build2/file.cxx
Commit message (Collapse)AuthorAgeFilesLines
* Move bunch of root scope-only data members to root_extraBoris Kolpackov2019-03-071-32/+29
|
* Add support for alternative build file/directory naming schemeBoris Kolpackov2019-03-071-109/+272
| | | | | | | | 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
|
* Fallback to loading outer buildfile if there isn't one in src_baseBoris Kolpackov2018-11-141-7/+9
| | | | | | 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.
* Add support for relative to base scope command line variable overridesBoris Kolpackov2018-11-091-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Handle missing export directive in export stubBoris Kolpackov2018-08-301-2/+11
| | | | If none were executed, then we assume the requested target is not exported.
* Fix typo in diagnosticsBoris Kolpackov2018-08-291-1/+1
|
* Make project variable to be of project_name typeKaren Arutyunov2018-07-301-37/+22
|
* Sanitize project name when forming config.import.<proj> variableBoris Kolpackov2018-07-231-5/+23
| | | | | Specifically, '-', '+', and '.' are replaced with '_' to form a "canonical" variable name.
* Fix bug in inner project bootstrap during configure/disfigureBoris Kolpackov2018-05-231-2/+7
|
* Update copyright yearKaren Arutyunov2018-05-191-1/+1
|
* Pass ignore_dangling flag to dir_iterator() ctorKaren Arutyunov2018-05-181-74/+80
|
* Tolerate misconfigured src_root in info and disfigure meta-operationsBoris Kolpackov2018-05-141-18/+63
|
* Add support for build hooksBoris Kolpackov2018-04-271-43/+135
| | | | | | | | | | The following buildfiles are loaded (if present) at appropriate times from the out_root subdirectories of a project: build/bootstrap/pre-*.build # before loading bootstrap.build build/bootstrap/post-*.build # after loading bootstrap.build build/root/pre-*.build # before loading root.build build/root/post-*.build # after loading root.build
* Implement forwarded configurations and backlinkingBoris Kolpackov2018-04-261-48/+116
|
* Minor code reuse improvementBoris Kolpackov2018-04-241-1/+1
|
* Add support for variable aliasesBoris Kolpackov2018-01-051-1/+1
|
* Load config.build in init(), not boot()Boris Kolpackov2018-01-041-6/+10
| | | | We now make sure the config module is init'ed first.
* Implement info meta operationBoris Kolpackov2017-12-131-7/+25
| | | | | This meta operation can be used to print basic information (name, version, source/output roots, etc) for one or more projects.
* Reimplement module sidebuilding using an ad hoc subprojectBoris Kolpackov2017-11-291-15/+39
|
* Call dist callback in subprojectsBoris Kolpackov2017-09-061-1/+0
| | | | | This fixes a bug with no updating manifest versions in build2-toolchain subprojects.
* Cleanup project src/out_root/base discovery logicBoris Kolpackov2017-09-031-14/+9
| | | | | Specifically, we no longer support specifying the out_base explicitly and assuming work is src_base.
* Restrict exe{} search to PATH when importingBoris Kolpackov2017-07-281-1/+3
|
* Fix VC15 warnings (/W3)Karen Arutyunov2017-05-131-1/+1
|
* Add hxx extension for headersKaren Arutyunov2017-05-011-11/+11
|
* Implement parallel matchBoris Kolpackov2017-03-021-3/+3
|
* Track variable value modificationsBoris Kolpackov2017-02-131-1/+1
|
* Tighten code that operates during both search/match and executeBoris Kolpackov2017-02-131-17/+29
|
* Pass const scope& where modification should not happenBoris Kolpackov2017-02-131-17/+19
|
* Implement pattern-based variable typing, tighten variable type updateBoris Kolpackov2017-02-131-4/+8
|
* Add notion of phase, enforceBoris Kolpackov2017-02-131-4/+5
|
* Add model mutex, make var_pool const by defaultBoris Kolpackov2017-02-131-42/+41
|
* Implement automatic loading of directory buildfilesBoris Kolpackov2017-01-231-3/+46
| | | | | | | | | | | | Now instead of explicitly writing: d = foo/ bar/ ./: $d include $d We can (usually) just write: ./: foo/ bar/
* Get rid of extension_poolBoris Kolpackov2017-01-191-3/+6
|
* Get rid of project_name_poolBoris Kolpackov2017-01-191-8/+8
| | | | | With small string optimizations this is most likely a hindrance rather that an optimization.
* Make use of operator<<(ostream, exception)Karen Arutyunov2017-01-091-3/+3
|
* Update copyright yearBoris Kolpackov2017-01-051-1/+1
|
* Add support for specifying individual paths of imported targetsBoris Kolpackov2016-12-171-44/+101
| | | | | | | | | | | The new config.import.* variable format is: config.import.<proj>.<name>[.<type>] For example: b config.import.build2.b=/opt/build2/bin/b b config.import.build2.b.exe=b-boot
* Use PATH search as fallback import mechanism for exe{} targetsBoris Kolpackov2016-12-171-7/+52
|
* Use diagnostics facility from libbutlBoris Kolpackov2016-11-221-6/+3
|
* Implement noop meta-operationBoris Kolpackov2016-11-181-0/+1
| | | | | The effect is loading all the buildfiles but not searching/matching/executing any targets/operations. Useful for testing.
* Change token type 'name' to more general 'word'Boris Kolpackov2016-11-041-1/+1
|
* Various design/implementation cleanupsBoris Kolpackov2016-11-041-2/+2
|
* Add io_error alias for std::ios_base::failureKaren Arutyunov2016-09-151-3/+3
|
* Fix crashing on subprojects that have no project variable setKaren Arutyunov2016-09-131-2/+2
|
* Fix crashing on unhandled system_error thrown by file_exists()Karen Arutyunov2016-09-131-9/+8
|
* Don't search for subprojects recursively, only at top-levelBoris Kolpackov2016-09-061-1/+7
|
* Add support for config.build file versioningBoris Kolpackov2016-08-301-9/+22
|
* Treat empty config.import.* value as instruction to skip subproject searchBoris Kolpackov2016-08-231-39/+53
| | | | | Also, change explicit config.import.* value to take precedence over subproject search.
* Add few extra tracing statementsBoris Kolpackov2016-08-221-0/+10
|