diff options
author | Stephen Kelly <steveire@gmail.com> | 2015-09-13 18:36:06 (GMT) |
---|---|---|
committer | Stephen Kelly <steveire@gmail.com> | 2015-09-24 07:39:38 (GMT) |
commit | c5f07e0537f2b671f271ad8ac4b6c0a529cd4beb (patch) | |
tree | 9b33daeb5de77d48df9138a2883290a9c751e4f5 /Source/cmGlobalGenerator.cxx | |
parent | dd408de46b45926f7dfdd27cabb4dce95708d011 (diff) | |
download | CMake-c5f07e0537f2b671f271ad8ac4b6c0a529cd4beb.zip CMake-c5f07e0537f2b671f271ad8ac4b6c0a529cd4beb.tar.gz CMake-c5f07e0537f2b671f271ad8ac4b6c0a529cd4beb.tar.bz2 |
cmGlobalGenerator: Create local generators after all makefiles configured.
Diffstat (limited to 'Source/cmGlobalGenerator.cxx')
-rw-r--r-- | Source/cmGlobalGenerator.cxx | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/Source/cmGlobalGenerator.cxx b/Source/cmGlobalGenerator.cxx index 7552c99..46ef2f3 100644 --- a/Source/cmGlobalGenerator.cxx +++ b/Source/cmGlobalGenerator.cxx @@ -1091,6 +1091,18 @@ void cmGlobalGenerator::ClearEnabledLanguages() return this->CMakeInstance->GetState()->ClearEnabledLanguages(); } +void cmGlobalGenerator::CreateLocalGenerators() +{ + cmDeleteAll(this->LocalGenerators); + this->LocalGenerators.clear(); + this->LocalGenerators.reserve(this->Makefiles.size()); + for (std::vector<cmMakefile*>::const_iterator it = this->Makefiles.begin(); + it != this->Makefiles.end(); ++it) + { + this->LocalGenerators.push_back(this->CreateLocalGenerator(*it)); + } +} + void cmGlobalGenerator::Configure() { this->FirstTimeProgress = 0.0f; @@ -1112,8 +1124,7 @@ void cmGlobalGenerator::Configure() // now do it this->ConfigureDoneCMP0026 = false; dirMf->Configure(); - this->LocalGenerators.insert(this->LocalGenerators.begin(), - this->CreateLocalGenerator(dirMf)); + this->CreateLocalGenerators(); dirMf->EnforceDirectoryLevelRules(); this->ConfigureDoneCMP0026 = true; |