diff options
Diffstat (limited to 'Source')
-rw-r--r-- | Source/cmGlobalVisualStudio71Generator.cxx | 6 | ||||
-rw-r--r-- | Source/cmLocalVisualStudio7Generator.cxx | 11 |
2 files changed, 13 insertions, 4 deletions
diff --git a/Source/cmGlobalVisualStudio71Generator.cxx b/Source/cmGlobalVisualStudio71Generator.cxx index bfcbe8c..5d3c19d 100644 --- a/Source/cmGlobalVisualStudio71Generator.cxx +++ b/Source/cmGlobalVisualStudio71Generator.cxx @@ -80,7 +80,7 @@ void cmGlobalVisualStudio71Generator::WriteSLNFile(std::ostream& fout, cmTargets &tgts = generators[i]->GetMakefile()->GetTargets(); cmTargets::iterator l = tgts.begin(); for(std::vector<std::string>::iterator si = dspnames.begin(); - l != tgts.end(); ++l) + l != tgts.end() && si != dspnames.end(); ++l) { // special handling for the current makefile if(mf == generators[0]->GetMakefile()) @@ -118,7 +118,7 @@ void cmGlobalVisualStudio71Generator::WriteSLNFile(std::ostream& fout, // Write the project into the SLN file if (strncmp(l->first.c_str(), "INCLUDE_EXTERNAL_MSPROJECT", 26) == 0) { - cmCustomCommand cc = l->second.GetPreLinkCommands()[0]; + cmCustomCommand cc = l->second.GetPostBuildCommands()[0]; // dodgy use of the cmCustomCommand's members to store the // arguments from the INCLUDE_EXTERNAL_MSPROJECT command @@ -202,7 +202,7 @@ void cmGlobalVisualStudio71Generator::WriteSLNFile(std::ostream& fout, cmTargets::iterator l = tgts.begin(); std::string dir = mf->GetStartDirectory(); for(std::vector<std::string>::iterator si = dspnames.begin(); - l != tgts.end(); ++l) + l != tgts.end() && si != dspnames.end(); ++l) { if ((l->second.GetType() != cmTarget::INSTALL_FILES) && (l->second.GetType() != cmTarget::INSTALL_PROGRAMS)) diff --git a/Source/cmLocalVisualStudio7Generator.cxx b/Source/cmLocalVisualStudio7Generator.cxx index 6a6bcd1..bd17fd8 100644 --- a/Source/cmLocalVisualStudio7Generator.cxx +++ b/Source/cmLocalVisualStudio7Generator.cxx @@ -1238,7 +1238,16 @@ void cmLocalVisualStudio7Generator::ConfigureFinalPass() static_cast<cmGlobalVisualStudio7Generator *>(m_GlobalGenerator); for(cmTargets::iterator l = tgts.begin(); l != tgts.end(); l++) { - gg->CreateGUID(l->first.c_str()); + if (strncmp(l->first.c_str(), "INCLUDE_EXTERNAL_MSPROJECT", 26) == 0) + { + cmCustomCommand cc = l->second.GetPostBuildCommands()[0]; + std::vector<std::string> stuff = cc.GetDepends(); + gg->CreateGUID(stuff[0].c_str()); + } + else + { + gg->CreateGUID(l->first.c_str()); + } } } |