aboutsummaryrefslogtreecommitdiff
path: root/build2/b.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-28Print backtrace to stderr when terminating due to unhandled exceptionKaren Arutyunov1-3/+21
2019-03-14Add support for multiple variable overridesBoris Kolpackov1-23/+6
Now we can do: $ b config.cxx.coptions=-O3 config.cxx.coptions=-O0 Or even: $ b config.cxx.coptions=-O3 config.cxx.coptions+=-g
2019-03-07Move bunch of root scope-only data members to root_extraBoris Kolpackov1-4/+5
2019-03-07Add support for alternative build file/directory naming schemeBoris Kolpackov1-21/+68
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-2/+2
2019-01-14Diagnose target names with multiple trailing slashes as invalidBoris Kolpackov1-1/+1
2018-11-28Add --[no-]mtime-check options to control this behavior at runtimeBoris Kolpackov1-1/+4
By default the checks are enabled only for the staged toolchain.
2018-11-27Add --dump <phase> option, omit state dumping from verbosity level 6Boris Kolpackov1-7/+28
2018-11-14Fallback to loading outer buildfile if there isn't one in src_baseBoris Kolpackov1-21/+74
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-32/+49
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-07Add support for default extension specification, trailing dot escapingBoris Kolpackov1-6/+8
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)
2018-07-25Exclude cli and bash modules from bootstrap buildBoris Kolpackov1-3/+6
2018-07-20Implement bash moduleBoris Kolpackov1-0/+4
2018-07-16Implement in moduleBoris Kolpackov1-3/+10
Given test.in containing something along these lines: foo = $foo$ Now we can do: using in file{test}: in{test.in} file{test}: foo = FOO The alternative variable substitution symbol can be specified with the in.symbol variable and lax (instead of the default strict) mode with in.substitution. For example: file{test}: in.symbol = '@' file{test}: in.substitution = lax
2018-06-15Use portable environment variable manipulation functionsKaren Arutyunov1-8/+6
2018-05-19Update copyright yearKaren Arutyunov1-2/+2
2018-05-16Fix uncaught invalid_path exceptionKaren Arutyunov1-1/+1
2018-05-14Tolerate misconfigured src_root in info and disfigure meta-operationsBoris Kolpackov1-25/+46
2018-04-30Don't print scheduler statistics at verbosity level 2, add --stat insteadBoris Kolpackov1-2/+3
2018-04-28Expose meta-operation in build.meta_operation variableBoris Kolpackov1-0/+5
2018-04-27Add support for build hooksBoris Kolpackov1-12/+20
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-25/+54
2018-03-24Fix bug in '--' handlingBoris Kolpackov1-4/+2
2018-02-21Add progress to dist meta-operationBoris Kolpackov1-6/+6
2018-02-12Add default capping of stack size for all POSIX platforms, --max-stackBoris Kolpackov1-1/+7
2018-02-12Make sure operation failure diagnostics is printed for pre/post-operationsBoris Kolpackov1-6/+9
2018-02-09Fix GCC's "maybe used uninitialized" warningBoris Kolpackov1-3/+3
2018-02-08Fix meta-operation logic some moreBoris Kolpackov1-3/+4
2018-02-08Fix bug in operation aliasing logicBoris Kolpackov1-4/+7
2018-02-08Fix regression in meta-operation lifting logicBoris Kolpackov1-20/+18
2018-02-07Add support for update-for-{test,install} operation aliasesBoris Kolpackov1-32/+47
2018-02-01Diagnose out_base inside src_baseBoris Kolpackov1-0/+8
2018-01-17Add workaround for data race in libstdc++'s ctype<char>::narrow()Karen Arutyunov1-0/+20
2017-12-19Remove unused variableKaren Arutyunov1-2/+0
2017-12-17Fix few issues with structured result outputBoris Kolpackov1-3/+5
2017-12-16Split stream verbosity into components (path, extension)Boris Kolpackov1-6/+7
Use to make sure structured result output always contains absolute target path.
2017-12-16Add support for structured result output (--structured-result)Boris Kolpackov1-21/+94
2017-12-04Implement better cross-hinting between c-family modulesBoris Kolpackov1-0/+1
2017-11-29Reimplement module sidebuilding using an ad hoc subprojectBoris Kolpackov1-9/+10
2017-10-03Adapt to modularization of libbutlKaren Arutyunov1-2/+2
2017-09-25Get rid of pkgconfig moduleKaren Arutyunov1-4/+0
2017-09-07Implement {c,cxx}.guess modulesBoris Kolpackov1-0/+2
These can be loaded before {c,cxx} to guess the compiler. Based on this information we can then choose the standard, experimental features, etc. For example: using cxx.guess if ($cxx.id == 'clang') cxx.features.modules = false cxx.std = experimental using cxx
2017-09-03Minor diagnostics tweaksBoris Kolpackov1-4/+6
2017-09-03Cleanup project src/out_root/base discovery logicBoris Kolpackov1-117/+55
Specifically, we no longer support specifying the out_base explicitly and assuming work is src_base.
2017-08-22Fix disabling error reporting dialog box to properly test for serial executionKaren Arutyunov1-4/+6
2017-08-21Disable displaying error reporting dialog box on Windows unless run seriallyKaren Arutyunov1-0/+10
2017-08-06Print progress to terminal by defaultKaren Arutyunov1-0/+7
2017-08-05Add --match-only optionBoris Kolpackov1-6/+15
2017-07-25Actualize target path that came from command lineBoris Kolpackov1-1/+1