Age | Commit message (Collapse) | Author | Files | Lines | |
---|---|---|---|---|---|
2020-07-10 | Tweak rule names | Boris Kolpackov | 3 | -3/+4 | |
2020-07-09 | Make sure update-for-{test,install} works for files out of any project | Boris Kolpackov | 2 | -2/+18 | |
2020-07-09 | Relax prerequisite filtering semantics of aliases in test and install rules | Boris Kolpackov | 3 | -5/+11 | |
2020-07-09 | Load test and install modules implicitly for simple projects | Boris Kolpackov | 1 | -0/+10 | |
While these can be useful on their own, this also makes the test and install operations available in simple projects, which is handy for "glue" projects that "pull" (using ad hoc import) a bunch of other projects. | |||||
2020-07-09 | Add support for ad hoc importation | Boris Kolpackov | 8 | -241/+438 | |
2020-07-09 | Get rid of no longer needed friend | Boris Kolpackov | 1 | -4/+0 | |
2020-07-08 | Fix bug in switch_scope() | Boris Kolpackov | 1 | -1/+1 | |
2020-07-07 | Make sure paths used to insert target are canonicalized | Boris Kolpackov | 1 | -3/+9 | |
2020-07-07 | Skip sources of executables in cc::install_rule | Boris Kolpackov | 2 | -9/+28 | |
Failed that, they may pull headers via an ad hoc group. | |||||
2020-07-06 | Adjust variable block applicability in dependency chains | Boris Kolpackov | 5 | -112/+228 | |
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-03 | Cutoff amalgamation and subproject for simple projects | Boris Kolpackov | 2 | -43/+37 | |
2020-07-02 | Hopefully fix flaky permission denied in `in` module on Windows | Boris Kolpackov | 1 | -1/+9 | |
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-07-02 | Optimize variable extraction in bootstrap_src() | Boris Kolpackov | 3 | -79/+69 | |
2020-07-02 | Cache project name in root_extra | Boris Kolpackov | 5 | -19/+55 | |
2020-07-01 | Add support for private installations | Boris Kolpackov | 1 | -42/+109 | |
2020-07-01 | Fix bug in *.export.imp_libs logic | Boris Kolpackov | 2 | -3/+3 | |
2020-07-01 | Add additional diagnostics for unassigned path (GitHub issue #89) | Boris Kolpackov | 1 | -6/+10 | |
2020-07-01 | Add additional diagnostics for disappearing header (GitHub issue #80) | Boris Kolpackov | 1 | -0/+16 | |
2020-07-01 | Use <project> substitution in install directories | Boris Kolpackov | 1 | -21/+24 | |
2020-07-01 | Use legal{} target type for legal documentation (LICENSE, AUTHORS, etc) | Boris Kolpackov | 1 | -1/+1 | |
2020-07-01 | Add *.export.imp_libs to get rid of dual *.export.libs semantics | Boris Kolpackov | 5 | -36/+42 | |
2020-06-30 | Add support for <var>-substitutions in config.install.* values | Boris Kolpackov | 1 | -8/+66 | |
For now, the only recognized variable name is <project> which is substituted with the project name. This can be used along these lines: $ b config.install.libexec='exec_root/lib/<project>/' install | |||||
2020-06-29 | Add config.install.share variable | Boris Kolpackov | 2 | -7/+10 | |
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 | 5 | -11/+42 | |
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 | 2 | -2/+2 | |
This feels like an oversight from transitioning to full names, like testscript{}, etc. | |||||
2020-06-26 | Drop workarounds for script::redirect struct compile errors | Karen Arutyunov | 2 | -58/+4 | |
Thanks to the butl::optional improvement to better deal with lack of copy/move constructors. | |||||
2020-06-26 | Handle #import in MSVC /showIncludes output | Boris Kolpackov | 2 | -13/+44 | |
2020-06-26 | Minor terminology fix in comments | Boris Kolpackov | 2 | -4/+3 | |
2020-06-26 | Fix race in library metadata protocol | Boris Kolpackov | 3 | -5/+6 | |
Specifically, we need to check whether the prerequisite_member is ad hoc before checking whether it is NULL because ad hoc ones are blanked out (set to NULL) during execute. | |||||
2020-06-26 | Add note to manual | Boris Kolpackov | 1 | -4/+21 | |
2020-06-25 | Fix warning | Boris Kolpackov | 1 | -1/+1 | |
2020-06-25 | Add more instrumentation for unassigned path race | Boris Kolpackov | 5 | -25/+64 | |
2020-06-25 | Eliminate phase unlock for case where we are not going to wait | Boris Kolpackov | 1 | -2/+6 | |
2020-06-24 | Stop forcing modules support in tests | Boris Kolpackov | 1 | -15/+0 | |
2020-06-24 | Fix trace and clarify comments | Boris Kolpackov | 2 | -9/+15 | |
2020-06-22 | Disable Clang C++20 modules support unless explicitly forced | Boris Kolpackov | 1 | -5/+11 | |
2020-06-22 | Try to detect and warn about the ccache compiler wrapper | Boris Kolpackov | 1 | -4/+24 | |
2020-06-22 | Add version mapping for Apple Clang 11.0.3 | Boris Kolpackov | 2 | -17/+22 | |
2020-06-20 | Fix assertion failure for unbound 'end' in testscript | Karen Arutyunov | 3 | -8/+36 | |
Issue #83. | |||||
2020-06-19 | Adapt mv builtin tests to terminology change | Karen Arutyunov | 1 | -1/+1 | |
2020-06-19 | Raise libcpp version in regex-related check to 10.0 | Karen Arutyunov | 1 | -1/+1 | |
2020-06-19 | Get rid of unnecessary copy | Boris Kolpackov | 1 | -1/+1 | |
2020-06-19 | Fix lexer to fail on invalid UTF-8 sequences | Karen Arutyunov | 4 | -0/+96 | |
2020-06-18 | Complete NetBSD compatibility | Boris Kolpackov | 6 | -5/+15 | |
2020-06-18 | Add NetBSD compatibility | magenbluten | 2 | -4/+4 | |
2020-06-18 | Add env script pseudo-builtin | Karen Arutyunov | 14 | -167/+618 | |
Also disable C++ recipe tests when cross-testing. | |||||
2020-06-18 | Fix build2::script::parser::[reset_]quoted() to consider peeked token in ↵ | Karen Arutyunov | 1 | -2/+3 | |
replay mode | |||||
2020-06-18 | Fix untracked variable check in buildscript parser | Karen Arutyunov | 1 | -1/+1 | |