aboutsummaryrefslogtreecommitdiff
path: root/build2/test/rule.cxx
AgeCommit message (Collapse)AuthorFilesLines
2019-07-05Move config, dist, test, and install modules into libraryKaren Arutyunov1-882/+0
2019-07-01Split build system into library and driverBoris Kolpackov1-6/+6
2019-05-23Make fake process exited successfully for safetyBoris Kolpackov1-0/+2
2019-04-09Add dry-run support to test rulesBoris Kolpackov1-63/+95
2019-03-07Add support for alternative build file/directory naming schemeBoris Kolpackov1-5/+8
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-05Only search for external tools (compilers, linkers, etc) in PATHBoris Kolpackov1-1/+1
Specifically, omit the current executable's directory on Windows since there is no reason for them to be found there automagically and this can lead to surprising behavior (for example, our MinGW GCC being used instead of the user's even though the user's is in PATH before ours).
2018-09-05Create .buildignore file in testscript root working directoryKaren Arutyunov1-4/+10
2018-09-04Rename .test/test{} to .testscript/testscript{}Boris Kolpackov1-2/+2
2018-06-28Implement support for excluded and ad hoc prerequisitesBoris Kolpackov1-0/+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-04-26Implement forwarded configurations and backlinkingBoris Kolpackov1-4/+28
2018-02-16Add support for detecting dependency cyclesBoris Kolpackov1-6/+6
2018-02-16Fix group link-up raceBoris Kolpackov1-1/+1
2018-02-09Fix broken test (and few other things)Boris Kolpackov1-2/+2
2018-02-08Update/cleanup comment documentation for inner/outer operation semanticsBoris Kolpackov1-5/+5
2018-02-07Add support for update-for-{test,install} operation aliasesBoris Kolpackov1-1/+1
2018-02-07Initial work for default update outer operationBoris Kolpackov1-27/+56
While update still uses the old "all update rules update all their prerequisites" assumption, test and install have been fixed not to rely on this.
2018-02-05Fix test and install rules to handle see-through groups correctlyBoris Kolpackov1-40/+31
2018-02-03Work around VC issueBoris Kolpackov1-5/+5
2018-02-03Get rid of action rule override semanticsBoris Kolpackov1-372/+344
Instead we now have two more or less separate match states for outer and inner parts of an action.
2017-12-17Trace non-zero process exit codeBoris Kolpackov1-10/+1
Also convert to using operator<<(ostream,process_exit).
2017-10-30Pass --text option for diff utility on WindowsKaren Arutyunov1-0/+8
2017-08-01Reimplement pkg-config generation with more conservative approach for nowBoris Kolpackov1-3/+3
2017-05-02Cleanup testscript runner diagnosticsBoris Kolpackov1-2/+5
2017-05-01Add hxx extension for headersKaren Arutyunov1-10/+10
2017-04-27Pass target to prerequisite searchBoris Kolpackov1-3/+3
2017-04-26Diagnostics printing minor optimizationKaren Arutyunov1-6/+3
2017-04-26Cleanup error messagesBoris Kolpackov1-4/+4
2017-04-26Print diff failure reasonKaren Arutyunov1-5/+27
2017-04-10Adapt to process_error changeKaren Arutyunov1-1/+1
2017-04-01Redo handling of unhandled exceptions in async executionBoris Kolpackov1-9/+2
Here is the problem: noexcept looses the call stack. That is, unlike an unhandled exception, if noexcept is tripped, then you won't see the place where it was thrown. In this new implementation we now have noexcept only on the task thunk. And the task is called via a thunk only in case of async execution. This means that if we are executing serially (-j 1), then this will be an unhandled exception, not noexcept. Hopefully will be a bit easier to debug.
2017-03-24Fix diagnostics interleaving charactersKaren Arutyunov1-1/+2
2017-03-19Suppress clang warningsKaren Arutyunov1-1/+1
2017-03-17Catch and dump unhandled exceptions in async task functionsBoris Kolpackov1-0/+6
The problem with relying on noexcept for this is that there is no stack.
2017-03-17Improve testscript execution diagnosticsBoris Kolpackov1-24/+39
2017-03-15Add support for config.test.output variableKaren Arutyunov1-4/+11
2017-03-15Implement parallel testscript execution for single targetBoris Kolpackov1-9/+72
2017-03-06Iterate over group members in test rule only if resolvableBoris Kolpackov1-2/+11
2017-03-04Fix target name printing in diagnosticsBoris Kolpackov1-1/+1
2017-03-03Fix test and dist for generated input/outputBoris Kolpackov1-3/+6
2017-03-02Implement parallel matchBoris Kolpackov1-29/+21
2017-02-13Implement parallel error propagation, keep_going modeBoris Kolpackov1-2/+2
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-13Do some naming cleanupsBoris Kolpackov1-1/+1
2017-02-13Implement parallel operation executionBoris Kolpackov1-9/+4
2017-02-13Use target:as<> instead of static_cast for target castingBoris Kolpackov1-2/+2
2017-02-13Pass const target& to recipesBoris Kolpackov1-14/+18
2017-02-13Pass const scope& where modification should not happenBoris Kolpackov1-1/+1
2017-02-13Add notion of phase, enforceBoris Kolpackov1-1/+5
2017-02-13Add model mutex, make var_pool const by defaultBoris Kolpackov1-17/+17