Age | Commit message (Collapse) | Author | Files | Lines | |
---|---|---|---|---|---|
2023-03-01 | Add support for installation manifest | Boris Kolpackov | 1 | -12/+50 | |
2022-12-12 | Adapt to dir_iterator API change | Karen Arutyunov | 1 | -1/+1 | |
2022-12-01 | Make dist::rule reusable as base | Boris Kolpackov | 6 | -38/+41 | |
2022-11-30 | Deal with order dependence in dist rule | Boris Kolpackov | 6 | -60/+191 | |
2022-11-16 | Initial low verbosity diagnostics rework | Boris Kolpackov | 1 | -8/+8 | |
2022-11-08 | Make process exit diagnostics consistent | Boris Kolpackov | 1 | -5/+13 | |
In particular, we now always print error message on non-0 exit except in cases where such exit is ignored. | |||||
2022-11-08 | More work on child process diagnostics buffering | Boris Kolpackov | 1 | -15/+17 | |
2022-10-20 | Ignore post hoc prerequisites in dist rule | Boris Kolpackov | 1 | -1/+7 | |
2022-10-19 | Add support for post hoc prerequisites | Boris Kolpackov | 2 | -14/+20 | |
Unlike normal and ad hoc prerequisites, a post hoc prerequisite is built after the target, not before. It may also form a dependency cycle together with normal/ad hoc prerequisites. In other words, all this form of dependency guarantees is that a post hoc prerequisite will be built if its dependent target is built. See the NEWS file for details and an example. | |||||
2022-10-13 | Optimize by going straight to public variable pool where applicable | Boris Kolpackov | 1 | -23/+29 | |
2022-10-10 | Preparatory work for public/private variable distinction | Boris Kolpackov | 1 | -1/+1 | |
We still always use the public var_pool from context but where required, all access now goes through scope::var_pool(). | |||||
2022-09-16 | Register fallback dist meta-operation rule for out of project targets | Boris Kolpackov | 1 | -1/+11 | |
The problematic scenario this fixes is an ad hoc pattern rule (which we register for dist in order to inject any additional sources; see parser.cxx for details) that pulls a tool imported from the system (say /usr/bin/xxd). | |||||
2022-09-06 | Add ability to remap paths in distribution | Boris Kolpackov | 2 | -29/+102 | |
Specifically, the dist target-specific variable now can specify a path besides true or false. This path is the "imaginary" source location which is used to derive the corresponding distribution local. This location can be either a directory path (to remap with the same file name) or a file path (to remap with a different name). If the path is relative, then it's treated relative to the target directory. Note that to make things less error prone, simple paths without any directory separators are not allowed (use ./<name> instead). Note that if multiple targets end up with the same source location, the behavior is undefined and no diagnostics is issued. Note also that such remapping has no effect in the bootstrap distribution mode. | |||||
2022-07-21 | Don't issue conditional dependency declaration warning for imported projects | Boris Kolpackov | 2 | -2/+27 | |
2022-05-27 | Don't pass --format to OpenBSD tar (ustar is default) | Boris Kolpackov | 1 | -22/+25 | |
2022-05-06 | Minor terminology fix in diagnostics and comments | Boris Kolpackov | 2 | -3/+3 | |
2022-04-19 | Switch to using std::function for target::data_pad | Boris Kolpackov | 1 | -1/+1 | |
2022-04-07 | Rename {match,execute}() to *_sync(), add *_complete() | Boris Kolpackov | 1 | -1/+1 | |
In particular, the match() rename makes sure it doesn't clash with rule::match() which, after removal of the hint argument in simple_rule, has exactly the same signature, thus making it error-prone to calling recursively. | |||||
2022-04-06 | Add support for rule hints | Boris Kolpackov | 3 | -3/+3 | |
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/+6 | |
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. | |||||
2021-12-16 | Pass context to (meta-)operation hooks | Boris Kolpackov | 1 | -9/+9 | |
2021-11-16 | Ignore (with warning) directory symlink cycles in bootstrap dist | Boris Kolpackov | 1 | -3/+44 | |
2021-09-28 | Adapt to libbutl headers extension change from .mxx to .hxx | Karen Arutyunov | 1 | -2/+2 | |
2021-04-07 | Register environment variables for hermetic build configurations | Boris Kolpackov | 1 | -0/+22 | |
2021-04-02 | Add support for propagating project environment | Boris Kolpackov | 1 | -0/+7 | |
2021-03-19 | Redo entering of src directories into scope_map | Boris Kolpackov | 1 | -3/+5 | |
2021-02-08 | Enter scope src directories into scope map | Boris Kolpackov | 1 | -1/+1 | |
2021-01-30 | Rework include translation support | Boris Kolpackov | 1 | -2/+0 | |
See the config.cxx.translate_include variable documentation in cxx/init.cxx for details. | |||||
2020-11-02 | Set executable bit for ad hoc buildscript rule executable target on POSIX | Karen Arutyunov | 1 | -1/+1 | |
2020-10-27 | Tweak dist rule to handle prerequisites outside project | Boris Kolpackov | 1 | -7/+21 | |
2020-10-07 | Add ability to specify extra adhoc files for distribution | Boris Kolpackov | 2 | -6/+58 | |
2020-09-29 | Add bootstrap distribution mode (!config.dist.bootstrap=true) | Boris Kolpackov | 4 | -233/+435 | |
In this mode the dist meta-operation does not load the project (but does bootstrap it) and adds all the source files into the distribution only ignoring files and directories that start with a dot. This mode is primarily meant for situation where the project cannot (yet) be loaded due to missing dependencies. | |||||
2020-08-16 | Add ability to initialize bootstrapped modules after loading root.build | Boris Kolpackov | 1 | -3/+1 | |
2020-07-13 | Add ability to extend rule interface in source-compatible manner | Boris Kolpackov | 1 | -1/+1 | |
2020-07-12 | Cache subprojects variable value in scope::root_extra | Boris Kolpackov | 1 | -4/+4 | |
2020-05-27 | Initial support for ad hoc recipes (still work in progress) | Boris Kolpackov | 1 | -1/+1 | |
2020-03-31 | Switch to project variable visibility by default | Boris Kolpackov | 1 | -9/+6 | |
2020-03-17 | Rework config::{omitted,required,optional}() into unified config_lookup() | Boris Kolpackov | 1 | -8/+11 | |
2020-02-12 | Add convenience run_start() overload | Boris Kolpackov | 1 | -1/+1 | |
2020-02-11 | Add match_only flag to context | Boris Kolpackov | 1 | -41/+44 | |
2020-02-07 | Drop copyright notice from source code | Karen Arutyunov | 8 | -8/+0 | |
2020-01-29 | Rename module_base to module, redo module boot/init argument passing | Boris Kolpackov | 3 | -19/+4 | |
2020-01-28 | Use scope::var_pool() | Boris Kolpackov | 1 | -1/+1 | |
2020-01-28 | Use scope::insert_rule() | Boris Kolpackov | 1 | -2/+2 | |
2020-01-27 | See through lib{} group during dist | Boris Kolpackov | 1 | -2/+4 | |
2020-01-27 | Improve module loading API | Boris Kolpackov | 1 | -2/+2 | |
2019-11-15 | Use path_name_view in location and path_name_value in location_value | Karen Arutyunov | 1 | -1/+2 | |
2019-11-11 | Use path_name for `-` to stdin/stdout translation | Karen Arutyunov | 1 | -2/+1 | |
2019-11-07 | Initial work on path_name use for `-` to stdin/stdout translation | Boris Kolpackov | 1 | -2/+2 | |
2019-11-04 | Add $config.export() function | Boris Kolpackov | 1 | -2/+1 | |
This is similar to the config.export variable functionality except it can be called from within buildfiles. Note that this function can only be used during configure unless the config module creation was forced for other meta-operations with config.module=true in bootstrap.build. |