diff options
Diffstat (limited to 'Source')
-rw-r--r-- | Source/cmGlobalVisualStudio6Generator.cxx | 25 | ||||
-rw-r--r-- | Source/cmGlobalVisualStudio7Generator.cxx | 28 | ||||
-rw-r--r-- | Source/cmGlobalVisualStudioGenerator.cxx | 31 | ||||
-rw-r--r-- | Source/cmGlobalVisualStudioGenerator.h | 5 |
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(); |