aboutsummaryrefslogtreecommitdiff
path: root/build2/scope.cxx
AgeCommit message (Collapse)AuthorFilesLines
2017-08-05Minor changesBoris Kolpackov1-18/+24
2017-05-01Add hxx extension for headersKaren Arutyunov1-3/+3
2017-04-19Fix typification bug in variable_cacheBoris Kolpackov1-2/+4
2017-02-13Use variable_cache for target type/pattern-specific prepend/appendBoris Kolpackov1-38/+46
2017-02-13Add MT-safe variable_cache, use for variable overridesBoris Kolpackov1-47/+48
2017-02-13Some ground work for proper variable cache implementationBoris Kolpackov1-3/+10
2017-02-13Track variable value modificationsBoris Kolpackov1-1/+1
2017-02-13Store extension in target map key rather than in targetBoris Kolpackov1-3/+3
This is in preparation for locking its modification/access.
2017-02-13Pass const scope& where modification should not happenBoris Kolpackov1-2/+7
2017-02-13Add global flag to variable_mapBoris Kolpackov1-1/+1
2017-01-19Get rid of extension_poolBoris Kolpackov1-5/+5
2017-01-05Update copyright yearBoris Kolpackov1-1/+1
2016-11-26Add support for VC15Karen Arutyunov1-1/+1
2016-11-04Minor dependency cleanupBoris Kolpackov1-1/+2
2016-09-02Treat trailing dot as specified but empty extensionBoris Kolpackov1-3/+6
Of course now there is no way to specify a name that really has a trailing dot.
2016-08-30Add support for target visibility, use for dist, test, installBoris Kolpackov1-1/+9
This means we can no longer write: install = false Now it should be: *: install = false
2016-07-16Add support for prepend/append in target type/pattern-specific varsBoris Kolpackov1-14/+106
Semantically, these are similar to variable overrides and are essentially treated as "templates" that are applied on lookup to the "stem" value that is specific to the target type/name. For example: x = [string] a file{f*}: x =+ b sub/: { file{*}: x += c print $(file{foo}:x) # abc print $(file{bar}:x) # ac }
2016-07-01Port to MSVCKaren Arutyunov1-1/+3
2016-06-26Add notion of ad hoc group, use to handle DLL/import libraryBoris Kolpackov1-0/+68
2016-04-25Suppress Clang warningBoris Kolpackov1-1/+1
2016-04-19Redesign src/out scopingBoris Kolpackov1-107/+54
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-18Add support for using value attributes in eval contextBoris Kolpackov1-3/+3
For example: if ($x == [null]) Or: if ([uint64] 01 == [uint64] 1)
2016-04-11Cleanup find_override() implementationBoris Kolpackov1-69/+91
2016-04-11Redo config inheritance logicBoris Kolpackov1-1/+1
2016-04-11New configuration logic, iteration 1Boris Kolpackov1-4/+12
2016-04-09Tweak override logic WRT location of overridden valueBoris Kolpackov1-22/+44
2016-04-06Test and fix override logicBoris Kolpackov1-44/+85
2016-04-05Fix bug in variable override codeBoris Kolpackov1-1/+1
2016-04-04Implement value typing, null support via value attributesBoris Kolpackov1-6/+9
For example: v = [null] v = [string] abc v += ABC # abcABC
2016-04-02Improve override cache typing to handle value-typed stemsBoris Kolpackov1-4/+11
2016-04-02Add notion of lookup depth, fix bug with NULL overridesBoris Kolpackov1-31/+66
2016-04-01Get part of variable override implementationBoris Kolpackov1-3/+211
2016-03-31Clean up variable lookup interfacesBoris Kolpackov1-9/+18
2016-01-09Update copyright yearBoris Kolpackov1-1/+1
2016-01-05Rename build directory/namespace to build2Boris Kolpackov1-0/+317