Age | Commit message (Collapse) | Author | Files | Lines | |
---|---|---|---|---|---|
2020-08-04 | Fix 'target.path() called out of scope' testscript error | Karen Arutyunov | 1 | -0/+7 | |
2020-08-03 | Fix buildscript diagnostics so diff output is always in unified format | Karen Arutyunov | 2 | -12/+48 | |
Also make sure diff refers program stdout as 'stdout' rather than '-' in the test rule diagnostics. | |||||
2020-07-23 | Escape quotes in .pc file values besides spaces and backslashes | Karen Arutyunov | 1 | -1/+1 | |
2020-07-21 | Change to version 0.14.0-a.0.z | Boris Kolpackov | 1 | -1/+1 | |
2020-07-18 | Release version 0.13.0v0.13.0 | Boris Kolpackov | 1 | -1/+1 | |
2020-07-18 | Work around Clang bug #45021 | Boris Kolpackov | 1 | -0/+10 | |
2020-07-18 | Add $regex.find_match() and $regex.find_search() functions | Karen Arutyunov | 1 | -0/+98 | |
2020-07-17 | Fix race in path/mtime assignment and file_rule::match() | Boris Kolpackov | 7 | -30/+43 | |
2020-07-17 | Add optimized derive_path_with_extension(), use in file_rule | Boris Kolpackov | 4 | -14/+42 | |
2020-07-17 | Use -fexternc-nounwind by default for Clang targeting MSVC | Boris Kolpackov | 1 | -5/+27 | |
This option implements the 'c' part in /EHsc and is not a mere optimization; see Clang bug #45021 for details. | |||||
2020-07-16 | Save original compiler path/mode in {c,cxx}.config.path/mode | Boris Kolpackov | 5 | -9/+21 | |
It turns out that when propagating {c,cxx}.config in tests we don't want to propagate any options (such as *.std) that have been folded into our project's mode. | |||||
2020-07-14 | Fix Clang warning | Boris Kolpackov | 2 | -0/+4 | |
2020-07-14 | Recognize `build2` as special module name in addition to `build` | Boris Kolpackov | 1 | -2/+2 | |
This is for consistency with version constraints in manifest. | |||||
2020-07-13 | Fix version check in using directive | Boris Kolpackov | 1 | -8/+9 | |
2020-07-13 | Reserve backtick (`) and bit-or (|) in eval context for future use | Boris Kolpackov | 5 | -4/+20 | |
Specifically, they are reserved for future support of arithmetic evaluation contexts and evaluation pipelines, respectively. | |||||
2020-07-13 | Add ability to extend rule interface in source-compatible manner | Boris Kolpackov | 11 | -22/+67 | |
2020-07-13 | Fold translated *.std options into compiler mode options | Boris Kolpackov | 8 | -55/+35 | |
This way they are accessible in ad hoc recipes. | |||||
2020-07-12 | Rename rule-adhoc-* to adhoc-rule-* | Boris Kolpackov | 5 | -15/+15 | |
2020-07-12 | Cache subprojects variable value in scope::root_extra | Boris Kolpackov | 7 | -55/+59 | |
2020-07-10 | Relax prerequisite filtering semantics of aliases for clean operation | Boris Kolpackov | 2 | -4/+7 | |
This is analogous to what has been done to test and install a couple of commits before. | |||||
2020-07-10 | Add support for project-local importation | Boris Kolpackov | 1 | -11/+19 | |
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-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 | Add support for ad hoc importation | Boris Kolpackov | 7 | -144/+415 | |
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 | 2 | -109/+124 | |
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 | 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 | 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 | 1 | -4/+6 | |
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 | 4 | -11/+41 | |
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 | 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-25 | Fix warning | Boris Kolpackov | 1 | -1/+1 | |
2020-06-25 | Add more instrumentation for unassigned path race | Boris Kolpackov | 5 | -25/+64 | |