aboutsummaryrefslogtreecommitdiff
path: root/build2/scope.cxx
AgeCommit message (Collapse)AuthorFilesLines
2019-01-16Update copyright yearKaren Arutyunov1-1/+1
2019-01-14Diagnose target names with multiple trailing slashes as invalidBoris Kolpackov1-1/+9
2018-11-09Fix bug in command line variable override depth calculationBoris Kolpackov1-7/+11
2018-11-08Fix bug in override logic for command line variable with project visibilityBoris Kolpackov1-5/+11
2018-11-01Add support for rule-specific variables, use to fix cc.type data raceBoris Kolpackov1-8/+14
2018-08-07Add support for default extension specification, trailing dot escapingBoris Kolpackov1-33/+28
For example: cxx{*}: extension = cxx cxx{foo} # foo.cxx cxx{foo.test} # foo.test (probably what we want...) cxx{foo.test...} # foo.test.cxx (... is this) cxx{foo..} # foo. cxx{foo....} # foo.. cxx{foo.....} # error (must come in escape pair)
2018-06-28Add prerequisite variable visibility specification/enforcementBoris Kolpackov1-0/+6
2018-06-12If target type doesn't use extensions, factor it back into nameBoris Kolpackov1-0/+13
2018-05-19Update copyright yearKaren Arutyunov1-1/+1
2018-05-19Support for deriving target type from file name, handle testscript, buildfileBoris Kolpackov1-39/+55
In particular, instead of: exe{test}: test{testscript} We should now write: exe{test}: testscript
2018-05-16Fix uncaught invalid_path exceptionKaren Arutyunov1-2/+10
2018-01-19Remove unused codeBoris Kolpackov1-24/+1
2018-01-18Use prefix_map::find_sup/sub()Boris Kolpackov1-6/+8
2018-01-05Add support for variable aliasesBoris Kolpackov1-7/+11
2017-12-07Distinguish between "fixed" and "default" target extensionsBoris Kolpackov1-24/+40
This fixes wrong merging of, say, file{README} and file{README.MySQL} (in libmysqlclient).
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