aboutsummaryrefslogtreecommitdiff
path: root/build2/target
AgeCommit message (Collapse)AuthorFilesLines
2017-03-10Implement support for wildcard patternsBoris Kolpackov1-0/+8
2017-03-06Iterate over group members in test rule only if resolvableBoris Kolpackov1-17/+37
2017-03-03Use final action state after match at top level (operation)Boris Kolpackov1-6/+13
2017-03-02Implement parallel matchBoris Kolpackov1-230/+371
2017-02-14Modify library mate-information protocol not to use lib{} groupBoris Kolpackov1-6/+0
2017-02-14Initialize target::state_Boris Kolpackov1-1/+1
We may need it even before recipe() resets it, for example, in mtime().
2017-02-13Make GCC 4.9, VC14 happyBoris Kolpackov1-1/+1
2017-02-13Implement parallel error propagation, keep_going modeBoris Kolpackov1-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-13Get rid of count_postponedBoris Kolpackov1-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-13Tighten target constness furtherBoris Kolpackov1-10/+8
2017-02-13Implement parallel operation executionBoris Kolpackov1-22/+20
2017-02-13Use target:as<> instead of static_cast for target castingBoris Kolpackov1-18/+25
2017-02-13Tighten code that operates during both search/match and executeBoris Kolpackov1-0/+12
2017-02-13Pass const target& to recipesBoris Kolpackov1-44/+52
2017-02-13Introduce target::task_countBoris Kolpackov1-21/+43
2017-02-13Implement target_set locking, including extension updateBoris Kolpackov1-11/+23
2017-02-13Redesign target_set interface in preparation for lockingBoris Kolpackov1-10/+17
2017-02-13Store extension in target map key rather than in targetBoris Kolpackov1-10/+13
This is in preparation for locking its modification/access.
2017-02-13Pass const scope& where modification should not happenBoris Kolpackov1-8/+8
2017-02-13Add load generation to global variable_map valuesBoris Kolpackov1-1/+1
2017-02-13Add global flag to variable_mapBoris Kolpackov1-1/+3
2017-02-13Add model mutex, make var_pool const by defaultBoris Kolpackov1-32/+25
2017-01-23Go back to storing scope instead of target in prerequisiteBoris Kolpackov1-5/+2
Turns out this was semantically the right way to do it.
2017-01-23Implement automatic loading of directory buildfilesBoris Kolpackov1-13/+27
Now instead of explicitly writing: d = foo/ bar/ ./: $d include $d We can (usually) just write: ./: foo/ bar/
2017-01-20Remove prerequisite caching in scopeBoris Kolpackov1-45/+42
We don't share them often and those that are shared (e.g., cxx{} in obja/objs{}) are lightweight (SOO).
2017-01-19Get rid of extension_poolBoris Kolpackov1-19/+19
2017-01-19Get rid of project_name_poolBoris Kolpackov1-2/+4
With small string optimizations this is most likely a hindrance rather that an optimization.
2017-01-18Ignore prerequisite mtimes that are not linker inputsBoris Kolpackov1-0/+15
This makes sure, for example, that we don't unnecessarily re-link an executable when its testscript prerequisite is changes.
2017-01-05Update copyright yearBoris Kolpackov1-1/+1
2016-12-17Use PATH search as fallback import mechanism for exe{} targetsBoris Kolpackov1-0/+12
2016-12-16Move exe{} to build2 core, add fallback extensions (existing files)Boris Kolpackov1-7/+20
2016-11-04Cleanup match_result messBoris Kolpackov1-0/+6
2016-11-04Add target::out_dir() accessorBoris Kolpackov1-1/+4
2016-11-04Implement auxiliary data storage pad in targetBoris Kolpackov1-3/+70
2016-11-04Various design/implementation cleanupsBoris Kolpackov1-4/+8
2016-08-28Fix Windows rpath supportBoris Kolpackov1-2/+2
2016-08-12Implement support for C compilationBoris Kolpackov1-3/+20
We now have two new modules: cc (c-common) and c.
2016-07-29Fix bug in prerequisite iteration leave group supportBoris Kolpackov1-0/+2
2016-07-19Add import library target libi{}, make libs{} the DLLBoris Kolpackov1-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-17Redesign obj to exe/lib mappingBoris Kolpackov1-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-15Make .pdb ad hoc group member, installBoris Kolpackov1-1/+13
2016-06-27Add config.bin.target var/hint, use to decide libso{} install modeBoris Kolpackov1-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-26Add notion of ad hoc group, use to handle DLL/import libraryBoris Kolpackov1-49/+116
2016-06-18Cosmetic changesBoris Kolpackov1-5/+5
2016-04-21Move target state reset back to recipe()Boris Kolpackov1-6/+4
Doing it in target::reset() (which is called by match()) didn't play well with delegated recipes.
2016-04-21Implement short-circuiting to group stateBoris Kolpackov1-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-21Use hash map/set for targets/prerequisites to resolve key change issueBoris Kolpackov1-4/+9
2016-04-19Redesign src/out scopingBoris Kolpackov1-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.
2016-04-04Implement value typing, null support via value attributesBoris Kolpackov1-4/+11
For example: v = [null] v = [string] abc v += ABC # abcABC
2016-04-02Add notion of lookup depth, fix bug with NULL overridesBoris Kolpackov1-1/+19