|
@@ -1561,7 +1561,8 @@ void cmMakefile::AddDefinition(const char* name, const char* value)
|
|
|
|
|
|
|
|
void cmMakefile::AddCacheDefinition(const char* name, const char* value,
|
|
void cmMakefile::AddCacheDefinition(const char* name, const char* value,
|
|
|
const char* doc,
|
|
const char* doc,
|
|
|
- cmCacheManager::CacheEntryType type)
|
|
|
|
|
|
|
+ cmCacheManager::CacheEntryType type,
|
|
|
|
|
+ bool force)
|
|
|
{
|
|
{
|
|
|
const char* val = value;
|
|
const char* val = value;
|
|
|
cmCacheManager::CacheIterator it =
|
|
cmCacheManager::CacheIterator it =
|
|
@@ -1569,7 +1570,12 @@ void cmMakefile::AddCacheDefinition(const char* name, const char* value,
|
|
|
if(!it.IsAtEnd() && (it.GetType() == cmCacheManager::UNINITIALIZED) &&
|
|
if(!it.IsAtEnd() && (it.GetType() == cmCacheManager::UNINITIALIZED) &&
|
|
|
it.Initialized())
|
|
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 )
|
|
if ( type == cmCacheManager::PATH || type == cmCacheManager::FILEPATH )
|
|
|
{
|
|
{
|
|
|
std::vector<std::string>::size_type cc;
|
|
std::vector<std::string>::size_type cc;
|