aboutsummaryrefslogtreecommitdiff
path: root/build2/target
AgeCommit message (Collapse)AuthorFilesLines
2017-05-01Add hxx extension for headersKaren Arutyunov1-1719/+0
2017-04-28Increase target data pad size for GCC 4.9Boris Kolpackov1-1/+1
2017-04-28Implement support for pre-processing version headers (or other files)Boris Kolpackov1-0/+13
Also implement the build system version check.
2017-04-28Add in{} target type for .in ("input") file (requires preprocessing)Boris Kolpackov1-0/+33
2017-04-27Pass target to prerequisite searchBoris Kolpackov1-17/+22
2017-03-14Preserve failed state even if recipe is overriddenBoris Kolpackov1-1/+3
2017-03-14Implement implied buildfile supportBoris Kolpackov1-1/+6
In essence, if the buildfile is: ./: */ Then it can be omitted entirely (provided there is at least one subdirectory).
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