aboutsummaryrefslogtreecommitdiff
path: root/build2/target.cxx
AgeCommit message (Collapse)AuthorFilesLines
2017-10-03Adapt to modularization of libbutlKaren Arutyunov1-1/+1
2017-09-01Add support for try_match(), use to handle deleted headersBoris Kolpackov1-8/+15
2017-07-31Experimental (and probably broken) pkg-config generation supportBoris Kolpackov1-20/+0
2017-05-31Adjust extension semantics in file rule to match search_existing_file()Boris Kolpackov1-4/+9
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.