aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2023-03-02Replace deprecated std::aligned_storage with alignasBoris Kolpackov5-18/+21
Based on patch by Matthew Krupcale.
2023-03-02Adapt to interface changes in libpkgconf 1.9Boris Kolpackov1-0/+7
Patch by Matthew Krupcale.
2023-03-01Add support for installation manifestBoris Kolpackov15-52/+664
2023-02-22Set explicit 755 install mode for exe{} targetsBoris Kolpackov1-0/+5
This helps cases where an executable gets installed somewhere else where the default is not 755 (for example to libexec/, which on Debian has the 644 mode).
2023-02-20Fix raw string literal lexing bug in cc:lexer (GH issue #268)Boris Kolpackov2-3/+5
2023-02-13Deduplicate -I and -L options extracted from pkg-config files (GH issue #265)Boris Kolpackov1-43/+81
2023-02-02Complete and normalize --default-options pathBoris Kolpackov1-0/+17
2023-01-31Minor improvement to diagnosticsBoris Kolpackov1-2/+6
2023-01-27Add clarifying commentBoris Kolpackov1-0/+2
2023-01-24Add std::back_inserter() to utility.hxxBoris Kolpackov1-1/+2
2023-01-09Update copyrightKaren Arutyunov1-1/+1
2023-01-09Fix simple and script tests to correctly terminate processes which don't ↵Karen Arutyunov3-49/+303
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-19Fix clash of info variables in main()Boris Kolpackov1-7/+7
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 Arutyunov2-67/+322
2022-12-15Add noexcept to move constructors and move assignment operatorsKaren Arutyunov18-51/+73
2022-12-15Improve escape sequence supportBoris Kolpackov8-172/+291
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 Kolpackov19-67/+191
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 Kolpackov9-19/+124
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 Kolpackov4-28/+90
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 Kolpackov11-13/+153
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-05Add missing colon in intro-unit-testWilliam Roy1-1/+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 Kolpackov7-30/+103
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 Kolpackov7-0/+92
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