summaryrefslogtreecommitdiffstats
path: root/Source
diff options
context:
space:
mode:
Diffstat (limited to 'Source')
-rw-r--r--Source/cmGlobalVisualStudio71Generator.cxx6
-rw-r--r--Source/cmLocalVisualStudio7Generator.cxx11
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());
+ }
}
}