From 2003b4987a92be9c58cfb75c9cccdd39b8ab3c85 Mon Sep 17 00:00:00 2001 From: Andy Cedilnik Date: Fri, 8 Aug 2003 09:26:55 -0400 Subject: [PATCH] ENH: Handle untyped but initialized values for boolean AddCacheDefinition. Closes Bug #118 - Specifying cache entries with -D should not need the type --- Source/cmMakefile.cxx | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/Source/cmMakefile.cxx b/Source/cmMakefile.cxx index 4569ec780..09c475b3f 100644 --- a/Source/cmMakefile.cxx +++ b/Source/cmMakefile.cxx @@ -874,8 +874,16 @@ void cmMakefile::AddDefinition(const char* name, bool value) void cmMakefile::AddCacheDefinition(const char* name, bool value, const char* doc) { - this->GetCacheManager()->AddCacheEntry(name, value, doc); - this->AddDefinition(name, value); + bool val = value; + cmCacheManager::CacheIterator it = + this->GetCacheManager()->GetCacheIterator(name); + if(!it.IsAtEnd() && (it.GetType() == cmCacheManager::UNINITIALIZED) && + it.Initialized()) + { + val = it.GetValueAsBool(); + } + this->GetCacheManager()->AddCacheEntry(name, val, doc); + this->AddDefinition(name, val); } void cmMakefile::RemoveDefinition(const char* name)