summaryrefslogtreecommitdiff
path: root/Source/cmake.cxx
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2011-03-24 09:24:27 -0400
committerBrad King <brad.king@kitware.com>2011-03-24 09:45:33 -0400
commita75ebe3ea48c957e3e7b8c1438ceb6136595eb61 (patch)
tree946038ca7600d9066fba3d30518a219d9bf4af7c /Source/cmake.cxx
parentd5d661d2b259447edfc89d130878f3a9b2203ea1 (diff)
downloadcmake-a75ebe3ea48c957e3e7b8c1438ceb6136595eb61.tar.gz
Refine unused cache variable warning
List all unused variables in one warning. Cleanup implementation to run the check exactly once at the end of generation.
Diffstat (limited to 'Source/cmake.cxx')
-rw-r--r--Source/cmake.cxx40
1 files changed, 20 insertions, 20 deletions
diff --git a/Source/cmake.cxx b/Source/cmake.cxx
index bab0aaf834..221a2f3baa 100644
--- a/Source/cmake.cxx
+++ b/Source/cmake.cxx
@@ -2310,11 +2310,6 @@ int cmake::Run(const std::vector<std::string>& args, bool noconfigure)
std::string oldstartoutputdir = this->GetStartOutputDirectory();
this->SetStartDirectory(this->GetHomeDirectory());
this->SetStartOutputDirectory(this->GetHomeOutputDirectory());
- const bool warncli = this->WarnUnusedCli;
- if (!this->ScriptMode)
- {
- this->WarnUnusedCli = false;
- }
int ret = this->Configure();
if (ret || this->ScriptMode)
{
@@ -2336,7 +2331,6 @@ int cmake::Run(const std::vector<std::string>& args, bool noconfigure)
#endif
return ret;
}
- this->WarnUnusedCli = warncli;
ret = this->Generate();
std::string message = "Build files have been written to: ";
message += this->GetHomeOutputDirectory();
@@ -2358,6 +2352,10 @@ int cmake::Generate()
return -1;
}
this->GlobalGenerator->Generate();
+ if(this->WarnUnusedCli)
+ {
+ this->RunCheckForUnusedVariables();
+ }
if(cmSystemTools::GetErrorOccuredFlag())
{
return -1;
@@ -4320,23 +4318,25 @@ void cmake::UnwatchUnusedCli(const char* var)
#endif
}
-void cmake::RunCheckForUnusedVariables(const std::string& reason) const
+void cmake::RunCheckForUnusedVariables()
{
#ifdef CMAKE_BUILD_WITH_CMAKE
- if(this->WarnUnusedCli)
+ bool haveUnused = false;
+ cmOStringStream msg;
+ msg << "Manually-specified variables were not used by the project:";
+ for(std::map<cmStdString, bool>::const_iterator
+ it = this->UsedCliVariables.begin();
+ it != this->UsedCliVariables.end(); ++it)
+ {
+ if(!it->second)
{
- std::map<std::string, bool>::const_iterator it;
- for(it = this->UsedCliVariables.begin();
- it != this->UsedCliVariables.end(); ++it)
- {
- if(!it->second)
- {
- std::string message = "CMake Warning: The variable, '" + it->first +
- "', specified manually, was not used during the " + reason +
- ".";
- cmSystemTools::Message(message.c_str());
- }
- }
+ haveUnused = true;
+ msg << "\n " << it->first;
}
+ }
+ if(haveUnused)
+ {
+ this->IssueMessage(cmake::WARNING, msg.str(), cmListFileBacktrace());
+ }
#endif
}