aboutsummaryrefslogtreecommitdiff
path: root/libbuild2/context.hxx
AgeCommit message (Collapse)AuthorFilesLines
2020-11-11Add context::current_action()Boris Kolpackov1-1/+9
2020-09-22Add ability to skip external modules during bootstrap (--no-external-modules)Boris Kolpackov1-0/+5
2020-08-16Add support for post-configure and pre-disfigure hooksBoris Kolpackov1-0/+10
2020-06-09Make metadata variable prefix mandatoryBoris Kolpackov1-4/+2
While we could automatically set it if the target is imported, there is nothing we can do if the target is used in the same project. So to avoid confusion we make it mandatory.
2020-06-02Add process_path_ex with program stable name and checksumBoris Kolpackov1-0/+2
2020-06-01Extend target metadata to include variable prefix, stable nameBoris Kolpackov1-3/+25
2020-05-27Initial support for ad hoc recipes (still work in progress)Boris Kolpackov1-5/+14
2020-04-27Rework tool importation along with cli moduleBoris Kolpackov1-0/+5
Specifically, now config.<tool> (like config.cli) is handled by the import machinery (it is like a shorter alias for config.import.<tool>.<tool>.exe that we already had). And the cli module now uses that instead of custom logic. This also adds support for uniform tool metadata extraction that is handled by the import machinery. As a result, a tool that follows the "build2 way" can be imported with metadata by the buildfile and/or corresponding module without any tool-specific code or brittleness associated with parsing --version or similar outputs. See the cli tool/module for details. Finally, two new flavors of the import directive are now supported: import! triggers immediate importation skipping any rule-specific logic while import? is optional import (analogous to using?). Note that optional import is always immediate. There is also the import-specific metadata attribute which can be specified for these two import flavors in order to trigger metadata importation. For example: import? [metadata] cli = cli%exe{cli} if ($cli != [null]) info "cli version $($cli:cli.version)"
2020-03-13Cleanup and make config/utility.?xx part of build system coreBoris Kolpackov1-12/+0
2020-02-11Add match_only flag to contextBoris Kolpackov1-0/+5
2020-02-07Drop copyright notice from source codeKaren Arutyunov1-1/+0
2019-10-29Add forward declaration header for build state typesBoris Kolpackov1-20/+1
2019-10-25Fix inconsistent loaded_modules_lock declarationBoris Kolpackov1-1/+1
2019-10-25Expand context commentBoris Kolpackov1-2/+13
2019-10-23Un-tune scheduler when building build system modulesBoris Kolpackov1-0/+3
2019-10-22Implement loaded_modules state lockingBoris Kolpackov1-1/+13
This would be necessary if someone runs two parallel top-level contexts.
2019-10-22Rename global_mutex_shards to global_mutexesBoris Kolpackov1-4/+9
2019-10-22Move global mutex shards to contextBoris Kolpackov1-0/+14
2019-08-30Cutoff diagnostics stack when switching to nested contextBoris Kolpackov1-2/+11
2019-08-27Propagate global var overrides to module build contextBoris Kolpackov1-0/+1
2019-08-27Redo module context pointerBoris Kolpackov1-6/+6
2019-08-26Implement auto-import of development build2 buildBoris Kolpackov1-1/+2
2019-08-26Implement updating build system modulesBoris Kolpackov1-2/+21
2019-08-26Make target types project-wideBoris Kolpackov1-5/+7
2019-08-23Introduce notion of build contextBoris Kolpackov1-257/+345
All non-const global state is now in class context and we can now have multiple independent builds going on at the same time.
2019-08-21Cleanup context.hxx and its usageBoris Kolpackov1-99/+5
2019-08-19Minor cleanupsBoris Kolpackov1-124/+104
2019-08-01Fix linkage failure due to inline functions defined in ↵Karen Arutyunov1-1/+1
libbuild2/algorithm.ixx and referred from libbuild2/target.txx
2019-07-01Split build system into library and driverBoris Kolpackov1-0/+572