diff options
-rw-r--r-- | Source/cmGlobalGenerator.cxx | 12 | ||||
-rw-r--r-- | Source/cmGlobalGenerator.h | 1 | ||||
-rw-r--r-- | Source/cmGlobalVisualStudio6Generator.cxx | 25 | ||||
-rw-r--r-- | Source/cmGlobalVisualStudio7Generator.cxx | 43 | ||||
-rw-r--r-- | Source/cmGlobalVisualStudio7Generator.h | 1 |
5 files changed, 34 insertions, 48 deletions
diff --git a/Source/cmGlobalGenerator.cxx b/Source/cmGlobalGenerator.cxx index 25e7602..4734c50 100644 --- a/Source/cmGlobalGenerator.cxx +++ b/Source/cmGlobalGenerator.cxx @@ -1953,6 +1953,11 @@ void cmGlobalGenerator::GetTargetSets(TargetDependSet& projectTargets, for (cmTargets::iterator l = tgts.begin(); l != tgts.end(); ++l) { cmTarget* target = &l->second; + if(this->IsRootOnlyTarget(target) && + target->GetMakefile() != root->GetMakefile()) + { + continue; + } // put the target in the set of original targets originalTargets.insert(target); // Get the set of targets that depend on target @@ -1962,6 +1967,13 @@ void cmGlobalGenerator::GetTargetSets(TargetDependSet& projectTargets, } //---------------------------------------------------------------------------- +bool cmGlobalGenerator::IsRootOnlyTarget(cmTarget* target) +{ + return (target->GetType() == cmTarget::GLOBAL_TARGET || + strcmp(target->GetName(), this->GetAllTargetName()) == 0); +} + +//---------------------------------------------------------------------------- void cmGlobalGenerator::AddTargetDepends(cmTarget* target, TargetDependSet& projectTargets) { diff --git a/Source/cmGlobalGenerator.h b/Source/cmGlobalGenerator.h index 5a01bd2..c9d0790 100644 --- a/Source/cmGlobalGenerator.h +++ b/Source/cmGlobalGenerator.h @@ -265,6 +265,7 @@ protected: virtual void GetTargetSets(TargetDependSet& projectTargets, TargetDependSet& originalTargets, cmLocalGenerator* root, GeneratorVector const&); + virtual bool IsRootOnlyTarget(cmTarget* target); void AddTargetDepends(cmTarget* target, TargetDependSet& projectTargets); void SetLanguageEnabledFlag(const char* l, cmMakefile* mf); void SetLanguageEnabledMaps(const char* l, cmMakefile* mf); diff --git a/Source/cmGlobalVisualStudio6Generator.cxx b/Source/cmGlobalVisualStudio6Generator.cxx index 9a7c744..783db21 100644 --- a/Source/cmGlobalVisualStudio6Generator.cxx +++ b/Source/cmGlobalVisualStudio6Generator.cxx @@ -213,27 +213,10 @@ void cmGlobalVisualStudio6Generator } else { - bool skip = false; - // if it is a global target or the check build system target - // or the all_build target - // then only use the one that is for the root - if(target->GetType() == cmTarget::GLOBAL_TARGET - || !strcmp(target->GetName(), this->GetAllTargetName())) - { - if(target->GetMakefile() != root->GetMakefile()) - { - skip = true; - } - } - // if not skipping the project then write it into the - // solution - if(!skip) - { - std::string dspname = GetVS6TargetName(target->GetName()); - std::string dir = target->GetMakefile()->GetStartOutputDirectory(); - dir = root->Convert(dir.c_str(), cmLocalGenerator::START_OUTPUT); - this->WriteProject(fout, dspname.c_str(), dir.c_str(), *target); - } + std::string dspname = GetVS6TargetName(target->GetName()); + std::string dir = target->GetMakefile()->GetStartOutputDirectory(); + dir = root->Convert(dir.c_str(), cmLocalGenerator::START_OUTPUT); + this->WriteProject(fout, dspname.c_str(), dir.c_str(), *target); } } diff --git a/Source/cmGlobalVisualStudio7Generator.cxx b/Source/cmGlobalVisualStudio7Generator.cxx index f2f3e98..dbe9aed 100644 --- a/Source/cmGlobalVisualStudio7Generator.cxx +++ b/Source/cmGlobalVisualStudio7Generator.cxx @@ -289,34 +289,16 @@ void cmGlobalVisualStudio7Generator::WriteTargetsToSolution( } else { - bool skip = false; - // if it is a global target or the check build system target - // or the all_build target - // then only use the one that is for the root - if(target->GetType() == cmTarget::GLOBAL_TARGET - || !strcmp(target->GetName(), CMAKE_CHECK_BUILD_SYSTEM_TARGET) - || !strcmp(target->GetName(), this->GetAllTargetName())) + const char *vcprojName = + target->GetProperty("GENERATOR_FILE_NAME"); + if(vcprojName) { - if(target->GetMakefile() != root->GetMakefile()) - { - skip = true; - } - } - // if not skipping the project then write it into the - // solution - if(!skip) - { - const char *vcprojName = - target->GetProperty("GENERATOR_FILE_NAME"); - if(vcprojName) - { - cmMakefile* tmf = target->GetMakefile(); - std::string dir = tmf->GetStartOutputDirectory(); - dir = root->Convert(dir.c_str(), - cmLocalGenerator::START_OUTPUT); - this->WriteProject(fout, vcprojName, dir.c_str(), - *target); - } + cmMakefile* tmf = target->GetMakefile(); + std::string dir = tmf->GetStartOutputDirectory(); + dir = root->Convert(dir.c_str(), + cmLocalGenerator::START_OUTPUT); + this->WriteProject(fout, vcprojName, dir.c_str(), + *target); } } } @@ -633,6 +615,13 @@ cmGlobalVisualStudio7Generator } } +//---------------------------------------------------------------------------- +bool cmGlobalVisualStudio7Generator::IsRootOnlyTarget(cmTarget* target) +{ + return (this->cmGlobalVisualStudioGenerator::IsRootOnlyTarget(target) || + strcmp(target->GetName(), CMAKE_CHECK_BUILD_SYSTEM_TARGET) == 0); +} + bool cmGlobalVisualStudio7Generator::IsPartOfDefaultBuild(const char* project, cmTarget* target) { diff --git a/Source/cmGlobalVisualStudio7Generator.h b/Source/cmGlobalVisualStudio7Generator.h index 363489e..73302bc 100644 --- a/Source/cmGlobalVisualStudio7Generator.h +++ b/Source/cmGlobalVisualStudio7Generator.h @@ -133,6 +133,7 @@ protected: std::string ConvertToSolutionPath(const char* path); + virtual bool IsRootOnlyTarget(cmTarget* target); bool IsPartOfDefaultBuild(const char* project, cmTarget* target); std::vector<std::string> Configurations; |