summaryrefslogtreecommitdiffstats
path: root/Source/cmDSWMakefile.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'Source/cmDSWMakefile.cxx')
-rw-r--r--Source/cmDSWMakefile.cxx15
1 files changed, 12 insertions, 3 deletions
diff --git a/Source/cmDSWMakefile.cxx b/Source/cmDSWMakefile.cxx
index cd3feb7..0823869 100644
--- a/Source/cmDSWMakefile.cxx
+++ b/Source/cmDSWMakefile.cxx
@@ -96,7 +96,6 @@ void cmDSWMakefile::WriteDSWFile(std::ostream& fout)
// add a special target that depends on ALL projects for easy build
// of Debug only
m_Makefile->AddUtilityCommand("ALL_BUILD", "echo \"Build all projects\"", false);
-
m_Makefile->FindSubDirectoryCMakeListsFiles(allListFiles);
// For each cmMakefile, create a DSP for it, and
// add it to this DSW file
@@ -104,8 +103,18 @@ void cmDSWMakefile::WriteDSWFile(std::ostream& fout)
k != allListFiles.end(); ++k)
{
cmMakefile* mf = *k;
- // Create an MS generator with DSW off, so it only creates dsp files
- cmMSProjectGenerator* pg = new cmMSProjectGenerator;
+ cmMSProjectGenerator* pg = 0;
+ // if not this makefile, then create a new generator
+ if(m_Makefile != mf)
+ {
+ // Create an MS generator with DSW off, so it only creates dsp files
+ pg = new cmMSProjectGenerator;
+ }
+ else
+ {
+ pg = (cmMSProjectGenerator*)m_Makefile->GetMakefileGenerator();
+ }
+ // make sure the generator is building dsp files
pg->BuildDSWOff();
mf->SetMakefileGenerator(pg);
mf->GenerateMakefile();