summaryrefslogtreecommitdiffstats
path: root/Source/cmake.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'Source/cmake.cxx')
-rw-r--r--Source/cmake.cxx43
1 files changed, 36 insertions, 7 deletions
diff --git a/Source/cmake.cxx b/Source/cmake.cxx
index cd9d10d..93ca9e3 100644
--- a/Source/cmake.cxx
+++ b/Source/cmake.cxx
@@ -137,12 +137,19 @@ void cmNeedBackwardsCompatibility(const std::string& variable,
#endif
}
+void cmWarnUnusedCliWarning(const std::string& variable,
+ int, void* ctx, const char*, const cmMakefile*)
+{
+ cmake* cm = reinterpret_cast<cmake*>(ctx);
+ cm->MarkCliAsUsed(variable);
+}
+
cmake::cmake()
{
this->Trace = false;
this->WarnUninitialized = false;
this->WarnUnused = false;
- this->DefaultToUsed = true;
+ this->WarnUnusedCli = true;
this->SuppressDevWarnings = false;
this->DoSuppressDevWarnings = false;
this->DebugOutput = false;
@@ -193,6 +200,19 @@ cmake::cmake()
cmake::~cmake()
{
+ if(this->WarnUnusedCli)
+ {
+ std::map<std::string, bool>::const_iterator it;
+ for(it = this->UsedCliVariables.begin(); it != this->UsedCliVariables.end(); ++it)
+ {
+ if(!it->second)
+ {
+ std::string message = "The variable, \"" + it->first + "\", given "
+ "on the command line was not used within the build.";
+ cmSystemTools::Message(message.c_str());
+ }
+ }
+ }
delete this->CacheManager;
delete this->Policies;
if (this->GlobalGenerator)
@@ -370,6 +390,11 @@ bool cmake::SetCacheArgs(const std::vector<std::string>& args)
{
this->CacheManager->AddCacheEntry(var.c_str(), value.c_str(),
"No help, variable specified on the command line.", type);
+ if(this->WarnUnusedCli)
+ {
+ this->VariableWatch->AddWatch(var, cmWarnUnusedCliWarning, this);
+ this->UsedCliVariables[var] = false;
+ }
}
else
{
@@ -621,16 +646,15 @@ void cmake::SetArgs(const std::vector<std::string>& args)
std::cout << "Warn about uninitialized values.\n";
this->SetWarnUninitialized(true);
}
- else if(arg.find("--warn-unused",0) == 0)
+ else if(arg.find("--warn-unused-vars",0) == 0)
{
- std::cout << "Finding unused command line variables.\n";
+ std::cout << "Finding unused variables.\n";
this->SetWarnUnused(true);
}
- else if(arg.find("--warn-unused-all",0) == 0)
+ else if(arg.find("--warn-unused-cli",0) == 0)
{
- std::cout << "Finding unused variables.\n";
- this->SetWarnUnused(true);
- this->SetDefaultToUsed(false);
+ std::cout << "Finding unused variables given on the command line.\n";
+ this->SetWarnUnusedCli(true);
}
else if(arg.find("-G",0) == 0)
{
@@ -2836,6 +2860,11 @@ const char* cmake::GetCPackCommand()
return this->CPackCommand.c_str();
}
+void cmake::MarkCliAsUsed(const std::string& variable)
+{
+ this->UsedCliVariables[variable] = true;
+}
+
void cmake::GenerateGraphViz(const char* fileName) const
{
cmGeneratedFileStream str(fileName);