Age | Commit message (Collapse) | Author | Files | Lines | |
---|---|---|---|---|---|
2020-07-10 | Add support for project-local importation | Boris Kolpackov | 1 | -0/+28 | |
An import without a project name or with the same name as the importing project's is now treated as importation from the same project. For example, given the libhello project that exports the lib{hello} target, a buildfile for an executable in the same project instead of doing something like this: include ../libhello/ exe{hello}: ../libhello/lib{hello} Can now do this: import lib = libhello%lib{hello} Or: import lib = lib{hello} And then: exe{hello}: $lib Note that a target in project-local importation must still be exported in the project's export stub. In other words, project-local importation goes through the same mechanisms as normal import. | |||||
2020-07-06 | Adjust variable block applicability in dependency chains | Boris Kolpackov | 1 | -3/+9 | |
Before the block used to apply to the set of prerequisites before the last `:`. This turned out to be counterintuitive and not very useful since prerequisite-specific variables are a lot less common than target specific. And it doesn't fit with ad hoc recipes. The new rule is if the chain ends with `:`, then the block applies to the last set of prerequisites. Otherwise, it applies to the last set of targets. For example: ./: exe{test}: cxx{main} { test = true # Applies to the exe{test} target. } ./: exe{test}: libue{test}: { bin.whole = false # Applies to the libue{test} prerequisite. } This is actually consistent with both non-chain and non-block cases. Consider: exe{test}: cxx{main} { test = true } exe{test}: libue{test}: { bin.whole = false } exe{test}: libue{test}: bin.whole = false The only exception we now have in this overall approach of "if the dependency declaration ends with a colon, then what follows is for a prerequisite" is for the first semicolon: exe{test}: { test = true } exe{test}: test = true But that's probably intuitive enough since there cannot be a prerequisite without a target. | |||||
2020-07-02 | Use consistent style when referencing modules in manual | Boris Kolpackov | 1 | -12/+13 | |
2020-07-02 | Document private installation subdirectory mechanism | Boris Kolpackov | 1 | -5/+76 | |
A private installation subdirectory can be used to hide the implementation details of a project. This is primarily useful when installing an executable that depends on a bunch of libraries into a shared location, such as /usr/local/. | |||||
2020-06-29 | Add config.install.share variable | Boris Kolpackov | 1 | -3/+4 | |
Its default value is data_root/share/ and it is now used as a common root for config.install.{data,doc,man} variables. | |||||
2020-06-29 | Add legal{} target type and config.install.legal variable | Boris Kolpackov | 1 | -0/+1 | |
This allows separation of legal files (LICENSE, AUTHORS, etc) from other documentation. For example: ./: ... doc{README} legal{LICENSE} $ b install ... config.install.legal=/usr/share/licenses/hello/ | |||||
2020-06-29 | Use buildfile{} instead of build{} for target type | Boris Kolpackov | 1 | -1/+1 | |
This feels like an oversight from transitioning to full names, like testscript{}, etc. | |||||
2020-06-26 | Add note to manual | Boris Kolpackov | 1 | -4/+21 | |
2020-06-18 | Add env script pseudo-builtin | Karen Arutyunov | 1 | -1/+29 | |
Also disable C++ recipe tests when cross-testing. | |||||
2020-06-11 | Add date builtin description to Testscript manual | Karen Arutyunov | 1 | -0/+29 | |
2020-06-11 | Fix bug in Testscript manual | Boris Kolpackov | 1 | -1/+1 | |
2020-06-10 | Update submodules | Boris Kolpackov | 1 | -0/+0 | |
2020-06-09 | Update Testscript manual with notes on redirect aliases | Boris Kolpackov | 1 | -12/+40 | |
2020-05-27 | Initial support for ad hoc recipes (still work in progress) | Boris Kolpackov | 1 | -14/+14 | |
2020-04-27 | Rework tool importation along with cli module | Boris Kolpackov | 1 | -10/+13 | |
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-04-08 | Proofreading fixes to manual | Boris Kolpackov | 1 | -11/+11 | |
2020-04-08 | Document project-specific configuration support | Boris Kolpackov | 1 | -18/+775 | |
2020-03-17 | Adapt testscripts to ln builtin target path completion fix | Karen Arutyunov | 1 | -1/+2 | |
2020-03-09 | Document UTF-8 encoding for buildfiles and testscripts | Boris Kolpackov | 2 | -1/+8 | |
2020-02-18 | Update style submodule | Boris Kolpackov | 1 | -0/+0 | |
2020-02-18 | Fix copyright notice extraction for building and documentation generating | Karen Arutyunov | 1 | -1/+1 | |
2020-02-13 | Adjust documentation to change to bdep-new binless sub-option | Boris Kolpackov | 1 | -1/+1 | |
2020-02-13 | Minor documentation consistency cleanup | Boris Kolpackov | 1 | -2/+2 | |
2020-02-07 | Add copyright variable substitution in doc/cli.sh | Karen Arutyunov | 1 | -8/+23 | |
2020-02-07 | Update submodules | Boris Kolpackov | 1 | -0/+0 | |
2020-02-07 | Drop copyright notice from source code | Karen Arutyunov | 3 | -3/+0 | |
2020-02-04 | Add note to manual on specifying search paths in compiler mode | Boris Kolpackov | 1 | -0/+13 | |
2019-11-21 | Change version to 0.13.0-a.0.z | Boris Kolpackov | 1 | -1/+1 | |
2019-11-19 | Release version 0.12.0v0.12.0 | Boris Kolpackov | 1 | -1/+1 | |
2019-11-18 | Update submodules | Boris Kolpackov | 1 | -0/+0 | |
2019-11-15 | Test and document wildcard character escaping | Boris Kolpackov | 1 | -14/+40 | |
Also document the new bracket expression ([...]) wildcard support. | |||||
2019-11-01 | Add note to manual on absolute cl.exe paths | Boris Kolpackov | 1 | -6/+12 | |
2019-10-29 | Update manual regarding platform-specific version support | Boris Kolpackov | 1 | -1/+1 | |
2019-10-22 | Add documentation for MSVC and Clang compiler toolchains | Boris Kolpackov | 1 | -3/+163 | |
2019-10-21 | Add more information on C and C++ compiler mode options to manual | Boris Kolpackov | 1 | -4/+164 | |
2019-10-21 | Note compiler mode options in manual | Boris Kolpackov | 1 | -0/+11 | |
2019-10-17 | Update Visual Studio instructions in manual | Boris Kolpackov | 1 | -7/+18 | |
2019-10-16 | Minor documentation tweak | Boris Kolpackov | 1 | -1/+1 | |
2019-10-10 | Fix bug in documentation | Boris Kolpackov | 1 | -5/+5 | |
2019-10-01 | Minor documentation fixes | Boris Kolpackov | 1 | -4/+4 | |
2019-09-30 | Document pattern matching support (switch) | Boris Kolpackov | 1 | -8/+175 | |
2019-09-27 | Add support for testscript builtin escaping | Karen Arutyunov | 1 | -0/+7 | |
2019-07-24 | Use CLI-generated classes to parse testscript builtin options | Karen Arutyunov | 1 | -28/+61 | |
2019-07-22 | Mention LDLIBS in addition to LIBS as analogous to *.libs | Boris Kolpackov | 1 | -3/+3 | |
2019-06-24 | Improve fallback tree output with · | Boris Kolpackov | 1 | -1/+1 | |
2019-06-21 | Add support for [config.]{cc,c,cxx}.aoptions (archive options) | Boris Kolpackov | 1 | -3/+16 | |
In particular, this can be used to suppress lib.exe warnings, for example: cc.aoptions += /IGNORE:4221 | |||||
2019-06-11 | Change version to 0.12.0-a.0.z | Boris Kolpackov | 1 | -1/+1 | |
2019-06-08 | Release version 0.11.0v0.11.0 | Boris Kolpackov | 1 | -1/+1 | |
2019-06-08 | Minor documentation update | Boris Kolpackov | 1 | -1/+1 | |
2019-06-08 | Fix misleading in module documentation | Boris Kolpackov | 1 | -3/+3 | |