aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
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 Kolpackov14-42/+249
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-14Minor clarification in commentBoris Kolpackov1-1/+2
2023-04-13Move cli module to libbuild2-cli libraryBoris Kolpackov13-36/+152
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 Kolpackov8-216/+298
2023-04-10Add support for negation in config.install.filterBoris Kolpackov3-13/+33
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 Kolpackov8-409/+360
2023-04-04Add support for installation filtering (GH issue #147)Boris Kolpackov10-66/+599
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 Kolpackov2-5/+72
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-14Quality "distribution" with "source" in manualBoris Kolpackov1-15/+15
2023-03-09Add note to manualBoris Kolpackov1-0/+3
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 Kolpackov3-74/+114
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 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