Age | Commit message (Collapse) | Author | Files | Lines | |
---|---|---|---|---|---|
2024-10-09 | Add support for JSON compilation database generation and maintenance | Boris Kolpackov | 1 | -9/+319 | |
See the "Compilation Database" section in the "cc Module" chapter of the manual for details. | |||||
2024-09-25 | Fix few broken links in manual | Boris Kolpackov | 1 | -3/+3 | |
2024-05-20 | Documentation tweak | Boris Kolpackov | 1 | -4/+5 | |
2024-05-20 | Update C++ modules support documentation in manual | Boris Kolpackov | 1 | -709/+308 | |
2024-03-01 | Use original variable name in config report | Boris Kolpackov | 1 | -0/+26 | |
2024-02-21 | Update list of buildfile value types in manual | Boris Kolpackov | 1 | -0/+9 | |
2024-02-07 | Add experimental support for JSON value types | Boris Kolpackov | 1 | -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-10 | Add ability to specify alternative sysroot for pkg-config files (GC issue #59) | Boris Kolpackov | 1 | -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-09 | Allow imported buildfiles to using config.* variables from own project | Boris Kolpackov | 1 | -9/+35 | |
2023-12-04 | Document c.predefs and cxx.predefs functionality | Boris Kolpackov | 1 | -6/+87 | |
2023-11-07 | Fix source directory/subdirectory terminology inconsistencies in manual | Boris Kolpackov | 1 | -10/+10 | |
2023-10-09 | Minor additions to manual | Boris Kolpackov | 1 | -2/+26 | |
2023-08-29 | Fix typo in manual | Ildar | 1 | -1/+1 | |
2023-08-25 | Fix few minor grammatical nits in manual | Christopher Head | 1 | -5/+5 | |
2023-08-22 | Document installed library search semantics and pkg-config integration | Boris Kolpackov | 1 | -16/+123 | |
2023-08-09 | Auto-extract function documentation from functions-*.cxx | Boris Kolpackov | 1 | -365/+547 | |
2023-08-03 | Document target types in manual (GH issue #309) | Boris Kolpackov | 1 | -16/+603 | |
2023-06-29 | Update example diagnostics in build system manual | Boris Kolpackov | 1 | -25/+30 | |
2023-06-08 | Add support for buildfile importation | Boris Kolpackov | 1 | -19/+27 | |
2023-05-09 | Document JSON dump format (GH issue #182) | Boris Kolpackov | 1 | -0/+494 | |
2023-05-03 | Add --dump-scope and --dump-target options to limit --dump output | Boris Kolpackov | 1 | -1/+5 | |
2023-04-18 | Add support for Assembler with C Preprocessor (.S) compilation | Boris Kolpackov | 1 | -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-10 | Add support for negation in config.install.filter | Boris Kolpackov | 1 | -8/+14 | |
2023-04-04 | Remove global override restriction from config.install.filter | Boris Kolpackov | 1 | -6/+5 | |
2023-04-04 | Add support for installation filtering (GH issue #147) | Boris Kolpackov | 1 | -0/+75 | |
2023-03-24 | Document relocatable installation support | Boris Kolpackov | 1 | -0/+67 | |
2023-03-14 | Quality "distribution" with "source" in manual | Boris Kolpackov | 1 | -15/+15 | |
2023-03-09 | Add note to manual | Boris Kolpackov | 1 | -0/+3 | |
2023-03-07 | Add new include_arch/config.install.include_arch installation location | Boris Kolpackov | 1 | -39/+61 | |
It is mean for target architecture-specific headers. | |||||
2022-12-05 | Add missing colon in intro-unit-test | William Roy | 1 | -1/+1 | |
2022-11-24 | Document Objective-C/C++ support in manual | Boris Kolpackov | 1 | -0/+57 | |
2022-09-02 | Add note on PowerShell quoting | Boris Kolpackov | 1 | -0/+9 | |
2022-09-02 | Add ability to specify `in` rule substitution as key-value pairs | Boris Kolpackov | 1 | -0/+45 | |
2022-09-02 | Rename in.substitution variable to in.mode | Boris Kolpackov | 1 | -14/+15 | |
The original name is still recognized for backwards compatibility. | |||||
2022-08-17 | Fix typo in manual | Boris Kolpackov | 1 | -1/+1 | |
2022-07-28 | Fix incorrect link title in manual | Boris Kolpackov | 1 | -4/+4 | |
2022-07-26 | Minor additions to manual | Boris Kolpackov | 1 | -9/+24 | |
2022-07-18 | Add few references to manual | Boris Kolpackov | 1 | -3/+5 | |
2022-07-13 | In manual adjust link to renamed section in bpkg manual | Karen Arutyunov | 1 | -2/+1 | |
2022-07-08 | Update manual with package manager configuration negotiation information | Boris Kolpackov | 1 | -3/+89 | |
2022-06-29 | Rework pkg-config variable naming, use build2.metadata as general indicator | Boris Kolpackov | 1 | -5/+5 | |
2022-06-21 | Add --trace-{match,execute} options | Boris Kolpackov | 1 | -4/+23 | |
These options can be used to understand which dependency chain causes matching or execution of a particular target. | |||||
2022-04-06 | Add support for rule hints | Boris Kolpackov | 1 | -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-28 | Add ability to customize pkg-config header and library search paths | Boris Kolpackov | 1 | -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-23 | Document config.config.disfigure | Boris Kolpackov | 1 | -1/+19 | |
2022-03-23 | Make project configuration variables non-nullable by default | Boris Kolpackov | 1 | -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-10 | Update manual to match new header pre-generation functionality | Boris Kolpackov | 1 | -25/+22 | |
2022-02-24 | Add note on disabling subprojects/amalgamations import search | Boris Kolpackov | 1 | -0/+10 | |
2022-01-26 | Make bash module install into bin/<project>.bash/ to avoid clashes | Boris Kolpackov | 1 | -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-16 | Expand on extension escaping in manual | Boris Kolpackov | 1 | -2/+8 | |