|
|
@@ -308,20 +308,6 @@ void cmGlobalVisualStudio7Generator::WriteTargetsToSolution(
|
|
|
cmGlobalGenerator::TargetDependSet& originalTargets
|
|
|
)
|
|
|
{
|
|
|
- // Create a map of project that should only show up once
|
|
|
- // in a project
|
|
|
- const char* onlyOnceNames[] =
|
|
|
- {"INCLUDE_EXTERNAL_MSPROJECT","CMAKE_CHECK_BUILD_SYSTEM_TARGET",
|
|
|
- "INSTALL", "RUN_TESTS", "EDIT_CACHE", "REBUILD_CACHE", "PACKAGE", 0};
|
|
|
- std::map<cmStdString, int> onlyOnceMap;
|
|
|
- int i =0;
|
|
|
- for(const char* name = onlyOnceNames[i];
|
|
|
- name != 0; name = onlyOnceNames[++i])
|
|
|
- {
|
|
|
- onlyOnceMap[name] = 0;
|
|
|
- }
|
|
|
- // add the CMAKE_CHECK_BUILD_SYSTEM_TARGET
|
|
|
- onlyOnceMap[CMAKE_CHECK_BUILD_SYSTEM_TARGET] = 0;
|
|
|
std::string rootdir = root->GetMakefile()->GetStartOutputDirectory();
|
|
|
rootdir += "/";
|
|
|
for(cmGlobalGenerator::TargetDependSet::iterator tt =
|
|
|
@@ -343,26 +329,21 @@ void cmGlobalVisualStudio7Generator::WriteTargetsToSolution(
|
|
|
const cmCustomCommandLines& cmds = cc.GetCommandLines();
|
|
|
std::string project = cmds[0][0];
|
|
|
std::string location = cmds[0][1];
|
|
|
- std::cout << "About to call WriteExternalProject " << this->GetName() << "\n";
|
|
|
this->WriteExternalProject(fout, project.c_str(),
|
|
|
location.c_str(), cc.GetDepends());
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
- // if the target is an onlyOnceNames do it once
|
|
|
- std::map<cmStdString, int>::iterator o =
|
|
|
- onlyOnceMap.find(target->GetName());
|
|
|
bool skip = false;
|
|
|
- if(o != onlyOnceMap.end())
|
|
|
+ // if it is a global target or the check build system 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))
|
|
|
{
|
|
|
- if(o->second > 0)
|
|
|
+ if(target->GetMakefile() != root->GetMakefile())
|
|
|
{
|
|
|
skip = true;
|
|
|
}
|
|
|
- else
|
|
|
- {
|
|
|
- o->second++;
|
|
|
- }
|
|
|
}
|
|
|
// if not skipping the project then write it into the
|
|
|
// solution
|