aboutsummaryrefslogtreecommitdiff
path: root/libbuild2/name.hxx
AgeCommit message (Collapse)AuthorFilesLines
2024-10-09Add support for JSON compilation database generation and maintenanceBoris Kolpackov1-1/+1
See the "Compilation Database" section in the "cc Module" chapter of the manual for details.
2022-06-21Add --trace-{match,execute} optionsBoris Kolpackov1-1/+2
These options can be used to understand which dependency chain causes matching or execution of a particular target.
2022-03-11Allow effective quoting for names that need curly braces in their ↵Karen Arutyunov1-1/+1
representations
2022-02-16Invent quoting modes for to_stream(name)Karen Arutyunov1-7/+21
2022-01-06Add depdb-dyndep --update-{include,exclude} optionsBoris Kolpackov1-0/+2
These options specify prerequisite targets/patterns to include/exclude (from the static prerequisite set) for update during match as part of dynamic dependency extraction (those excluded will be updated during execute). For example: depdb dyndep ... --update-exclude libue{hello-meta} ... depdb dyndep ... --update-exclude libue{*} ... depdb dyndep ... --update-include $moc --update-include hxx{*} ... The order in which these options are specified is significant with the first target/pattern that matches determining the result. If only the --update-include options are specified, then only the explicitly included prerequisites will be updated. Otherwise, all prerequisites that are not explicitly excluded will be updated. If none of these options is specified, then all the static prerequisites are updated during match. Note also that these options do not apply to ad hoc prerequisites which are always updated during match.
2021-05-28Add support for regex-based target type/pattern specific variablesBoris Kolpackov1-11/+27
This is in addition to the already supported path-based target type/pattern specific variables. For example: hxx{*}: x = y # path-based hxx{~/.*/}: x = y # regex-based
2021-05-28Ban conversion of patterns to valuesBoris Kolpackov1-1/+2
Also improve conversion diagnostic.
2021-05-28Make notion of name pattern explicit, fix various related loose endsBoris Kolpackov1-3/+26
2021-01-12Diagnose typed and project-qualified empty namesBoris Kolpackov1-2/+2
2020-07-09Add support for ad hoc importationBoris Kolpackov1-0/+12
2020-06-03Add name::file() predicateBoris Kolpackov1-0/+8
2020-05-27Initial support for ad hoc recipes (still work in progress)Boris Kolpackov1-0/+12
2020-04-27Rework tool importation along with cli moduleBoris Kolpackov1-0/+4
Specifically, now config.<tool> (like config.cli) is handled by the import machinery (it is like a shorter alias for config.import.<tool>.<tool>.exe that we already had). And the cli module now uses that instead of custom logic. This also adds support for uniform tool metadata extraction that is handled by the import machinery. As a result, a tool that follows the "build2 way" can be imported with metadata by the buildfile and/or corresponding module without any tool-specific code or brittleness associated with parsing --version or similar outputs. See the cli tool/module for details. Finally, two new flavors of the import directive are now supported: import! triggers immediate importation skipping any rule-specific logic while import? is optional import (analogous to using?). Note that optional import is always immediate. There is also the import-specific metadata attribute which can be specified for these two import flavors in order to trigger metadata importation. For example: import? [metadata] cli = cli%exe{cli} if ($cli != [null]) info "cli version $($cli:cli.version)"
2020-02-07Drop copyright notice from source codeKaren Arutyunov1-1/+0
2019-10-18Add $quote() function for quoting valuesBoris Kolpackov1-2/+14
This can be useful if we want to pass a value on the command line, for example, in a testscript: $* config.cxx=$quote($recall($cxx.path) $cxx.mode, true)
2019-07-01Split build system into library and driverBoris Kolpackov1-0/+172