aboutsummaryrefslogtreecommitdiff
path: root/libbuild2
AgeCommit message (Collapse)AuthorFilesLines
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.
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