aboutsummaryrefslogtreecommitdiff
path: root/build2/scope
AgeCommit message (Collapse)AuthorFilesLines
2017-03-17Implement create meta-operationBoris Kolpackov1-7/+2
2017-03-02Implement parallel matchBoris Kolpackov1-4/+12
2017-02-13Cosmetic changeBoris Kolpackov1-1/+1
2017-02-13Add MT-safe variable_cache, use for variable overridesBoris Kolpackov1-0/+12
2017-02-13Pass const scope& where modification should not happenBoris Kolpackov1-25/+61
2017-02-13Add global flag to variable_mapBoris Kolpackov1-1/+3
2017-02-13Add model mutex, make var_pool const by defaultBoris Kolpackov1-26/+33
2017-01-20Remove prerequisite caching in scopeBoris Kolpackov1-14/+10
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-1/+1
2017-01-05Update copyright yearBoris Kolpackov1-1/+1
2016-11-04Various design/implementation cleanupsBoris Kolpackov1-4/+4
2016-07-28Adjust to new path implementation, use to support reversibilityBoris Kolpackov1-1/+1
2016-07-16Add support for prepend/append in target type/pattern-specific varsBoris Kolpackov1-2/+4
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-06-27Add config.bin.target var/hint, use to decide libso{} install modeBoris Kolpackov1-5/+5
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-0/+14
2016-04-19Redesign src/out scopingBoris Kolpackov1-46/+16
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-11Redo config inheritance logicBoris Kolpackov1-1/+1
2016-04-09Tweak override logic WRT location of overridden valueBoris Kolpackov1-9/+9
2016-04-04Implement value typing, null support via value attributesBoris Kolpackov1-1/+1
For example: v = [null] v = [string] abc v += ABC # abcABC
2016-04-02Add notion of lookup depth, fix bug with NULL overridesBoris Kolpackov1-7/+9
2016-04-01Get part of variable override implementationBoris Kolpackov1-3/+18
2016-03-31Clean up variable lookup interfacesBoris Kolpackov1-22/+23
2016-03-31Set part of variable override implementationBoris Kolpackov1-1/+4
2016-03-28New variable architectureBoris Kolpackov1-4/+1
2016-03-16Cleanup typed variable assignmentBoris Kolpackov1-4/+5
2016-02-12<types>/<utility> scheme cleanupBoris Kolpackov1-4/+3
2016-01-27Extract target from C++ compiler, set as cxx.host.{cpu,vendor,system,version}Boris Kolpackov1-1/+4
2016-01-09Update copyright yearBoris Kolpackov1-1/+1
2016-01-05Rename build directory/namespace to build2Boris Kolpackov1-0/+312