summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Source/cmGlobalVisualStudio6Generator.cxx25
-rw-r--r--Source/cmGlobalVisualStudio7Generator.cxx28
-rw-r--r--Source/cmGlobalVisualStudioGenerator.cxx31
-rw-r--r--Source/cmGlobalVisualStudioGenerator.h5
4 files changed, 40 insertions, 49 deletions
diff --git a/Source/cmGlobalVisualStudio6Generator.cxx b/Source/cmGlobalVisualStudio6Generator.cxx
index fb475c3..3b905c0 100644
--- a/Source/cmGlobalVisualStudio6Generator.cxx
+++ b/Source/cmGlobalVisualStudio6Generator.cxx
@@ -160,30 +160,9 @@ cmLocalGenerator *cmGlobalVisualStudio6Generator::CreateLocalGenerator()
void cmGlobalVisualStudio6Generator::Generate()
{
- // add a special target that depends on ALL projects for easy build
- // of one configuration only.
- std::vector<std::string> no_depends;
- const char* no_working_dir = 0;
- std::map<cmStdString, std::vector<cmLocalGenerator*> >::iterator it;
- for(it = this->ProjectMap.begin(); it!= this->ProjectMap.end(); ++it)
- {
- std::vector<cmLocalGenerator*>& gen = it->second;
- // add the ALL_BUILD to the first local generator of each project
- if(gen.size())
- {
- gen[0]->GetMakefile()->AddUtilityCommand("ALL_BUILD", true,
- no_depends,
- no_working_dir,
- "echo", "Build all projects");
- }
- }
-
- // Fix utility dependencies to avoid linking to libraries.
- this->FixUtilityDepends();
-
// first do the superclass method
- this->cmGlobalGenerator::Generate();
-
+ this->cmGlobalVisualStudioGenerator::Generate();
+
// Now write out the DSW
this->OutputDSWFile();
}
diff --git a/Source/cmGlobalVisualStudio7Generator.cxx b/Source/cmGlobalVisualStudio7Generator.cxx
index cdee3bb..afe96e7 100644
--- a/Source/cmGlobalVisualStudio7Generator.cxx
+++ b/Source/cmGlobalVisualStudio7Generator.cxx
@@ -214,33 +214,9 @@ void cmGlobalVisualStudio7Generator::GenerateConfigurations(cmMakefile* mf)
void cmGlobalVisualStudio7Generator::Generate()
{
- // add a special target that depends on ALL projects for easy build
- // of one configuration only.
- const char* no_working_dir = 0;
- std::vector<std::string> no_depends;
- std::map<cmStdString, std::vector<cmLocalGenerator*> >::iterator it;
- for(it = this->ProjectMap.begin(); it!= this->ProjectMap.end(); ++it)
- {
- std::vector<cmLocalGenerator*>& gen = it->second;
- // add the ALL_BUILD to the first local generator of each project
- if(gen.size())
- {
- gen[0]->GetMakefile()->
- AddUtilityCommand("ALL_BUILD", true, no_depends,
- no_working_dir,
- "echo", "Build all projects");
- std::string cmake_command =
- this->LocalGenerators[0]->GetMakefile()->
- GetRequiredDefinition("CMAKE_COMMAND");
- }
- }
-
- // Fix utility dependencies to avoid linking to libraries.
- this->FixUtilityDepends();
-
// first do the superclass method
- this->cmGlobalGenerator::Generate();
-
+ this->cmGlobalVisualStudioGenerator::Generate();
+
// Now write out the DSW
this->OutputSLNFile();
}
diff --git a/Source/cmGlobalVisualStudioGenerator.cxx b/Source/cmGlobalVisualStudioGenerator.cxx
index 46ce76e..c5b291a 100644
--- a/Source/cmGlobalVisualStudioGenerator.cxx
+++ b/Source/cmGlobalVisualStudioGenerator.cxx
@@ -31,6 +31,37 @@ cmGlobalVisualStudioGenerator::~cmGlobalVisualStudioGenerator()
}
//----------------------------------------------------------------------------
+void cmGlobalVisualStudioGenerator::Generate()
+{
+ // Add a special target that depends on ALL projects for easy build
+ // of one configuration only.
+ const char* no_working_dir = 0;
+ std::vector<std::string> no_depends;
+ cmCustomCommandLines no_commands;
+ std::map<cmStdString, std::vector<cmLocalGenerator*> >::iterator it;
+ for(it = this->ProjectMap.begin(); it!= this->ProjectMap.end(); ++it)
+ {
+ std::vector<cmLocalGenerator*>& gen = it->second;
+ // add the ALL_BUILD to the first local generator of each project
+ if(gen.size())
+ {
+ // Use no actual command lines so that the target itself is not
+ // considered always out of date.
+ gen[0]->GetMakefile()->
+ AddUtilityCommand("ALL_BUILD", true, no_working_dir,
+ no_depends, no_commands, false,
+ "Build all projects");
+ }
+ }
+
+ // Fix utility dependencies to avoid linking to libraries.
+ this->FixUtilityDepends();
+
+ // Run all the local generators.
+ this->cmGlobalGenerator::Generate();
+}
+
+//----------------------------------------------------------------------------
void cmGlobalVisualStudioGenerator::FixUtilityDepends()
{
// For VS versions before 8:
diff --git a/Source/cmGlobalVisualStudioGenerator.h b/Source/cmGlobalVisualStudioGenerator.h
index 5e08443..92acb69 100644
--- a/Source/cmGlobalVisualStudioGenerator.h
+++ b/Source/cmGlobalVisualStudioGenerator.h
@@ -31,6 +31,11 @@ public:
cmGlobalVisualStudioGenerator();
virtual ~cmGlobalVisualStudioGenerator();
+ /**
+ * Basic generate implementation for all VS generators.
+ */
+ virtual void Generate();
+
protected:
virtual void CreateGUID(const char*) {}
virtual void FixUtilityDepends();