aboutsummaryrefslogtreecommitdiff
path: root/build2/operation.cxx
AgeCommit message (Collapse)AuthorFilesLines
2019-07-01Split build system into library and driverBoris Kolpackov1-617/+0
2019-06-24Constrain access to options to build system driver main() onlyBoris Kolpackov1-1/+1
2019-04-08Support for --dry-run|-n mode, perform update partBoris Kolpackov1-0/+8
2019-03-07Move bunch of root scope-only data members to root_extraBoris Kolpackov1-2/+2
2019-01-16Update copyright yearKaren Arutyunov1-1/+1
2019-01-14Fix VC warningBoris Kolpackov1-1/+1
2019-01-10Print list of available operations and meta-operations in infoBoris Kolpackov1-9/+27
2018-11-27Add --dump <phase> option, omit state dumping from verbosity level 6Boris Kolpackov1-7/+0
2018-11-14Fallback to loading outer buildfile if there isn't one in src_baseBoris Kolpackov1-2/+16
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-11-01Add support for rule-specific variables, use to fix cc.type data raceBoris Kolpackov1-1/+1
2018-07-30Make project variable to be of project_name typeKaren Arutyunov1-1/+1
2018-06-28Implement support for excluded and ad hoc prerequisitesBoris Kolpackov1-3/+6
The inclusion/exclusion is controlled via the 'include' prerequisite-specific variable. Valid values are: false - exclude true - include adhoc - include but treat as an ad hoc input For example: lib{foo}: cxx{win32-utility}: include = ($cxx.targe.class == 'windows') exe{bar}: libs{plugin}: include = adhoc
2018-05-19Update copyright yearKaren Arutyunov1-1/+1
2018-05-14Tolerate misconfigured src_root in info and disfigure meta-operationsBoris Kolpackov1-0/+3
2018-04-27Add support for build hooksBoris Kolpackov1-2/+2
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-02-21Add progress to dist meta-operationBoris Kolpackov1-9/+8
2018-02-12Make sure operation failure diagnostics is printed for pre/post-operationsBoris Kolpackov1-9/+9
2018-02-08Suppress VC warningBoris Kolpackov1-0/+1
2018-02-08Work around VC static initialization order issueBoris Kolpackov1-0/+4
2018-02-07Add support for update-for-{test,install} operation aliasesBoris Kolpackov1-1/+9
2018-02-03Get rid of action rule override semanticsBoris Kolpackov1-15/+4
Instead we now have two more or less separate match states for outer and inner parts of an action.
2018-01-01Fix lifetime issue in progress monitoring logicBoris Kolpackov1-2/+3
2018-01-01Fix race in scheduler progress setting logicBoris Kolpackov1-1/+1
2017-12-17Fix few issues with structured result outputBoris Kolpackov1-3/+3
2017-12-16Add support for structured result output (--structured-result)Boris Kolpackov1-10/+14
2017-12-13Implement info meta operationBoris Kolpackov1-19/+114
This meta operation can be used to print basic information (name, version, source/output roots, etc) for one or more projects.
2017-11-22Streamline skip count diagnosticsBoris Kolpackov1-1/+1
2017-11-21Improve skipped update diagnosticsBoris Kolpackov1-2/+27
Instead of printing a line for each target skipped we now print a summary with count at the end. We also now show the skip count in progress.
2017-08-06Scale target count depending on progress output type (same/new line)Boris Kolpackov1-2/+1
2017-08-06Print progress to terminal by defaultKaren Arutyunov1-2/+3
2017-07-28Tweak progress logic some moreBoris Kolpackov1-19/+25
2017-07-28Tweak progress displayBoris Kolpackov1-3/+3
2017-07-27Implement displaying build progress (--progress|-p)Boris Kolpackov1-28/+98
2017-05-01Add hxx extension for headersKaren Arutyunov1-8/+8
2017-03-16Add ability for meta-operation to preprocess buildspecBoris Kolpackov1-1/+1
2017-03-16Add support for passing parameters to (meta-) operationsBoris Kolpackov1-4/+6
2017-03-14Implement implied buildfile supportBoris Kolpackov1-6/+13
In essence, if the buildfile is: ./: */ Then it can be omitted entirely (provided there is at least one subdirectory).
2017-03-03Use final action state after match at top level (operation)Boris Kolpackov1-3/+14
2017-03-02Implement parallel matchBoris Kolpackov1-37/+90
2017-02-13Implement parallel error propagation, keep_going modeBoris Kolpackov1-14/+65
Keep going is the default but there is now the -s|--serial-stop that makes the driver run serially and stop at first error. Also fix some lockups, other minor improvements/features.
2017-02-13Get rid of count_postponedBoris Kolpackov1-2/+2
Terget execution is postponed with regards to the current thread only thus it doesn't seem right to make postponed a target state.
2017-02-13Implement parallel operation executionBoris Kolpackov1-39/+20
2017-02-13Pass const target& to recipesBoris Kolpackov1-6/+6
2017-02-13Introduce target::task_countBoris Kolpackov1-0/+2
2017-02-13Redesign target_set interface in preparation for lockingBoris Kolpackov1-4/+3
2017-02-13Pass const scope& where modification should not happenBoris Kolpackov1-2/+2
2017-02-13Temporarily disable parallel search & match for multi-target buildsBoris Kolpackov1-0/+5
2017-02-13Add notion of phase, enforceBoris Kolpackov1-14/+22
2017-02-13Add scheduling calls to operation's match()Boris Kolpackov1-34/+20