aboutsummaryrefslogtreecommitdiff
path: root/build2/target.cxx
AgeCommit message (Collapse)AuthorFilesLines
2017-05-01Add hxx extension for headersKaren Arutyunov1-8/+8
2017-04-29Fix bug in default target logicBoris Kolpackov1-22/+24
2017-04-28Fix buildfile loading raceBoris Kolpackov1-0/+12
2017-04-28Add in{} target type for .in ("input") file (requires preprocessing)Boris Kolpackov1-0/+43
2017-04-27Pass target to prerequisite searchBoris Kolpackov1-20/+20
2017-03-24Fix recursive locking bugBoris Kolpackov1-2/+7
2017-03-14Preserve failed state even if recipe is overriddenBoris Kolpackov1-2/+3
2017-03-14Implement implied buildfile supportBoris Kolpackov1-6/+16
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-7/+87
2017-03-06Tweak target locking logicBoris Kolpackov1-7/+4
2017-03-02Implement parallel matchBoris Kolpackov1-86/+146
2017-02-14Modify library mate-information protocol not to use lib{} groupBoris Kolpackov1-7/+0
2017-02-13Track variable value modificationsBoris Kolpackov1-1/+1
2017-02-13Implement parallel error propagation, keep_going modeBoris Kolpackov1-1/+1
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-13Tighten target constness furtherBoris Kolpackov1-1/+1
2017-02-13Tighten code that operates during both search/match and executeBoris Kolpackov1-0/+5
2017-02-13Pass const target& to recipesBoris Kolpackov1-1/+1
2017-02-13Introduce target::task_countBoris Kolpackov1-4/+18
2017-02-13Implement target_set locking, including extension updateBoris Kolpackov1-41/+131
2017-02-13Redesign target_set interface in preparation for lockingBoris Kolpackov1-19/+17
2017-02-13Store extension in target map key rather than in targetBoris Kolpackov1-40/+47
This is in preparation for locking its modification/access.
2017-02-13Pass const scope& where modification should not happenBoris Kolpackov1-9/+10
2017-02-13Add notion of load phase generationBoris Kolpackov1-1/+1
2017-02-13Add notion of phase, enforceBoris Kolpackov1-20/+25
2017-02-13Add model mutex, make var_pool const by defaultBoris Kolpackov1-3/+8
2017-01-23Add bunch of missing const'sBoris Kolpackov1-1/+1
2017-01-23Implement automatic loading of directory buildfilesBoris Kolpackov1-15/+104
Now instead of explicitly writing: d = foo/ bar/ ./: $d include $d We can (usually) just write: ./: foo/ bar/
2017-01-19Get rid of extension_poolBoris Kolpackov1-31/+35
2017-01-05Update copyright yearBoris Kolpackov1-1/+1
2016-12-16Move exe{} to build2 core, add fallback extensions (existing files)Boris Kolpackov1-5/+34
2016-11-26Add support for VC15Karen Arutyunov1-2/+2
2016-11-04Change buildfile target type name to build{}Boris Kolpackov1-1/+1
This is consistent with other names where we try to use the extension.
2016-11-04Add target::out_dir() accessorBoris Kolpackov1-1/+1
2016-11-04Implement auxiliary data storage pad in targetBoris Kolpackov1-0/+7
2016-11-04Various design/implementation cleanupsBoris Kolpackov1-10/+15
2016-08-29Implement initial support for library versioningBoris Kolpackov1-7/+10
Currently we only support platform-independent versions that get appended to the library name. The magic incantation is this: lib{foo}: bin.lib.version = @-1.2 This will produce libfoo-1.2.so, libfoo-1.2.dll, etc. In the future we will support things like this: lib{foo}: bin.lib.version = linux@1.2.3 freebsd@1.2 windows@1.2
2016-08-12Implement support for C compilationBoris Kolpackov1-3/+3
We now have two new modules: cc (c-common) and c.
2016-08-05Implement out-qualified target syntax for setting target-specific varsBoris Kolpackov1-1/+1
So now we can do: doc{INSTALL}@./: install = false Note that so far that's the only place where we support out-qualification. Grep for @@ OUT to see other places.
2016-07-28Improve target out directory printingBoris Kolpackov1-1/+13
2016-07-19Add import library target libi{}, make libs{} the DLLBoris Kolpackov1-2/+1
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-15Make .pdb ad hoc group member, installBoris Kolpackov1-20/+34
2016-07-08Move filesystem-related functions from context to new filesystem filesBoris Kolpackov1-1/+1
2016-07-01Port to MSVCKaren Arutyunov1-3/+4
2016-06-26Add notion of ad hoc group, use to handle DLL/import libraryBoris Kolpackov1-19/+45
2016-04-21Move target state reset back to recipe()Boris Kolpackov1-1/+2
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-5/+3
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-19Redesign src/out scopingBoris Kolpackov1-49/+33
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-18/+18
For example: v = [null] v = [string] abc v += ABC # abcABC
2016-04-02Add notion of lookup depth, fix bug with NULL overridesBoris Kolpackov1-20/+23
2016-04-01Get part of variable override implementationBoris Kolpackov1-9/+24