From 48702f8a8d5c44a7b5f5a848ac83efde3edbb469 Mon Sep 17 00:00:00 2001 From: Brad King Date: Fri, 29 Apr 2005 10:11:24 -0400 Subject: [PATCH] COMP: Converting INSTALL->ALL_BUILD dependency implementation to use the AddUtility method on a target. This significantly simplifies the implementation and removes warnings about hiding virtual functions. --- Source/cmGlobalVisualStudio6Generator.cxx | 36 +++++++----------- Source/cmGlobalVisualStudio6Generator.h | 2 +- Source/cmGlobalVisualStudio71Generator.cxx | 28 ++------------ Source/cmGlobalVisualStudio71Generator.h | 4 +- Source/cmGlobalVisualStudio7Generator.cxx | 44 +++++++--------------- Source/cmGlobalVisualStudio7Generator.h | 2 +- 6 files changed, 35 insertions(+), 81 deletions(-) diff --git a/Source/cmGlobalVisualStudio6Generator.cxx b/Source/cmGlobalVisualStudio6Generator.cxx index f89a49c29..6704c7312 100644 --- a/Source/cmGlobalVisualStudio6Generator.cxx +++ b/Source/cmGlobalVisualStudio6Generator.cxx @@ -165,6 +165,17 @@ void cmGlobalVisualStudio6Generator::Generate() AddUtilityCommand("INSTALL", false, no_output, no_depends, cmake_command.c_str(), "-DBUILD_TYPE=$(IntDir)", "-P", "cmake_install.cmake"); + + // Make the INSTALL target depend on ALL_BUILD unless the + // project says to not do so. + const char* noall = + gen[0]->GetMakefile() + ->GetDefinition("CMAKE_SKIP_INSTALL_ALL_DEPENDENCY"); + if(!noall || cmSystemTools::IsOff(noall)) + { + cmTarget* install = gen[0]->GetMakefile()->FindTarget("INSTALL"); + install->AddUtility("ALL_BUILD"); + } } } @@ -267,7 +278,6 @@ void cmGlobalVisualStudio6Generator::WriteDSWFile(std::ostream& fout, if ((l->second.GetType() != cmTarget::INSTALL_FILES) && (l->second.GetType() != cmTarget::INSTALL_PROGRAMS)) { - const char* extra_depend = 0; bool skip = false; // skip ALL_BUILD and RUN_TESTS if they have already been added if(l->first == "ALL_BUILD" ) @@ -291,16 +301,6 @@ void cmGlobalVisualStudio6Generator::WriteDSWFile(std::ostream& fout, { doneInstall = true; } - - // Make the INSTALL target depend on ALL_BUILD unless the - // project says to not do so. - const char* noall = - root->GetMakefile() - ->GetDefinition("CMAKE_SKIP_INSTALL_ALL_DEPENDENCY"); - if(!noall || cmSystemTools::IsOff(noall)) - { - extra_depend = "ALL_BUILD"; - } } if(l->first == "RUN_TESTS") { @@ -315,8 +315,7 @@ void cmGlobalVisualStudio6Generator::WriteDSWFile(std::ostream& fout, } if(!skip) { - this->WriteProject(fout, si->c_str(), dir.c_str(),l->second, - extra_depend); + this->WriteProject(fout, si->c_str(), dir.c_str(),l->second); } ++si; } @@ -366,8 +365,7 @@ void cmGlobalVisualStudio6Generator::OutputDSWFile() void cmGlobalVisualStudio6Generator::WriteProject(std::ostream& fout, const char* dspname, const char* dir, - const cmTarget& target, - const char* extra_depend) + const cmTarget& target) { fout << "#########################################################" "######################\n\n"; @@ -401,14 +399,6 @@ void cmGlobalVisualStudio6Generator::WriteProject(std::ostream& fout, } } - // Add an extra dependency if specified. - if(extra_depend) - { - fout << "Begin Project Dependency\n"; - fout << "Project_Dep_Name " << extra_depend << "\n"; - fout << "End Project Dependency\n"; - } - std::set::const_iterator i, end; // write utility dependencies. i = target.GetUtilities().begin(); diff --git a/Source/cmGlobalVisualStudio6Generator.h b/Source/cmGlobalVisualStudio6Generator.h index 3ff1141b6..3f0841f14 100644 --- a/Source/cmGlobalVisualStudio6Generator.h +++ b/Source/cmGlobalVisualStudio6Generator.h @@ -79,7 +79,7 @@ private: void WriteDSWHeader(std::ostream& fout); void WriteProject(std::ostream& fout, const char* name, const char* path, - const cmTarget &t, const char* extra_depend); + const cmTarget &t); void WriteExternalProject(std::ostream& fout, const char* name, const char* path, const std::vector& dependencies); diff --git a/Source/cmGlobalVisualStudio71Generator.cxx b/Source/cmGlobalVisualStudio71Generator.cxx index 8d87f2ae5..455ae4aa6 100644 --- a/Source/cmGlobalVisualStudio71Generator.cxx +++ b/Source/cmGlobalVisualStudio71Generator.cxx @@ -130,7 +130,6 @@ void cmGlobalVisualStudio71Generator::WriteSLNFile(std::ostream& fout, if ((l->second.GetType() != cmTarget::INSTALL_FILES) && (l->second.GetType() != cmTarget::INSTALL_PROGRAMS)) { - const char* extra_depend = 0; bool skip = false; if(l->first == "ALL_BUILD" ) { @@ -153,15 +152,6 @@ void cmGlobalVisualStudio71Generator::WriteSLNFile(std::ostream& fout, { doneInstall = true; } - // Make the INSTALL target depend on ALL_BUILD unless the - // project says to not do so. - const char* noall = - root->GetMakefile() - ->GetDefinition("CMAKE_SKIP_INSTALL_ALL_DEPENDENCY"); - if(!noall || cmSystemTools::IsOff(noall)) - { - extra_depend = "ALL_BUILD"; - } } if(l->first == "RUN_TESTS") { @@ -176,8 +166,7 @@ void cmGlobalVisualStudio71Generator::WriteSLNFile(std::ostream& fout, } if(!skip) { - this->WriteProject(fout, si->c_str(), dir.c_str(),l->second, - extra_depend); + this->WriteProject(fout, si->c_str(), dir.c_str(),l->second); } ++si; } @@ -240,8 +229,7 @@ void cmGlobalVisualStudio71Generator::WriteProject(std::ostream& fout, const char* dspname, const char* dir, - const cmTarget& t, - const char* extra_depend) + const cmTarget& t) { std::string d = cmSystemTools::ConvertToOutputPath(dir); fout << "Project(\"{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}\") = \"" @@ -249,7 +237,7 @@ cmGlobalVisualStudio71Generator::WriteProject(std::ostream& fout, << d << "\\" << dspname << ".vcproj\", \"{" << this->GetGUID(dspname) << "}\"\n"; fout << "\tProjectSection(ProjectDependencies) = postProject\n"; - this->WriteProjectDepends(fout, dspname, dir, t, extra_depend); + this->WriteProjectDepends(fout, dspname, dir, t); fout << "\tEndProjectSection\n"; fout <<"EndProject\n"; @@ -265,8 +253,7 @@ cmGlobalVisualStudio71Generator ::WriteProjectDepends(std::ostream& fout, const char* dspname, const char*, - const cmTarget& target, - const char* extra_depend) + const cmTarget& target) { // insert Begin Project Dependency Project_Dep_Name project stuff here if (target.GetType() != cmTarget::STATIC_LIBRARY) @@ -291,13 +278,6 @@ cmGlobalVisualStudio71Generator } } - // Add the extra dependency if requested. - if(extra_depend) - { - fout << "\t\t{" << this->GetGUID(extra_depend) << "} = {" - << this->GetGUID(extra_depend) << "}\n"; - } - std::set::const_iterator i, end; // write utility dependencies. i = target.GetUtilities().begin(); diff --git a/Source/cmGlobalVisualStudio71Generator.h b/Source/cmGlobalVisualStudio71Generator.h index 1ae3fa9dd..a5a47a871 100644 --- a/Source/cmGlobalVisualStudio71Generator.h +++ b/Source/cmGlobalVisualStudio71Generator.h @@ -48,10 +48,10 @@ protected: std::vector& generators); virtual void WriteProject(std::ostream& fout, const char* name, const char* path, - const cmTarget &t, const char* extra_depend); + const cmTarget &t); virtual void WriteProjectDepends(std::ostream& fout, const char* name, const char* path, - const cmTarget &t, const char* extra_depend); + const cmTarget &t); virtual void WriteProjectConfigurations(std::ostream& fout, const char* name, bool in_all); virtual void WriteExternalProject(std::ostream& fout, const char* name, const char* path, const std::vector& depends); diff --git a/Source/cmGlobalVisualStudio7Generator.cxx b/Source/cmGlobalVisualStudio7Generator.cxx index 9b3952e03..7eb127272 100644 --- a/Source/cmGlobalVisualStudio7Generator.cxx +++ b/Source/cmGlobalVisualStudio7Generator.cxx @@ -197,9 +197,20 @@ void cmGlobalVisualStudio7Generator::Generate() AddUtilityCommand("INSTALL", false, no_output, no_depends, cmake_command.c_str(), "-DBUILD_TYPE=$(IntDir)", "-P", "cmake_install.cmake"); + + // Make the INSTALL target depend on ALL_BUILD unless the + // project says to not do so. + const char* noall = + gen[0]->GetMakefile() + ->GetDefinition("CMAKE_SKIP_INSTALL_ALL_DEPENDENCY"); + if(!noall || cmSystemTools::IsOff(noall)) + { + cmTarget* install = gen[0]->GetMakefile()->FindTarget("INSTALL"); + install->AddUtility("ALL_BUILD"); + } } } - + // add the Run Tests command this->SetupTests(); @@ -432,21 +443,7 @@ void cmGlobalVisualStudio7Generator::WriteSLNFile(std::ostream& fout, else if ((l->second.GetType() != cmTarget::INSTALL_FILES) && (l->second.GetType() != cmTarget::INSTALL_PROGRAMS)) { - // Make the INSTALL target depend on ALL_BUILD unless the - // project says to not do so. - const char* extra_depend = 0; - if(l->first == "INSTALL") - { - const char* noall = - root->GetMakefile() - ->GetDefinition("CMAKE_SKIP_INSTALL_ALL_DEPENDENCY"); - if(!noall || cmSystemTools::IsOff(noall)) - { - extra_depend = "ALL_BUILD"; - } - } - this->WriteProjectDepends(fout, si->c_str(), dir.c_str(), l->second, - extra_depend); + this->WriteProjectDepends(fout, si->c_str(), dir.c_str(), l->second); ++si; } } @@ -517,8 +514,7 @@ cmGlobalVisualStudio7Generator ::WriteProjectDepends(std::ostream& fout, const char* dspname, const char*, - const cmTarget& target, - const char* extra_depend) + const cmTarget& target) { int depcount = 0; // insert Begin Project Dependency Project_Dep_Name project stuff here @@ -555,18 +551,6 @@ cmGlobalVisualStudio7Generator } } - // Add the extra dependency if requested. - if(extra_depend) - { - std::string guid = this->GetGUID(extra_depend); - if(!guid.empty()) - { - fout << "\t\t{" << this->GetGUID(dspname) << "}." << depcount << " = {" - << guid << "}\n"; - depcount++; - } - } - std::set::const_iterator i, end; // write utility dependencies. i = target.GetUtilities().begin(); diff --git a/Source/cmGlobalVisualStudio7Generator.h b/Source/cmGlobalVisualStudio7Generator.h index 7330a5fb2..f735dc749 100644 --- a/Source/cmGlobalVisualStudio7Generator.h +++ b/Source/cmGlobalVisualStudio7Generator.h @@ -89,7 +89,7 @@ protected: const cmTarget &t); virtual void WriteProjectDepends(std::ostream& fout, const char* name, const char* path, - const cmTarget &t, const char* extra_depend); + const cmTarget &t); virtual void WriteProjectConfigurations(std::ostream& fout, const char* name, bool in_all); virtual void WriteSLNFooter(std::ostream& fout); virtual void WriteSLNHeader(std::ostream& fout);