aboutsummaryrefslogtreecommitdiff
path: root/libbuild2
AgeCommit message (Collapse)AuthorFilesLines
2023-09-06Don't crash if config.report.variable names undefined variableBoris Kolpackov1-2/+2
2023-08-29Add diagnostics color support on Windows (GH issue #312)Boris Kolpackov3-27/+66
Note that currently this has to be enabled with an explicit --diag-color option. In the future the plan is to enable it by default if supported.
2023-08-23Replace assert with diagnostics in bootstrap_src() (GH issue #322)Boris Kolpackov1-0/+9
2023-08-22Consider *_inc{} target types as headers for rule match purposesBoris Kolpackov7-18/+26
2023-08-22Add abstract c_inc{} and cxx_inc{} target typesBoris Kolpackov7-4/+71
These abstract base target types are meant for deriving additional target types (for example, Qt moc{}) that can be #include'd in C and C++ translation units, respectively. In particular, only such targets will be considered to reverse-lookup extensions to target types (see dyndep_rule::map_extension() for background).
2023-08-09Auto-extract function documentation from functions-*.cxxBoris Kolpackov1-0/+2
2023-08-09Complete and cleanup function documentation in preparation for auto-extractionBoris Kolpackov15-309/+537
Also: - Move the $target.*() function family from functions-name.cxx to separate functions-target.cxx. - Get rid of the separate $process_path_ex.*() family, merging it with $process_path.*().
2023-08-03Document target types in manual (GH issue #309)Boris Kolpackov1-0/+3
2023-08-02Diagnose declarations of targets/prerequisites with abstract target typesBoris Kolpackov2-1/+26
2023-07-31Add CCC_OVERRIDE_OPTIONS to list of Clang env vars to track/saveBoris Kolpackov1-2/+5
2023-07-27Recognize cNN/c++NN in addition to NN in c.std/cxx.stdBoris Kolpackov2-34/+72
Also recognize 23 in addition to 2x for C23.
2023-07-24Add setupapi.lib to list of Windows system librariesBoris Kolpackov1-0/+1
2023-07-21Fix incorrect documentation in dyndep_rule APIBoris Kolpackov1-1/+1
2023-07-20Don't treat unmatched prerequisites as implicitly ad hocBoris Kolpackov3-9/+32
It was surprising and inconvenient that they didn't end up in $<. Plus, such prerequisites can always be marked as ad hoc explicitly.
2023-07-20Consider unmatched prerequisites in updated_during_match() checkBoris Kolpackov4-13/+45
2023-07-20Change inner rule/prerequisites match order in install::file_ruleBoris Kolpackov7-4/+82
The old order messed up the for-install signaling logic. See the long comment in install::file_rule::apply_impl() for background and details.
2023-07-20Improve diagnosticsBoris Kolpackov1-3/+16
2023-07-05Change version to 0.17.0-a.0.zBoris Kolpackov1-1/+1
2023-06-30Release version 0.16.0v0.16.0Boris Kolpackov1-1/+1
2023-06-28Minor tweaks and cleanupsBoris Kolpackov2-0/+4
2023-06-26Regenerate options parsing filesKaren Arutyunov2-26/+26
2023-06-26Omit dangling symlink warning for backlinked executablesBoris Kolpackov1-13/+44
2023-06-22Map cxx.std=26 to -std=c++2c for GCC and ClangBoris Kolpackov2-4/+13
2023-06-22Fix wraparound in task_count logicBoris Kolpackov3-18/+20
2023-06-22Filter out subsequent occurrences of library itself in .pc files (GH issue #283)Boris Kolpackov1-18/+28
Failed that we will end up with a dependency cycle.
2023-06-22Omit -Wno-gnu-line-marker for Apple Clang 14.0.3Boris Kolpackov1-2/+9
2023-06-19Update Apple Clang to vanilla Clang version mappingBoris Kolpackov1-21/+27
2023-06-15Remove stray whitespace from "uninstall" command nameBoris Kolpackov1-3/+3
2023-06-15Fix incorrect memory order in target::matched() callBoris Kolpackov2-2/+2
2023-06-14Use dry_run_option instead of dry_run during matchBoris Kolpackov2-3/+3
2023-06-14Don't fail in dyndep_rule::enter_file() if target is in srcBoris Kolpackov1-4/+24
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.