|
@@ -343,16 +343,24 @@ bool cmake::SetCacheArgs(const std::vector<std::string>& args)
|
|
|
// The value is transformed if it is a filepath for example, so
|
|
// The value is transformed if it is a filepath for example, so
|
|
|
// we can't compare whether the value is already in the cache until
|
|
// we can't compare whether the value is already in the cache until
|
|
|
// after we call AddCacheEntry.
|
|
// after we call AddCacheEntry.
|
|
|
- const char *cachedValue =
|
|
|
|
|
- this->CacheManager->GetCacheValue(var);
|
|
|
|
|
|
|
+ bool haveValue = false;
|
|
|
|
|
+ std::string cachedValue;
|
|
|
|
|
+ if(this->WarnUnusedCli)
|
|
|
|
|
+ {
|
|
|
|
|
+ if(const char *v = this->CacheManager->GetCacheValue(var))
|
|
|
|
|
+ {
|
|
|
|
|
+ haveValue = true;
|
|
|
|
|
+ cachedValue = v;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
this->CacheManager->AddCacheEntry(var, value.c_str(),
|
|
this->CacheManager->AddCacheEntry(var, value.c_str(),
|
|
|
"No help, variable specified on the command line.", type);
|
|
"No help, variable specified on the command line.", type);
|
|
|
|
|
+
|
|
|
if(this->WarnUnusedCli)
|
|
if(this->WarnUnusedCli)
|
|
|
{
|
|
{
|
|
|
- if (!cachedValue
|
|
|
|
|
- || strcmp(this->CacheManager->GetCacheValue(var),
|
|
|
|
|
- cachedValue) != 0)
|
|
|
|
|
|
|
+ if (!haveValue ||
|
|
|
|
|
+ cachedValue != this->CacheManager->GetCacheValue(var))
|
|
|
{
|
|
{
|
|
|
this->WatchUnusedCli(var);
|
|
this->WatchUnusedCli(var);
|
|
|
}
|
|
}
|