aboutsummaryrefslogtreecommitdiff
path: root/doc/manual.cli
AgeCommit message (Collapse)AuthorFilesLines
2024-10-09Add support for JSON compilation database generation and maintenanceBoris Kolpackov1-9/+319
See the "Compilation Database" section in the "cc Module" chapter of the manual for details.
2024-09-25Fix few broken links in manualBoris Kolpackov1-3/+3
2024-05-20Documentation tweakBoris Kolpackov1-4/+5
2024-05-20Update C++ modules support documentation in manualBoris Kolpackov1-709/+308
2024-03-01Use original variable name in config reportBoris Kolpackov1-0/+26
2024-02-21Update list of buildfile value types in manualBoris Kolpackov1-0/+9
2024-02-07Add experimental support for JSON value typesBoris Kolpackov1-0/+23
New types: json json_array json_object New functions: $json.value_type(<json>) $json.value_size(<json>) $json.member_{name,value}(<json-member>) $json.object_names(<json-object>) $json.array_size(<json-array>) $json.array_find(<json-array>, <json>) $json.array_find_index(<json-array>, <json>) $json.load(<path>) $json.parse(<text>) $json.serialize(<json>[, <indentation>]) For example, to load a JSON value from a file: j = $json.load($src_base/board.json) Or to construct it in a buildfile: j = [json] one@1 two@([json] 2 3 4) three@([json] x@1 y@-1) This can also be done incrementally with append/prepend: j = [json_object] j += one@1 j += two@([json] 2 3 4) j += three@([json] x@1 y@-1) Instead of using this JSON-like syntax, one can also specify valid JSON input text: j = [json] '{"one":1, "two":[2, 3, 4], "three":{"x":1, "y":-1}' Besides the above set of functions, other handy ways to access components in a JSON value are iteration and subscript. For example: for m: $j print $member_name($m) $member_value($m) print ($j[three]) A subscript can be nested: print ($j[two][1]) print ($j[three][x]) While a JSON value can be printed directly like any other value, the representation will not be pretty-printed. As a result, for complex JSON values, printing a serialized representation might be a more readable option: info $serialize($j)
2024-01-10Add ability to specify alternative sysroot for pkg-config files (GC issue #59)Boris Kolpackov1-0/+49
Specifically, the new config.cc.pkgconfig.sysroot variable provides roughly equivalent functionality to PKG_CONFIG_SYSROOT_DIR in pkg-config. For details and limitations, see "Rewriting Installed Libraries System Root (sysroot)" in the manual for details.
2024-01-09Allow imported buildfiles to using config.* variables from own projectBoris Kolpackov1-9/+35
2023-12-04Document c.predefs and cxx.predefs functionalityBoris Kolpackov1-6/+87
2023-11-07Fix source directory/subdirectory terminology inconsistencies in manualBoris Kolpackov1-10/+10
2023-10-09Minor additions to manualBoris Kolpackov1-2/+26
2023-08-29Fix typo in manualIldar1-1/+1
2023-08-25Fix few minor grammatical nits in manualChristopher Head1-5/+5
2023-08-22Document installed library search semantics and pkg-config integrationBoris Kolpackov1-16/+123
2023-08-09Auto-extract function documentation from functions-*.cxxBoris Kolpackov1-365/+547
2023-08-03Document target types in manual (GH issue #309)Boris Kolpackov1-16/+603
2023-06-29Update example diagnostics in build system manualBoris Kolpackov1-25/+30
2023-06-08Add support for buildfile importationBoris Kolpackov1-19/+27
2023-05-09Document JSON dump format (GH issue #182)Boris Kolpackov1-0/+494
2023-05-03Add --dump-scope and --dump-target options to limit --dump outputBoris Kolpackov1-1/+5
2023-04-18Add support for Assembler with C Preprocessor (.S) compilationBoris Kolpackov1-0/+84
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-10Add support for negation in config.install.filterBoris Kolpackov1-8/+14
2023-04-04Remove global override restriction from config.install.filterBoris Kolpackov1-6/+5
2023-04-04Add support for installation filtering (GH issue #147)Boris Kolpackov1-0/+75
2023-03-24Document relocatable installation supportBoris Kolpackov1-0/+67
2023-03-14Quality "distribution" with "source" in manualBoris Kolpackov1-15/+15
2023-03-09Add note to manualBoris Kolpackov1-0/+3
2023-03-07Add new include_arch/config.install.include_arch installation locationBoris Kolpackov1-39/+61
It is mean for target architecture-specific headers.
2022-12-05Add missing colon in intro-unit-testWilliam Roy1-1/+1
2022-11-24Document Objective-C/C++ support in manualBoris Kolpackov1-0/+57
2022-09-02Add note on PowerShell quotingBoris Kolpackov1-0/+9
2022-09-02Add ability to specify `in` rule substitution as key-value pairsBoris Kolpackov1-0/+45
2022-09-02Rename in.substitution variable to in.modeBoris Kolpackov1-14/+15
The original name is still recognized for backwards compatibility.
2022-08-17Fix typo in manualBoris Kolpackov1-1/+1
2022-07-28Fix incorrect link title in manualBoris Kolpackov1-4/+4
2022-07-26Minor additions to manualBoris Kolpackov1-9/+24
2022-07-18Add few references to manualBoris Kolpackov1-3/+5
2022-07-13In manual adjust link to renamed section in bpkg manualKaren Arutyunov1-2/+1
2022-07-08Update manual with package manager configuration negotiation informationBoris Kolpackov1-3/+89
2022-06-29Rework pkg-config variable naming, use build2.metadata as general indicatorBoris Kolpackov1-5/+5
2022-06-21Add --trace-{match,execute} optionsBoris Kolpackov1-4/+23
These options can be used to understand which dependency chain causes matching or execution of a particular target.
2022-04-06Add support for rule hintsBoris Kolpackov1-0/+11
A rule hint is a target attribute, for example: [rule_hint=cxx] exe{hello}: c{hello} Rule hints can be used to resolve ambiguity when multiple rules match the same target as well as to override an unambiguous match.
2022-03-28Add ability to customize pkg-config header and library search pathsBoris Kolpackov1-6/+27
Specifically, {cc,c,cxx}.pkgconfig.{include,lib} variables specify header (-I) and library (-L) search paths to use in the generated .pc files instead of the default install.{include,lib}. Relative paths are resolved as install paths.
2022-03-23Document config.config.disfigureBoris Kolpackov1-1/+19
2022-03-23Make project configuration variables non-nullable by defaultBoris Kolpackov1-11/+20
A project configuration variable with the NULL default value is naturally assumed nullable, for example: config [string] config.libhello.fallback_name ?= [null] Otherwise, to make a project configuration nullable we use the `null` variable attribute, for example: config [string, null] config.libhello.fallback_name ?= "World"
2022-03-10Update manual to match new header pre-generation functionalityBoris Kolpackov1-25/+22
2022-02-24Add note on disabling subprojects/amalgamations import searchBoris Kolpackov1-0/+10
2022-01-26Make bash module install into bin/<project>.bash/ to avoid clashesBoris Kolpackov1-12/+15
Also, expect the first component in the import path to be full project name even in case it has the .bash extension.
2022-01-16Expand on extension escaping in manualBoris Kolpackov1-2/+8