aboutsummaryrefslogtreecommitdiff
path: root/libbuild2
AgeCommit message (Collapse)AuthorFilesLines
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.
2023-04-04Remove global override restriction from config.install.filterBoris Kolpackov7-403/+355
2023-04-04Add support for installation filtering (GH issue #147)Boris Kolpackov9-66/+524
2023-04-03Add authz.lib to Windows system library listBoris Kolpackov1-0/+1
2023-03-30Add comdlg32.lib to list of system Windows librariesBoris Kolpackov1-0/+1
2023-03-29Specify potential future extensions to install manifest formatBoris Kolpackov1-0/+3
2023-03-24Document relocatable installation supportBoris Kolpackov1-5/+5
2023-03-24Add support for generating relocatable pkg-config filesBoris Kolpackov1-10/+133
2023-03-23Add support for relocatable installation in $install.resolve()Boris Kolpackov4-14/+104
2023-03-23Add support for relocatable installation manifestBoris Kolpackov6-42/+116
2023-03-22Initial work on relocatable install: config.install.relocatable and rpathBoris Kolpackov3-4/+92
2023-03-20Regenerate options parsing filesKaren Arutyunov4-0/+210
2023-03-17Tweak/add few commentsBoris Kolpackov1-2/+4
2023-03-08Fix uninitialized variable bugBoris Kolpackov1-1/+1
2023-03-08Disambiguate operator<<(ostream,path_name_view) callBoris Kolpackov3-7/+7
This helps, for example, in bpkg where we "see" two version of this operator.
2023-03-07Add new include_arch/config.install.include_arch installation locationBoris Kolpackov1-35/+37
It is mean for target architecture-specific headers.
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 Kolpackov14-48/+604
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-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