BUG: fix issue with -D and cache force

This commit is contained in:
Bill Hoffman 2008-11-21 16:32:39 -05:00
parent 46b9a884ac
commit 0c24570ee4
3 changed files with 11 additions and 4 deletions

View File

@ -1561,7 +1561,8 @@ void cmMakefile::AddDefinition(const char* name, const char* value)
void cmMakefile::AddCacheDefinition(const char* name, const char* value,
const char* doc,
cmCacheManager::CacheEntryType type)
cmCacheManager::CacheEntryType type,
bool force)
{
const char* val = value;
cmCacheManager::CacheIterator it =
@ -1569,7 +1570,12 @@ void cmMakefile::AddCacheDefinition(const char* name, const char* value,
if(!it.IsAtEnd() && (it.GetType() == cmCacheManager::UNINITIALIZED) &&
it.Initialized())
{
val = it.GetValue();
// if this is not a force, then use the value from the cache
// if it is a force, then use the value being passed in
if(!force)
{
val = it.GetValue();
}
if ( type == cmCacheManager::PATH || type == cmCacheManager::FILEPATH )
{
std::vector<std::string>::size_type cc;

View File

@ -264,7 +264,8 @@ public:
///! Add a definition to this makefile and the global cmake cache.
void AddCacheDefinition(const char* name, const char* value,
const char* doc,
cmCacheManager::CacheEntryType type);
cmCacheManager::CacheEntryType type,
bool force = false);
/**
* Add bool variable definition to the build.

View File

@ -171,7 +171,7 @@ bool cmSetCommand
this->Makefile->AddCacheDefinition(variable,
value.c_str(),
docstring,
type);
type, force);
}
else
{