Merge topic 'cleanup-unused-variable-check'

a4335a6 Fix unused cache warning after multiple configure iterations
a75ebe3 Refine unused cache variable warning
This commit is contained in:
Brad King 2011-03-31 13:22:54 -04:00 committed by CMake Topic Stage
commit 0506e37499
4 changed files with 28 additions and 27 deletions

View File

@ -903,8 +903,6 @@ void cmGlobalGenerator::Generate()
}
this->CMakeInstance->UpdateProgress("Generating done", -1);
this->CMakeInstance->RunCheckForUnusedVariables("generation");
}
//----------------------------------------------------------------------------

View File

@ -2346,11 +2346,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)
{
@ -2372,7 +2367,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();
@ -2394,6 +2388,10 @@ int cmake::Generate()
return -1;
}
this->GlobalGenerator->Generate();
if(this->WarnUnusedCli)
{
this->RunCheckForUnusedVariables();
}
if(cmSystemTools::GetErrorOccuredFlag())
{
return -1;
@ -4347,7 +4345,10 @@ void cmake::WatchUnusedCli(const char* var)
{
#ifdef CMAKE_BUILD_WITH_CMAKE
this->VariableWatch->AddWatch(var, cmWarnUnusedCliWarning, this);
this->UsedCliVariables[var] = false;
if(this->UsedCliVariables.find(var) == this->UsedCliVariables.end())
{
this->UsedCliVariables[var] = false;
}
#endif
}
@ -4355,27 +4356,29 @@ void cmake::UnwatchUnusedCli(const char* var)
{
#ifdef CMAKE_BUILD_WITH_CMAKE
this->VariableWatch->RemoveWatch(var, cmWarnUnusedCliWarning);
this->UsedCliVariables[var] = true;
this->UsedCliVariables.erase(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
}

View File

@ -368,8 +368,8 @@ class cmake
void UnwatchUnusedCli(const char* var);
void WatchUnusedCli(const char* var);
void RunCheckForUnusedVariables(const std::string& reason) const;
protected:
void RunCheckForUnusedVariables();
void InitializeProperties();
int HandleDeleteCacheVariables(const char* var);
cmPropertyMap Properties;
@ -467,7 +467,7 @@ private:
bool WarnUnused;
bool WarnUnusedCli;
bool CheckSystemVars;
std::map<std::string, bool> UsedCliVariables;
std::map<cmStdString, bool> UsedCliVariables;
std::string CMakeEditCommand;
std::string CMakeCommand;
std::string CXXEnvironment;

View File

@ -1244,7 +1244,7 @@ ${CMake_BINARY_DIR}/bin/cmake -DVERSION=master -P ${CMake_SOURCE_DIR}/Utilities/
--build-project WarnUnusedCliUnused
--build-options "-DUNUSED_CLI_VARIABLE=Unused")
SET_TESTS_PROPERTIES(WarnUnusedCliUnused PROPERTIES
PASS_REGULAR_EXPRESSION "CMake Warning: The variable, 'UNUSED_CLI_VARIABLE'")
PASS_REGULAR_EXPRESSION "CMake Warning:.*Manually-specified variables were not used by the project:.* UNUSED_CLI_VARIABLE")
LIST(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/WarnUnusedCliUnused")
ADD_TEST(WarnUnusedCliUsed ${CMAKE_CTEST_COMMAND}