Age | Commit message (Collapse) | Author | Files | Lines | |
---|---|---|---|---|---|
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} | |||||
2016-06-26 | Minor module interface cleanups | Boris Kolpackov | 1 | -1/+1 | |
2016-04-19 | Redesign src/out scoping | Boris Kolpackov | 1 | -39/+30 | |
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-04-11 | Adjust abs_dir_path usage to take advantage of inheritance | Boris Kolpackov | 1 | -1/+1 | |
2016-04-11 | New configuration logic, iteration 1 | Boris Kolpackov | 1 | -28/+7 | |