ENH: Improve dynamic variable scope implementation
Previously each new variable scope (subdirectory or function call) in the CMake language created a complete copy of the key->value definition map. This avoids the copy using transitive lookups up the scope stack. Results of queries answered by parents are stored locally to maintain locality of reference. The class cmDefinitions replaces cmMakefile::DefinitionsMap, and is aware of its enclosing scope. Each scope stores only the definitions set (or unset!) inside it relative to the enclosing scope.
Showing
- Source/CMakeLists.txt 2 additions, 0 deletionsSource/CMakeLists.txt
- Source/cmDefinitions.cxx 167 additions, 0 deletionsSource/cmDefinitions.cxx
- Source/cmDefinitions.h 88 additions, 0 deletionsSource/cmDefinitions.h
- Source/cmMakefile.cxx 41 additions, 91 deletionsSource/cmMakefile.cxx
- Source/cmMakefile.h 2 additions, 4 deletionsSource/cmMakefile.h
- bootstrap 1 addition, 0 deletionsbootstrap
Loading
Please register or sign in to comment