Age | Commit message (Collapse) | Author | Files | Lines | |
---|---|---|---|---|---|
2022-04-19 | Use target recipe for auxiliary data storage during match-apply | Boris Kolpackov | 2 | -29/+34 | |
In particular, we now have separate auxiliary data storage for inner and outer operations. | |||||
2022-04-19 | Switch to using std::function for target::data_pad | Boris Kolpackov | 1 | -2/+2 | |
2022-04-18 | Avoid locking target set if in load phase | Boris Kolpackov | 1 | -0/+3 | |
2022-04-15 | Get rid of target::dynamic_type() virtual function | Boris Kolpackov | 1 | -2/+5 | |
Instead of overriding this function, derived targets must now set the dynamic_type variable to their static_type in their constructor body. | |||||
2022-04-06 | Add support for rule hints | Boris Kolpackov | 4 | -12/+14 | |
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-02 | Add update operation-specific variable with unmatch|match additional values | Boris Kolpackov | 1 | -1/+1 | |
Note that the unmatch (match but do not update) and match (update during match) values are only supported by certain rules (and potentially only for certain prerequisite types). Additionally: - All operation-specific variables are now checked for false as an override for the prerequisite-specific include value. In particular, this can now be used to disable a prerequisite for update, for example: ./: exe{test}: update = false - The cc::link_rule now supports the update=match value for headers and ad hoc prerequisites. In particular, this can be used to make sure all the library headers are updated before matching any of its (or dependent's) object files. | |||||
2022-01-26 | Make bash module install into bin/<project>.bash/ to avoid clashes | Boris Kolpackov | 3 | -19/+57 | |
Also, expect the first component in the import path to be full project name even in case it has the .bash extension. | |||||
2021-11-03 | Add line processing customization hook to in::rule | Boris Kolpackov | 2 | -1/+5 | |
2021-10-07 | Verify libraries and targets they are linked to a for-install-compatible | Boris Kolpackov | 1 | -1/+7 | |
2021-10-07 | Minor install-related cleanups | Boris Kolpackov | 1 | -1/+4 | |
2021-09-14 | Consistently install prerequisites from any scope by default | Boris Kolpackov | 2 | -24/+2 | |
It is also now possible to adjust this behavior with global config.install.scope override. Valid values for this variable are: project -- only from project strong -- from strong amalgamation weak -- from weak amalgamation global -- from all projects (default) | |||||
2021-05-04 | Replace int_ with intf_ and imp_ with impl_ in names | Boris Kolpackov | 1 | -4/+4 | |
2021-03-19 | Redo entering of src directories into scope_map | Boris Kolpackov | 1 | -1/+1 | |
2020-12-14 | Fix bug in create_new_target_locked() | Karen Arutyunov | 1 | -1/+1 | |
2020-10-15 | Add ability to specify fallback value for NULL substitutions with in.null | Boris Kolpackov | 2 | -3/+5 | |
2020-09-24 | Give hints for common causes of "no rule to update ..." error | Boris Kolpackov | 1 | -1/+1 | |
2020-07-17 | Fix race in path/mtime assignment and file_rule::match() | Boris Kolpackov | 1 | -5/+2 | |
2020-06-26 | Fix race in library metadata protocol | Boris Kolpackov | 1 | -1/+1 | |
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-12 | Make order of imports stable in saved host build configuration | Boris Kolpackov | 1 | -0/+2 | |
2020-02-07 | Drop copyright notice from source code | Karen Arutyunov | 9 | -9/+0 | |
2020-01-29 | Rename module_base to module, redo module boot/init argument passing | Boris Kolpackov | 1 | -2/+1 | |
2020-01-28 | Use scope::insert_rule() | Boris Kolpackov | 1 | -16/+12 | |
2020-01-27 | Improve module loading API | Boris Kolpackov | 1 | -2/+1 | |
2019-08-28 | Make lib{build2} "implied interface dependency" of modules | Boris Kolpackov | 1 | -5/+3 | |
This makes our compilation and linking command lines a little bit saner. | |||||
2019-08-28 | Add/update some module descriptions | Karen Arutyunov | 1 | -1/+1 | |
2019-08-28 | Move bin build system module to separate library | Karen Arutyunov | 1 | -0/+4 | |
2019-08-26 | Make target types project-wide | Boris Kolpackov | 1 | -2/+3 | |
2019-08-23 | Introduce notion of build context | Boris Kolpackov | 2 | -10/+10 | |
All non-const global state is now in class context and we can now have multiple independent builds going on at the same time. | |||||
2019-08-21 | Cleanup context.hxx and its usage | Boris Kolpackov | 1 | -4/+6 | |
2019-08-20 | Add build.version.interface | Boris Kolpackov | 1 | -2/+4 | |
This build system interface version should be embedded into build system modules as load_suffix. | |||||
2019-08-15 | Embed build core version into build system modules as load path | Boris Kolpackov | 1 | -4/+9 | |
2019-08-01 | Move bash build system module to separate library | Karen Arutyunov | 9 | -0/+855 | |