aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2022-03-21Filter out exe{} prerequisites in install group rule similar to file ruleBoris Kolpackov2-0/+29
2022-03-21Make sure install group rule take precedence over fallback file ruleBoris Kolpackov1-2/+8
2022-03-17Handle absolute POSIX paths in MinGW GCC search pathsBoris Kolpackov1-2/+34
2022-03-17Diagnose invalid paths in -print-search-dirs outputBoris Kolpackov1-8/+28
For example, some mis-configured MinGW GCC builds include /mingw/lib.
2022-03-15Don't consider mtime of failed to unmatch prerequisite in ad hoc recipeBoris Kolpackov2-4/+7
2022-03-11Add JSON format support for --structured-result option and info meta operationKaren Arutyunov20-242/+964
2022-03-11Allow effective quoting for names that need curly braces in their ↵Karen Arutyunov2-5/+4
representations
2022-03-10Update manual to match new header pre-generation functionalityBoris Kolpackov1-25/+22
2022-03-10Fix operator<<(ostream,target_state)Karen Arutyunov2-0/+4
2022-03-10Add reverse_execute_prerequisites() variantBoris Kolpackov4-14/+154
2022-03-10Remove update variable from source of synthesized dependencyBoris Kolpackov1-1/+14
2022-03-09Rename execute_wait() to execute()Boris Kolpackov3-26/+23
The old half-way semantics of execute() wasn't useful.
2022-03-09Parallel implementation of update_during_match_prerequisites()Boris Kolpackov5-34/+150
2022-03-08Improve performance of update during match for multiple targetsBoris Kolpackov5-19/+95
2022-03-08Update C/C++ headers and ad hoc sources during match by defaultBoris Kolpackov1-19/+50
Essentially, all headers as well as ad hoc headers and sources are now treated by the cc::link_rule as if they had update=match unless explicit update=execute is specified.
2022-03-08Add update=execute special value for cases where it's not defaultBoris Kolpackov3-4/+6
2022-03-07Fix operation-specific variables logic for inner/outer operationsBoris Kolpackov6-23/+52
2022-03-07Add support for update=unmatch|match to ad hoc recipesBoris Kolpackov10-48/+217
2022-03-04Convert stream names to lower case in documentationKaren Arutyunov2-7/+7
2022-03-02Add update operation-specific variable with unmatch|match additional valuesBoris Kolpackov24-148/+395
Note that the unmatch (match but do not update) and match (update during match) values are only supported by certain rules (and potentially only for certain prerequisite types). Additionally: - All operation-specific variables are now checked for false as an override for the prerequisite-specific include value. In particular, this can now be used to disable a prerequisite for update, for example: ./: exe{test}: update = false - The cc::link_rule now supports the update=match value for headers and ad hoc prerequisites. In particular, this can be used to make sure all the library headers are updated before matching any of its (or dependent's) object files.
2022-02-24Add note on disabling subprojects/amalgamations import searchBoris Kolpackov1-0/+10
2022-02-21Factor process-wide initialization to init_process() functionBoris Kolpackov8-85/+109
2022-02-21Ban module names that start with underscoreBoris Kolpackov2-3/+9
2022-02-21Factor additional logic to parse_cmdline()Boris Kolpackov3-80/+107
2022-02-18Factor out common CLI types (scanners, etc)Karen Arutyunov20-2901/+1888
2022-02-18Move parse_cmdline() to libbuild2Karen Arutyunov16-2502/+2553
2022-02-17Add support for cheaply starting parallel scheduler pre-tuned to serialBoris Kolpackov3-15/+43
2022-02-17Add build.mode global variableBoris Kolpackov1-0/+12
This value signals any special mode the build system may be running in. The two core modes are `no-external-modules` (bootstrapping of external modules is disabled) and `normal` (normal build system execution). Build system drivers may invent additional modes (for example, the bpkg `skeleton` mode that is used to evaluate depends clauses).
2022-02-17Factor command line parsing logic into separate functionBoris Kolpackov1-182/+210
2022-02-16Invent quoting modes for to_stream(name)Karen Arutyunov10-35/+86
2022-02-16Get rid of stray variableBoris Kolpackov1-2/+0
2022-02-16Add pre/post hooks to load_root()Boris Kolpackov2-2/+22
2022-02-15Fix stray logic where libue{} was still considered member of libul{}Boris Kolpackov1-10/+27
Fixes GitHub issue #179.
2022-02-15Diagnose various misuses of library metadata protocolBoris Kolpackov4-8/+28
2022-02-14Fix module loading in libbuild2 testBoris Kolpackov1-8/+17
2022-02-14Add parser::parse_eval() public API functionBoris Kolpackov2-12/+62
2022-02-14Add ability to override amalgamation and subprojects in bootstrap_src()Boris Kolpackov2-3/+41
2022-02-14Factor reusable code to contex::enter_project_overrides()Boris Kolpackov3-56/+69
2022-02-11Remove unnecessary header inclusionsBoris Kolpackov5-5/+8
2022-02-10Add note on GNU ar deprecating -T in favor of --thinBoris Kolpackov1-0/+3
2022-02-10Make few global types separately constructible/initializableBoris Kolpackov7-8/+29
2022-02-10Fix issue with string::assign() call without third argumentBoris Kolpackov1-1/+1
2022-02-10Reorder inline function definition to help with MinGW GCC symbol exportBoris Kolpackov2-28/+32
2022-02-09Adapt version module to package dependency new representation syntaxKaren Arutyunov2-44/+86
2022-02-09Fix issue with implicit size_t to meta_operation_id conversionBoris Kolpackov1-9/+13
2022-02-09Add dyndep_rule::inject_group_member()Boris Kolpackov2-1/+69
2022-02-09Don't use fallback file_rule to clean real targetsBoris Kolpackov3-3/+22
2022-02-09Improve commentsBoris Kolpackov1-3/+6
2022-02-09Don't skip empty see-through target groupsBoris Kolpackov3-38/+34
2022-02-09Add perform_clean_group_extra()Boris Kolpackov2-123/+151