aboutsummaryrefslogtreecommitdiff
path: root/libbuild2
AgeCommit message (Collapse)AuthorFilesLines
2023-06-14Improve dyndep_rule::{inject,verify}_existing_file() documentationBoris Kolpackov2-7/+11
2023-06-13Disable -Wgnu-line-marker in Clang 15 triggered by -frewrite-includesBoris Kolpackov1-6/+43
See llvm-project issue 63284 for details.
2023-06-12Hack around GCC 13 -Wdangling-reference false positivesBoris Kolpackov5-16/+17
See GCC bugs 107532, 110213.
2023-06-09Add explicit move as recommended by Clang warningBoris Kolpackov1-1/+1
2023-06-09Diagnose multiple values in typed concatenation (GH issue #263)Boris Kolpackov1-26/+41
2023-06-08Add support for buildfile importationBoris Kolpackov12-175/+701
2023-06-07Implement GCC module mapper protocol quoting/escaping (GH issues #203, #228)Boris Kolpackov1-14/+223
2023-06-05Remap Clang -Wunqualified-std-cast-call warning to -Wextra (GH issue #259)Boris Kolpackov1-0/+40
2023-06-02Fix another race in library metadata protocol logicBoris Kolpackov1-0/+8
2023-06-02Temporarily turn null include error into warning for backwards compatBoris Kolpackov1-11/+19
2023-06-02Fix data race in library metadata protocol logicBoris Kolpackov3-5/+14
2023-06-01Diagnose null include, operation-specific variable valuesBoris Kolpackov2-31/+47
While assigning null directly is unlikely, it's fairly easy via a variable expansion. Real-world example: ./: exe{tensor}: include = $config.Eigen.unsupported
2023-06-01Add inner_recipe for expressivenessBoris Kolpackov8-7/+11
2023-06-01Resolve (but disable for now) target_count issue in resolve_members()Boris Kolpackov7-70/+249
2023-05-31Improve diagnostics when dropping config.import.* valuesBoris Kolpackov1-0/+20
2023-05-31Provide implied configure_* and dist_* action registration for ad hoc recipesBoris Kolpackov2-29/+84
This makes it consistent with the existing ad hoc rules semantics.
2023-05-30Fix bugBoris Kolpackov1-2/+2
2023-05-30Fix previous commits to work in C++14Boris Kolpackov2-5/+8
2023-05-30Add support for fsdir{} dynamic prerequisites in the dyndep lines formatBoris Kolpackov3-21/+135
This can be used to handle situations where the dynamic targets are placed into subdirectories.
2023-05-30Add depdb-dyndep --target-extension-type optionBoris Kolpackov5-9/+122
This allows specifying custom extension to target type mapping.
2023-05-30Store dynamic group member types in depdb, use in cleanBoris Kolpackov5-102/+203
2023-05-30Add $path.posix_string() and $path.posix_representation() functionsKaren Arutyunov1-0/+116
2023-05-29Move old dynamic members cleanup from execute to applyBoris Kolpackov1-31/+40
2023-05-29New 'lines' dependency format in depdb-dyndepBoris Kolpackov4-11/+215
2023-05-29Extend special match_rule() logic to all groups with dynamic targetsBoris Kolpackov9-92/+89
2023-05-29Handle see-through groups with dynamic members in distBoris Kolpackov2-25/+126
2023-05-29Clean after each depdb-dyndep executionBoris Kolpackov1-11/+51
2023-05-29Disable counts verification if matched but not executed in resolve_members()Boris Kolpackov5-14/+41
2023-05-29Avoid group linkup deadlocks for dynamic and pattern-static membersBoris Kolpackov3-37/+64
2023-05-29Explicit group: pattern membersBoris Kolpackov8-71/+197
2023-05-29Explicit group: dynamic membersBoris Kolpackov10-134/+426
2023-05-29Explicit group: static membersBoris Kolpackov18-123/+580
2023-05-29Explicit group: syntax parsingBoris Kolpackov8-148/+477
2023-05-21Add support for dynamic target extraction in addition to prerequisitesBoris Kolpackov12-128/+864
This functionality is enabled with the depdb-dyndep --dyn-target option. Only the make format is supported, where the listed targets are added as ad hoc group members (unless already specified as static members). This functionality is not available in the --byproduct mode.
2023-05-16Implement dist meta-operation without invoking install (GH issue #190)Boris Kolpackov2-54/+122
The use of install (or another install-like program) can still be forced with config.dist.cmd=install.
2023-05-16Enter export stub targets with correct outBoris Kolpackov3-24/+46
2023-05-09Make quoted/display target names in JSON structured result consistent with dumpBoris Kolpackov2-35/+40
Specifically, before we had `target` (display) and `quoted_target` and now we have `target` (quoted) and `display_target`.
2023-05-09Document JSON dump format (GH issue #182)Boris Kolpackov3-14/+14
2023-05-09Add --load-only option in addition to --match-onlyBoris Kolpackov10-14/+84
This option has the effect of loading all the subdirectory buildfiles that are not explicitly included.
2023-05-09Add support for dumping build system state in JSON format (GH issue #182)Boris Kolpackov10-82/+1103
Specifically: 1. New --dump-format option. Valid values are `buildfile` and `json-v0.1`. 2. The --dump option now recognizes two additional values: `match-pre` and `match-post` to dump the state of pre/post-operations. The `match` value now only triggers dumping of the main operation.
2023-05-03Add --dump-scope and --dump-target options to limit --dump outputBoris Kolpackov9-56/+214
2023-04-21Make sure main module_functions entry is after submodulesBoris Kolpackov4-6/+6
2023-04-19Fix several issues in build system module importation logicmodule-importBoris Kolpackov7-100/+275
2023-04-19Clarify const-ness issues in configure implementationBoris Kolpackov4-13/+23
2023-04-18Add support for Assembler with C Preprocessor (.S) compilationBoris Kolpackov12-42/+158
Specifically, the c module now provides the c.as-cpp submodules which can be loaded in order to register the S{} target type and enable Assembler with C Preprocessor compilation in the c compile rule. For details, refer to "Assembler with C Preprocessor Compilation" in the manual.
2023-04-13Move cli module to libbuild2-cli libraryBoris Kolpackov11-1/+980
This is a temporary measure (until we unboundle this module) needed for in-process configure support in bpkg.
2023-04-13Various minor generalizations for in-process configure support in bpkgBoris Kolpackov7-213/+289
2023-04-10Add support for negation in config.install.filterBoris Kolpackov2-5/+19
2023-04-10Fix inconsistent /usr/local/{include,lib} searchBoris Kolpackov4-32/+53
In particular, we were adding -L/usr/local/lib which means it is considered before built-in directories (/usr/lib, etc) but in our own library search code we were considering it after (because we were storing it at the end of sys_lib_dirs). Now in both sys_{hdr,lib}_dirs we store /usr/local/{include,lib} after mode and before built-in directories. Note that as part of this fix we now pass -isystem /usr/local/include instead of -idirafter (which is consistent with the -L behavior and also the customarily expected semantics).
2023-04-05Allow creating context with bare minimum of initializationsBoris Kolpackov16-106/+153
This is used by bpkg to detect forwarded configurations without incurring the full context creation overhead.