Age | Commit message (Collapse) | Author | Files | Lines | |
---|---|---|---|---|---|
2017-03-14 | Preserve failed state even if recipe is overridden | Boris Kolpackov | 1 | -1/+3 | |
2017-03-14 | Implement implied buildfile support | Boris Kolpackov | 1 | -1/+6 | |
In essence, if the buildfile is: ./: */ Then it can be omitted entirely (provided there is at least one subdirectory). | |||||
2017-03-10 | Implement support for wildcard patterns | Boris Kolpackov | 1 | -0/+8 | |
2017-03-06 | Iterate over group members in test rule only if resolvable | Boris Kolpackov | 1 | -17/+37 | |
2017-03-03 | Use final action state after match at top level (operation) | Boris Kolpackov | 1 | -6/+13 | |
2017-03-02 | Implement parallel match | Boris Kolpackov | 1 | -230/+371 | |
2017-02-14 | Modify library mate-information protocol not to use lib{} group | Boris Kolpackov | 1 | -6/+0 | |
2017-02-14 | Initialize target::state_ | Boris Kolpackov | 1 | -1/+1 | |
We may need it even before recipe() resets it, for example, in mtime(). | |||||
2017-02-13 | Make GCC 4.9, VC14 happy | Boris Kolpackov | 1 | -1/+1 | |
2017-02-13 | Implement parallel error propagation, keep_going mode | Boris Kolpackov | 1 | -14/+29 | |
Keep going is the default but there is now the -s|--serial-stop that makes the driver run serially and stop at first error. Also fix some lockups, other minor improvements/features. | |||||
2017-02-13 | Get rid of count_postponed | Boris Kolpackov | 1 | -8/+8 | |
Terget execution is postponed with regards to the current thread only thus it doesn't seem right to make postponed a target state. | |||||
2017-02-13 | Tighten target constness further | Boris Kolpackov | 1 | -10/+8 | |
2017-02-13 | Implement parallel operation execution | Boris Kolpackov | 1 | -22/+20 | |
2017-02-13 | Use target:as<> instead of static_cast for target casting | Boris Kolpackov | 1 | -18/+25 | |
2017-02-13 | Tighten code that operates during both search/match and execute | Boris Kolpackov | 1 | -0/+12 | |
2017-02-13 | Pass const target& to recipes | Boris Kolpackov | 1 | -44/+52 | |
2017-02-13 | Introduce target::task_count | Boris Kolpackov | 1 | -21/+43 | |
2017-02-13 | Implement target_set locking, including extension update | Boris Kolpackov | 1 | -11/+23 | |
2017-02-13 | Redesign target_set interface in preparation for locking | Boris Kolpackov | 1 | -10/+17 | |
2017-02-13 | Store extension in target map key rather than in target | Boris Kolpackov | 1 | -10/+13 | |
This is in preparation for locking its modification/access. | |||||
2017-02-13 | Pass const scope& where modification should not happen | Boris Kolpackov | 1 | -8/+8 | |
2017-02-13 | Add load generation to global variable_map values | Boris Kolpackov | 1 | -1/+1 | |
2017-02-13 | Add global flag to variable_map | Boris Kolpackov | 1 | -1/+3 | |
2017-02-13 | Add model mutex, make var_pool const by default | Boris Kolpackov | 1 | -32/+25 | |
2017-01-23 | Go back to storing scope instead of target in prerequisite | Boris Kolpackov | 1 | -5/+2 | |
Turns out this was semantically the right way to do it. | |||||
2017-01-23 | Implement automatic loading of directory buildfiles | Boris Kolpackov | 1 | -13/+27 | |
Now instead of explicitly writing: d = foo/ bar/ ./: $d include $d We can (usually) just write: ./: foo/ bar/ | |||||
2017-01-20 | Remove prerequisite caching in scope | Boris Kolpackov | 1 | -45/+42 | |
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 | -19/+19 | |
2017-01-19 | Get rid of project_name_pool | Boris Kolpackov | 1 | -2/+4 | |
With small string optimizations this is most likely a hindrance rather that an optimization. | |||||
2017-01-18 | Ignore prerequisite mtimes that are not linker inputs | Boris Kolpackov | 1 | -0/+15 | |
This makes sure, for example, that we don't unnecessarily re-link an executable when its testscript prerequisite is changes. | |||||
2017-01-05 | Update copyright year | Boris Kolpackov | 1 | -1/+1 | |
2016-12-17 | Use PATH search as fallback import mechanism for exe{} targets | Boris Kolpackov | 1 | -0/+12 | |
2016-12-16 | Move exe{} to build2 core, add fallback extensions (existing files) | Boris Kolpackov | 1 | -7/+20 | |
2016-11-04 | Cleanup match_result mess | Boris Kolpackov | 1 | -0/+6 | |
2016-11-04 | Add target::out_dir() accessor | Boris Kolpackov | 1 | -1/+4 | |
2016-11-04 | Implement auxiliary data storage pad in target | Boris Kolpackov | 1 | -3/+70 | |
2016-11-04 | Various design/implementation cleanups | Boris Kolpackov | 1 | -4/+8 | |
2016-08-28 | Fix Windows rpath support | Boris Kolpackov | 1 | -2/+2 | |
2016-08-12 | Implement support for C compilation | Boris Kolpackov | 1 | -3/+20 | |
We now have two new modules: cc (c-common) and c. | |||||
2016-07-29 | Fix bug in prerequisite iteration leave group support | Boris Kolpackov | 1 | -0/+2 | |
2016-07-19 | Add import library target libi{}, make libs{} the DLL | Boris Kolpackov | 1 | -4/+8 | |
In the end, having libs{} be the DLL with import library being its member is more natural than making libs{} the import library and having dll{} as its member. | |||||
2016-07-17 | Redesign obj to exe/lib mapping | Boris Kolpackov | 1 | -1/+1 | |
Specifically: * objso{} and libso{} target types have been renamed to objs{} and libs{} * obje{} has been added (so now we have obje{}, obja{}, and objs{}) * obje{} is now used for building exe{} * object file extensions have been changed to use "hierarchical extensions" that reflect the extension of the corresponding exe/lib target (instead of the -so suffix we used), specifically: obje{}: foo.o, (UNIX), foo.exe.o (MinGW), foo.exe.obj (Windows) obja{}: foo.a.o (UNIX, MinGW), foo.lib.obj (Windows) objs{}: foo.so.o (UNIX), foo.dylib.o (Darwin), foo.dll.o (MinGW), foo.dll.obj (Windows) | |||||
2016-07-15 | Make .pdb ad hoc group member, install | Boris Kolpackov | 1 | -1/+13 | |
2016-06-27 | Add config.bin.target var/hint, use to decide libso{} install mode | Boris Kolpackov | 1 | -4/+4 | |
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 | Add notion of ad hoc group, use to handle DLL/import library | Boris Kolpackov | 1 | -49/+116 | |
2016-06-18 | Cosmetic changes | Boris Kolpackov | 1 | -5/+5 | |
2016-04-21 | Move target state reset back to recipe() | Boris Kolpackov | 1 | -6/+4 | |
Doing it in target::reset() (which is called by match()) didn't play well with delegated recipes. | |||||
2016-04-21 | Implement short-circuiting to group state | Boris Kolpackov | 1 | -46/+64 | |
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-21 | Use hash map/set for targets/prerequisites to resolve key change issue | Boris Kolpackov | 1 | -4/+9 | |
2016-04-19 | Redesign src/out scoping | Boris Kolpackov | 1 | -37/+58 | |
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. |