Age | Commit message (Collapse) | Author | Files | Lines | |
---|---|---|---|---|---|
2018-07-30 | Make project variable to be of project_name type | Karen Arutyunov | 1 | -37/+22 | |
2018-07-23 | Sanitize project name when forming config.import.<proj> variable | Boris Kolpackov | 1 | -5/+23 | |
Specifically, '-', '+', and '.' are replaced with '_' to form a "canonical" variable name. | |||||
2018-05-23 | Fix bug in inner project bootstrap during configure/disfigure | Boris Kolpackov | 1 | -2/+7 | |
2018-05-19 | Update copyright year | Karen Arutyunov | 1 | -1/+1 | |
2018-05-18 | Pass ignore_dangling flag to dir_iterator() ctor | Karen Arutyunov | 1 | -74/+80 | |
2018-05-14 | Tolerate misconfigured src_root in info and disfigure meta-operations | Boris Kolpackov | 1 | -18/+63 | |
2018-04-27 | Add support for build hooks | Boris Kolpackov | 1 | -43/+135 | |
The following buildfiles are loaded (if present) at appropriate times from the out_root subdirectories of a project: build/bootstrap/pre-*.build # before loading bootstrap.build build/bootstrap/post-*.build # after loading bootstrap.build build/root/pre-*.build # before loading root.build build/root/post-*.build # after loading root.build | |||||
2018-04-26 | Implement forwarded configurations and backlinking | Boris Kolpackov | 1 | -48/+116 | |
2018-04-24 | Minor code reuse improvement | Boris Kolpackov | 1 | -1/+1 | |
2018-01-05 | Add support for variable aliases | Boris Kolpackov | 1 | -1/+1 | |
2018-01-04 | Load config.build in init(), not boot() | Boris Kolpackov | 1 | -6/+10 | |
We now make sure the config module is init'ed first. | |||||
2017-12-13 | Implement info meta operation | Boris Kolpackov | 1 | -7/+25 | |
This meta operation can be used to print basic information (name, version, source/output roots, etc) for one or more projects. | |||||
2017-11-29 | Reimplement module sidebuilding using an ad hoc subproject | Boris Kolpackov | 1 | -15/+39 | |
2017-09-06 | Call dist callback in subprojects | Boris Kolpackov | 1 | -1/+0 | |
This fixes a bug with no updating manifest versions in build2-toolchain subprojects. | |||||
2017-09-03 | Cleanup project src/out_root/base discovery logic | Boris Kolpackov | 1 | -14/+9 | |
Specifically, we no longer support specifying the out_base explicitly and assuming work is src_base. | |||||
2017-07-28 | Restrict exe{} search to PATH when importing | Boris Kolpackov | 1 | -1/+3 | |
2017-05-13 | Fix VC15 warnings (/W3) | Karen Arutyunov | 1 | -1/+1 | |
2017-05-01 | Add hxx extension for headers | Karen Arutyunov | 1 | -11/+11 | |
2017-03-02 | Implement parallel match | Boris Kolpackov | 1 | -3/+3 | |
2017-02-13 | Track variable value modifications | Boris Kolpackov | 1 | -1/+1 | |
2017-02-13 | Tighten code that operates during both search/match and execute | Boris Kolpackov | 1 | -17/+29 | |
2017-02-13 | Pass const scope& where modification should not happen | Boris Kolpackov | 1 | -17/+19 | |
2017-02-13 | Implement pattern-based variable typing, tighten variable type update | Boris Kolpackov | 1 | -4/+8 | |
2017-02-13 | Add notion of phase, enforce | Boris Kolpackov | 1 | -4/+5 | |
2017-02-13 | Add model mutex, make var_pool const by default | Boris Kolpackov | 1 | -42/+41 | |
2017-01-23 | Implement automatic loading of directory buildfiles | Boris Kolpackov | 1 | -3/+46 | |
Now instead of explicitly writing: d = foo/ bar/ ./: $d include $d We can (usually) just write: ./: foo/ bar/ | |||||
2017-01-19 | Get rid of extension_pool | Boris Kolpackov | 1 | -3/+6 | |
2017-01-19 | Get rid of project_name_pool | Boris Kolpackov | 1 | -8/+8 | |
With small string optimizations this is most likely a hindrance rather that an optimization. | |||||
2017-01-09 | Make use of operator<<(ostream, exception) | Karen Arutyunov | 1 | -3/+3 | |
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 | -44/+101 | |
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-12-17 | Use PATH search as fallback import mechanism for exe{} targets | Boris Kolpackov | 1 | -7/+52 | |
2016-11-22 | Use diagnostics facility from libbutl | Boris Kolpackov | 1 | -6/+3 | |
2016-11-18 | Implement noop meta-operation | Boris Kolpackov | 1 | -0/+1 | |
The effect is loading all the buildfiles but not searching/matching/executing any targets/operations. Useful for testing. | |||||
2016-11-04 | Change token type 'name' to more general 'word' | Boris Kolpackov | 1 | -1/+1 | |
2016-11-04 | Various design/implementation cleanups | Boris Kolpackov | 1 | -2/+2 | |
2016-09-15 | Add io_error alias for std::ios_base::failure | Karen Arutyunov | 1 | -3/+3 | |
2016-09-13 | Fix crashing on subprojects that have no project variable set | Karen Arutyunov | 1 | -2/+2 | |
2016-09-13 | Fix crashing on unhandled system_error thrown by file_exists() | Karen Arutyunov | 1 | -9/+8 | |
2016-09-06 | Don't search for subprojects recursively, only at top-level | Boris Kolpackov | 1 | -1/+7 | |
2016-08-30 | Add support for config.build file versioning | Boris Kolpackov | 1 | -9/+22 | |
2016-08-23 | Treat empty config.import.* value as instruction to skip subproject search | Boris Kolpackov | 1 | -39/+53 | |
Also, change explicit config.import.* value to take precedence over subproject search. | |||||
2016-08-22 | Add few extra tracing statements | Boris Kolpackov | 1 | -0/+10 | |
2016-07-30 | Construct paths to use canonical directory separators | Boris Kolpackov | 1 | -8/+15 | |
Hardcoding separators as in "build/root.build" is now a big no-no. | |||||
2016-07-30 | Actualize project root directories | Boris Kolpackov | 1 | -3/+3 | |
This solves the problem of changing path spelling on platforms with case- insensitive filesystems. For example, you may build a project in the current working directory without specifying any paths. This means the current working directory will be used as the project's root. On Windows this could be C:\x. Now you are building another project that imports the above project and you specify config.import.x variable pointing to the above build. But you are lazy to type capital C so you spell it as config.import.x=c:\x. What happens now is the value from config.import.x is used as the project root. And now it is a different spelling compared to your original build. This is not a problem when the build system itself is concerned -- it is smart enough to use case-insensitive comparison. However, we often use roots to derive other things, say, -I options that we pass to compilers. And these options are normally no longer treated as (case-insensitive) paths. If they are hashed and the result stored in depdb, then we end up with rebuilds that are triggered by changes from C:\ to c:\. | |||||
2016-07-30 | Fix missing src_root initialization | Boris Kolpackov | 1 | -0/+2 | |
2016-07-23 | Adapt to fdstream extension | Karen Arutyunov | 1 | -26/+14 | |
2016-07-20 | Switch to dynamic empty() implementation in variable value | Boris Kolpackov | 1 | -1/+1 | |
The current model fell apart when we modified values directly. | |||||
2016-07-08 | Move filesystem-related functions from context to new filesystem files | Boris Kolpackov | 1 | -1/+1 | |
2016-06-27 | Add config.bin.target var/hint, use to decide libso{} install mode | Boris Kolpackov | 1 | -2/+2 | |
Normally the user doesn't need to specify config.bin.target explicitly since the cxx module will hint it. We now also have the whole set of target's components: bin.target.{cpu,vendor,system,version,class} |