summaryrefslogtreecommitdiff
path: root/Source/cmGlobalVisualStudioGenerator.cxx
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2007-04-10 13:09:03 -0400
committerBrad King <brad.king@kitware.com>2007-04-10 13:09:03 -0400
commit996f3915938f7c46081f42b5ae1407abd4aede02 (patch)
treeef2111622a4e941e7f0bd7bb6971d7060ff98e9d /Source/cmGlobalVisualStudioGenerator.cxx
parenta017333d9a7c58e573a4a0ba98fed62909832445 (diff)
downloadcmake-996f3915938f7c46081f42b5ae1407abd4aede02.tar.gz
BUG: The ALL_BUILD target should not have any command lines so that it is not always considered out of date. Moved the 'Build all projects' message into the description field instead of an echo in the command field. Moved common implementation of Generate for VS6 and VS7 into the superclass to avoid duplicate code for the ALL_BUILD target. This addresses bug#4556.
Diffstat (limited to 'Source/cmGlobalVisualStudioGenerator.cxx')
-rw-r--r--Source/cmGlobalVisualStudioGenerator.cxx31
1 files changed, 31 insertions, 0 deletions
diff --git a/Source/cmGlobalVisualStudioGenerator.cxx b/Source/cmGlobalVisualStudioGenerator.cxx
index 46ce76ea5c..c5b291a590 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: