Age | Commit message (Collapse) | Author | Files | Lines | |
---|---|---|---|---|---|
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 | |
2016-04-05 | Make name::pair char again | Boris Kolpackov | 1 | -0/+3 | |
The plan is to represent scope/target-qualified variables as ':'-style pairs. | |||||
2016-04-05 | Implement --buildfile option, overrides default buildfile, supports '-' | Boris Kolpackov | 1 | -5/+14 | |
2016-03-31 | Clean up variable lookup interfaces | Boris Kolpackov | 1 | -7/+6 | |
2016-03-31 | Set part of variable override implementation | Boris Kolpackov | 1 | -4/+10 | |
2016-03-30 | Minor parser interface rework | Boris Kolpackov | 1 | -4/+6 | |
2016-03-28 | Add variable cast from lookup | Boris Kolpackov | 1 | -8/+8 | |
2016-03-28 | New variable architecture | Boris Kolpackov | 1 | -87/+125 | |
2016-03-28 | Enable @-delimited pairs mode everywhere | Boris Kolpackov | 1 | -7/+5 | |
2016-03-28 | Add few notes, comment cleanups | Boris Kolpackov | 1 | -0/+2 | |
2016-02-29 | Rename level[1-6]() to l[1-6]() | Boris Kolpackov | 1 | -13/+13 | |
2016-02-12 | <types>/<utility> scheme cleanup | Boris Kolpackov | 1 | -2/+0 | |
2016-01-25 | Add support for searching subprojects of amalgamation for imported projects | Boris Kolpackov | 1 | -33/+51 | |
Currently only top-level subproject are considered. | |||||
2016-01-23 | Cleanup absolute/relative path diagnostics by introducing stream verbosity | Boris Kolpackov | 1 | -4/+2 | |
2016-01-21 | Rename equal token to assign, etc | Boris Kolpackov | 1 | -3/+3 | |