Age | Commit message (Collapse) | Author | Files | Lines | |
---|---|---|---|---|---|
2020-05-27 | Initial support for ad hoc recipes (still work in progress) | Boris Kolpackov | 1 | -1/+2 | |
2020-04-27 | Rework tool importation along with cli module | Boris Kolpackov | 1 | -12/+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-02-07 | Drop copyright notice from source code | Karen Arutyunov | 1 | -1/+0 | |
2019-10-14 | Implement MSVC installation discovery for version 15 (2017) and later | Karen Arutyunov | 1 | -1/+1 | |
In particular, this removes the requirement to build from the Visual Studio command prompt. Note that since MSVC compiler binaries are target-specific (i.e., there are no -m32/-m64 options nor something like /MACHINE), in this case we default to a 64-bit build (a 32-bit build can still be achieved by running from a suitable command prompt). Finally, this mechanism is also used to find Clang bundled with MSVC. | |||||
2019-08-23 | Introduce notion of build context | Boris Kolpackov | 1 | -3/+3 | |
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-07-01 | Split build system into library and driver | Boris Kolpackov | 1 | -7/+7 | |
2019-04-08 | Support for --dry-run|-n mode, perform update part | Boris Kolpackov | 1 | -3/+5 | |
2019-01-16 | Update copyright year | Karen Arutyunov | 1 | -1/+1 | |
2018-11-28 | Add --[no-]mtime-check options to control this behavior at runtime | Boris Kolpackov | 1 | -1/+1 | |
By default the checks are enabled only for the staged toolchain. | |||||
2018-11-22 | Make backwards modification time check permanent, add another experiment | Boris Kolpackov | 1 | -8/+9 | |
2018-11-19 | Finalize workaround for backwards modification time issue | Boris Kolpackov | 1 | -1/+1 | |
2018-06-29 | Use depdb to track changes to cli compiler, options, etc | Boris Kolpackov | 1 | -16/+61 | |
2018-06-28 | Implement support for excluded and ad hoc prerequisites | Boris Kolpackov | 1 | -41/+36 | |
The inclusion/exclusion is controlled via the 'include' prerequisite-specific variable. Valid values are: false - exclude true - include adhoc - include but treat as an ad hoc input For example: lib{foo}: cxx{win32-utility}: include = ($cxx.targe.class == 'windows') exe{bar}: libs{plugin}: include = adhoc | |||||
2018-05-19 | Update copyright year | Karen Arutyunov | 1 | -1/+1 | |
2018-02-07 | Initial work for default update outer operation | Boris Kolpackov | 1 | -3/+3 | |
While update still uses the old "all update rules update all their prerequisites" assumption, test and install have been fixed not to rely on this. | |||||
2018-02-03 | Get rid of action rule override semantics | Boris Kolpackov | 1 | -4/+4 | |
Instead we now have two more or less separate match states for outer and inner parts of an action. | |||||
2017-12-16 | Improve process execution diagnostics by reusing run_*() API | Boris Kolpackov | 1 | -18/+2 | |
2017-08-23 | Add perform_clean_group(), use instead of ad hoc implementation in cli rule | Boris Kolpackov | 1 | -30/+1 | |
2017-05-01 | Add hxx extension for headers | Karen Arutyunov | 1 | -8/+8 | |
2017-04-28 | Implement support for pre-processing version headers (or other files) | Boris Kolpackov | 1 | -14/+14 | |
Also implement the build system version check. | |||||
2017-04-27 | Pass target to prerequisite search | Boris Kolpackov | 1 | -3/+6 | |
2017-04-10 | Adapt to process_error change | Karen Arutyunov | 1 | -1/+1 | |
2017-03-02 | Implement parallel match | Boris Kolpackov | 1 | -55/+38 | |
2017-02-13 | Tighten target constness further | Boris Kolpackov | 1 | -1/+1 | |
2017-02-13 | Use target:as<> instead of static_cast for target casting | Boris Kolpackov | 1 | -3/+3 | |
2017-02-13 | Pass const target& to recipes | Boris Kolpackov | 1 | -6/+6 | |
2017-02-13 | Implement target_set locking, including extension update | Boris Kolpackov | 1 | -7/+5 | |
2017-02-13 | Store extension in target map key rather than in target | Boris Kolpackov | 1 | -4/+7 | |
This is in preparation for locking its modification/access. | |||||
2017-02-13 | Pass const scope& where modification should not happen | Boris Kolpackov | 1 | -1/+1 | |
2017-02-13 | Add model mutex, make var_pool const by default | Boris Kolpackov | 1 | -8/+8 | |
2017-01-23 | Go back to storing scope instead of target in prerequisite | Boris Kolpackov | 1 | -1/+1 | |
Turns out this was semantically the right way to do it. | |||||
2017-01-20 | Remove prerequisite caching in scope | Boris Kolpackov | 1 | -1/+1 | |
We don't share them often and those that are shared (e.g., cxx{} in obja/objs{}) are lightweight (SOO). | |||||
2017-01-19 | Get rid of extension_pool | Boris Kolpackov | 1 | -4/+4 | |
2017-01-18 | Ignore prerequisite mtimes that are not linker inputs | Boris Kolpackov | 1 | -4/+10 | |
This makes sure, for example, that we don't unnecessarily re-link an executable when its testscript prerequisite is changes. | |||||
2017-01-09 | Make use of operator<<(ostream, exception) | Karen Arutyunov | 1 | -1/+1 | |
2017-01-05 | Update copyright year | Boris Kolpackov | 1 | -1/+1 | |
2016-12-17 | Add support for specifying individual paths of imported targets | Boris Kolpackov | 1 | -1/+1 | |
The new config.import.* variable format is: config.import.<proj>.<name>[.<type>] For example: b config.import.build2.b=/opt/build2/bin/b b config.import.build2.b.exe=b-boot | |||||
2016-11-04 | Cleanup match_result mess | Boris Kolpackov | 1 | -7/+7 | |
2016-09-17 | Audit all print_process()/process ctor for path_search() | Karen Arutyunov | 1 | -3/+4 | |
2016-07-08 | Add dependency on fsdir{} in alias rules | Boris Kolpackov | 1 | -1/+1 | |
This makes sure that a directory with only dir{} target gets cleaned up. | |||||
2016-07-08 | Move filesystem-related functions from context to new filesystem files | Boris Kolpackov | 1 | -0/+3 | |
2016-04-21 | Implement short-circuiting to group state | Boris Kolpackov | 1 | -5/+5 | |
This is necessary to get rid of bogus restarts in inject_prerequisites() where it think a group member was updated since its state changed from unknown to (group's) changed. | |||||
2016-04-19 | Redesign src/out scoping | Boris Kolpackov | 1 | -5/+5 | |
We no longer enter paths from the src tree into scope map. Instead, targets from the src tree now include their out tree directory (in essence their "configuration"). This is then used to find a target's scope. See the comment in class target for details. The result of this change is that we can now again build multiple configurations (out trees) for same project at once. | |||||
2016-03-28 | Clean up variable usage | Boris Kolpackov | 1 | -2/+2 | |
2016-03-28 | Add variable cast from lookup | Boris Kolpackov | 1 | -1/+1 | |
2016-03-28 | New variable architecture | Boris Kolpackov | 1 | -1/+1 | |
2016-03-11 | Implement --config-{guess,sub} options | Boris Kolpackov | 1 | -2/+0 | |
2016-02-29 | Rename level[1-6]() to l[1-6]() | Boris Kolpackov | 1 | -7/+7 | |
2016-02-29 | Implement auxiliary dependency database (.d files), use in cxx.compile | Boris Kolpackov | 1 | -4/+2 | |
This is part of the "High Fidelity Build" work. | |||||
2016-02-12 | <types>/<utility> scheme cleanup | Boris Kolpackov | 1 | -2/+1 | |