aboutsummaryrefslogtreecommitdiff
path: root/libbuild2
AgeCommit message (Collapse)AuthorFilesLines
2023-01-24Add std::back_inserter() to utility.hxxBoris Kolpackov1-1/+2
2023-01-09Fix simple and script tests to correctly terminate processes which don't ↵Karen Arutyunov2-48/+299
close stderr on exit
2022-12-19Disable `)` escaping in buildspec, command line variable overridesBoris Kolpackov2-11/+10
Similar to line continuations, that would make directory paths on Windows unusable, for example: b info(C:\myproj\) Note that while this is less of a problem in command line variable overrides, we disable it there for consistency.
2022-12-19Disable line continuation in buildspec, command line variable overridesBoris Kolpackov2-8/+11
Line continuations would make directory paths on Windows unusable, for example: b C:\myproj\
2022-12-19Restore newline escaping (line continuations) in double-quoted stringsBoris Kolpackov3-9/+11
Also make effective escaping in buildspec and command line variable overrides consistent with double-quoted strings.
2022-12-15Add $regex.filter[_out]_{match,search}() functionsKaren Arutyunov1-67/+206
2022-12-15Add noexcept to move constructors and move assignment operatorsKaren Arutyunov18-51/+73
2022-12-15Improve escape sequence supportBoris Kolpackov7-172/+274
Specifically: 1. In the double-quoted strings we now only do effective escaping of the special `$("\` characters plus `)` for symmetry. 2. There is now support for "escape sequence expansion" in the form $\X where \X can be any of the C/C++ simple escape sequences (\n, \t, etc) plus \0 (which in C/C++ is an octal escape sequence). For example: info "foo$\n$\tbar$\n$\tbaz" Will print: buildfile:1:1: info: foo bar baz
2022-12-14Improve empty simple value to empty list of names reduction heuristicsBoris Kolpackov18-67/+136
Specifically, do not reduce typed RHS empty simple values for prepend/append and additionally for assignment provided LHS is typed and is a container.
2022-12-14Handle NULL values in $string() and $concat() functionsBoris Kolpackov8-19/+82
This is relied upon by the parser to provide conversion/concatenation semantics consistent with untyped values. Note that we handle NULL values only for types that have empty representation.
2022-12-13Add format_copy_empty flag to $regex.{split,merge,apply}()Boris Kolpackov1-20/+54
2022-12-13Return all subexpressions in $regex.{match,search}(), not only matchedBoris Kolpackov1-8/+2
The old semantics was unusable for optional groups (e.g., `(...)?`).
2022-12-13Fix linking failure on WindowsKaren Arutyunov1-1/+1
2022-12-12Adapt to dir_iterator API changeKaren Arutyunov10-17/+99
2022-12-12Add no_subprojects parameter to info meta-operationBoris Kolpackov3-20/+77
2022-12-09Enable diagnostics color in GCC and ClangBoris Kolpackov4-2/+80
2022-12-09Handle file opening error in config.config.loadBoris Kolpackov1-2/+9
2022-12-09Normalize target's out directory in cc::insert_library()Boris Kolpackov1-7/+8
2022-12-08Normalize extracted header/library search directories (GH issue #235)Boris Kolpackov8-21/+60
2022-12-08Add --[no]diag-color options (infrastructure only)Boris Kolpackov10-13/+152
2022-12-07Fix incorrect process_path::effect accessBoris Kolpackov1-1/+1
2022-12-07Use effective rather than recall path for cache keyBoris Kolpackov1-1/+1
2022-12-07Fix bug in MSVC library_type() implementation (GH issue #235)Boris Kolpackov1-4/+1
It looks like the implementation was botched a bit when switching from link.exe /DUMP /ARCHIVEMEMBERS to link.exe /LIB /LIST.
2022-12-07Add MSVC library type cachingBoris Kolpackov1-9/+24
2022-12-07List dnsapi, msimg32 as Windows system librariesBoris Kolpackov1-2/+4
2022-12-06Handle bin.whole when specified for interface dependenciesBoris Kolpackov2-11/+29
2022-12-05Skip common .pc file for binless if found but rejected binful (GH issues #235)Boris Kolpackov3-26/+80
2022-12-05List windowscodecs as Windows system libraryBoris Kolpackov1-0/+1
2022-12-05Filter out sanitizer options from ~host configurationBoris Kolpackov1-29/+51
We run the toolchain with various sanitizers on CI but sanitizers cause issues in some packages.
2022-12-02Fail if scope or target qualification in variable expansion is unknownBoris Kolpackov2-30/+74
There are three options here: we can "fall through" to an outer scope (there is always the global scope backstop; this is the old semantics, sort of), we can return NULL straight away, or we can fail. It feels like in most cases unknown scope or target is a mistake and doing anything other than failing is just making things harder to debug.
2022-12-01Fix corner case in distributing via obj{}, libul{} groupsBoris Kolpackov4-3/+102
2022-12-01Make dist::rule reusable as baseBoris Kolpackov6-38/+41
2022-11-30Diagnose absence of import library after link.exe invocation (GH issue #231)Boris Kolpackov1-7/+22
If a library does not export any symbols then link.exe skips creating the import library.
2022-11-30Reserve targets, variables to avoid rehashingBoris Kolpackov6-0/+74
2022-11-30Deal with order dependence in dist ruleBoris Kolpackov6-60/+191
2022-11-29Move buildfiles to root_extra, use vector instead of unordered_setBoris Kolpackov4-14/+27
2022-11-29Use list instead of unordered_set in regex line_poolBoris Kolpackov2-4/+22
2022-11-29Improve diagnostics for value subscript out of evaluation contextBoris Kolpackov1-2/+21
2022-11-29Fix backlink logic for target groupsBoris Kolpackov8-175/+469
We used to backlink ad hoc group members both via the group and as individual members. And for explicit groups it was done only via individual members, which means it only works correctly if every member is individually updated. Now both types of groups are backlinked from the group target.
2022-11-25Use operation name as a buildscript name if unable to deduceKaren Arutyunov3-13/+22
2022-11-25Fix diag buffer opining logic in cc::compile_ruleBoris Kolpackov1-5/+11
2022-11-24Fix skipping potential input for exit, etc script pseudo-builtinsKaren Arutyunov1-7/+22
2022-11-24Fix script to pass diag buffer reading end to process constructorKaren Arutyunov1-10/+7
2022-11-24Fix forcing diag buffering for diff in simple testKaren Arutyunov1-3/+5
2022-11-23Take into account ad hoc recipes in rule::sub_match() (fixed GH issue #227)Boris Kolpackov3-66/+98
2022-11-23Rework diag_buffer interface to facilitate correct destruction orderBoris Kolpackov17-470/+444
2022-11-22Add support for Objective-C/C++ compilation in cc moduleBoris Kolpackov15-72/+269
2022-11-18Fix incorrect diag builtin examplesBoris Kolpackov1-2/+2
2022-11-18Complete low verbosity diagnostics reworkBoris Kolpackov17-153/+801
2022-11-16Initial low verbosity diagnostics reworkBoris Kolpackov26-122/+662