aboutsummaryrefslogtreecommitdiff
path: root/build2/file.cxx
AgeCommit message (Collapse)AuthorFilesLines
2019-06-03Adapt to renaming traits alias to traits_type for basic_path, basic_url, and ↵Karen Arutyunov1-1/+1
string_table class templates
2019-05-17Diagnose package/project name mismatch in version moduleBoris Kolpackov1-0/+1
2019-03-07Move bunch of root scope-only data members to root_extraBoris Kolpackov1-32/+29
2019-03-07Add support for alternative build file/directory naming schemeBoris Kolpackov1-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).
2019-01-16Update copyright yearKaren Arutyunov1-1/+1
2018-11-14Fallback to loading outer buildfile if there isn't one in src_baseBoris Kolpackov1-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.
2018-11-09Add support for relative to base scope command line variable overridesBoris Kolpackov1-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
2018-08-30Handle missing export directive in export stubBoris Kolpackov1-2/+11
If none were executed, then we assume the requested target is not exported.
2018-08-29Fix typo in diagnosticsBoris Kolpackov1-1/+1
2018-07-30Make project variable to be of project_name typeKaren Arutyunov1-37/+22
2018-07-23Sanitize project name when forming config.import.<proj> variableBoris Kolpackov1-5/+23
Specifically, '-', '+', and '.' are replaced with '_' to form a "canonical" variable name.
2018-05-23Fix bug in inner project bootstrap during configure/disfigureBoris Kolpackov1-2/+7
2018-05-19Update copyright yearKaren Arutyunov1-1/+1
2018-05-18Pass ignore_dangling flag to dir_iterator() ctorKaren Arutyunov1-74/+80
2018-05-14Tolerate misconfigured src_root in info and disfigure meta-operationsBoris Kolpackov1-18/+63
2018-04-27Add support for build hooksBoris Kolpackov1-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
2018-04-26Implement forwarded configurations and backlinkingBoris Kolpackov1-48/+116
2018-04-24Minor code reuse improvementBoris Kolpackov1-1/+1
2018-01-05Add support for variable aliasesBoris Kolpackov1-1/+1
2018-01-04Load config.build in init(), not boot()Boris Kolpackov1-6/+10
We now make sure the config module is init'ed first.
2017-12-13Implement info meta operationBoris Kolpackov1-7/+25
This meta operation can be used to print basic information (name, version, source/output roots, etc) for one or more projects.
2017-11-29Reimplement module sidebuilding using an ad hoc subprojectBoris Kolpackov1-15/+39
2017-09-06Call dist callback in subprojectsBoris Kolpackov1-1/+0
This fixes a bug with no updating manifest versions in build2-toolchain subprojects.
2017-09-03Cleanup project src/out_root/base discovery logicBoris Kolpackov1-14/+9
Specifically, we no longer support specifying the out_base explicitly and assuming work is src_base.
2017-07-28Restrict exe{} search to PATH when importingBoris Kolpackov1-1/+3
2017-05-13Fix VC15 warnings (/W3)Karen Arutyunov1-1/+1
2017-05-01Add hxx extension for headersKaren Arutyunov1-11/+11
2017-03-02Implement parallel matchBoris Kolpackov1-3/+3
2017-02-13Track variable value modificationsBoris Kolpackov1-1/+1
2017-02-13Tighten code that operates during both search/match and executeBoris Kolpackov1-17/+29
2017-02-13Pass const scope& where modification should not happenBoris Kolpackov1-17/+19
2017-02-13Implement pattern-based variable typing, tighten variable type updateBoris Kolpackov1-4/+8
2017-02-13Add notion of phase, enforceBoris Kolpackov1-4/+5
2017-02-13Add model mutex, make var_pool const by defaultBoris Kolpackov1-42/+41
2017-01-23Implement automatic loading of directory buildfilesBoris Kolpackov1-3/+46
Now instead of explicitly writing: d = foo/ bar/ ./: $d include $d We can (usually) just write: ./: foo/ bar/
2017-01-19Get rid of extension_poolBoris Kolpackov1-3/+6
2017-01-19Get rid of project_name_poolBoris Kolpackov1-8/+8
With small string optimizations this is most likely a hindrance rather that an optimization.
2017-01-09Make use of operator<<(ostream, exception)Karen Arutyunov1-3/+3
2017-01-05Update copyright yearBoris Kolpackov1-1/+1
2016-12-17Add support for specifying individual paths of imported targetsBoris Kolpackov1-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
2016-12-17Use PATH search as fallback import mechanism for exe{} targetsBoris Kolpackov1-7/+52
2016-11-22Use diagnostics facility from libbutlBoris Kolpackov1-6/+3
2016-11-18Implement noop meta-operationBoris Kolpackov1-0/+1
The effect is loading all the buildfiles but not searching/matching/executing any targets/operations. Useful for testing.
2016-11-04Change token type 'name' to more general 'word'Boris Kolpackov1-1/+1
2016-11-04Various design/implementation cleanupsBoris Kolpackov1-2/+2
2016-09-15Add io_error alias for std::ios_base::failureKaren Arutyunov1-3/+3
2016-09-13Fix crashing on subprojects that have no project variable setKaren Arutyunov1-2/+2
2016-09-13Fix crashing on unhandled system_error thrown by file_exists()Karen Arutyunov1-9/+8
2016-09-06Don't search for subprojects recursively, only at top-levelBoris Kolpackov1-1/+7
2016-08-30Add support for config.build file versioningBoris Kolpackov1-9/+22