mirror of
https://github.com/reactos/CMake.git
synced 2025-01-27 06:42:32 +00:00
BUG: fix doc string and allow a variable to be promoted from non-cache to cache
This commit is contained in:
parent
cc6d56182d
commit
eb6bba34cd
@ -107,19 +107,21 @@ bool cmSetCommand::InitialPass(std::vector<std::string> const& args)
|
||||
type = cmCacheManager::StringToType(args[cacheStart+1].c_str());
|
||||
docstring = args[cacheStart+2].c_str();
|
||||
}
|
||||
// get the current cache value for the variable
|
||||
const char* cacheValue =
|
||||
m_Makefile->GetDefinition(variable);
|
||||
if(cacheValue)
|
||||
// see if this is already in the cache
|
||||
cmCacheManager::CacheIterator it =
|
||||
m_Makefile->GetCacheManager()->GetCacheIterator(variable);
|
||||
if(!it.IsAtEnd())
|
||||
{
|
||||
// if it is not a cached value, or it is a cached
|
||||
// value that is not internal keep the value found
|
||||
// in the cache
|
||||
// if the set is trying to CACHE the value but the value
|
||||
// is already in the cache and the type is not internal
|
||||
// then leave now without setting any definitions in the cache
|
||||
// or the makefile
|
||||
if(cache && type != cmCacheManager::INTERNAL)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
// if it is meant to be in the cache then define it in the cache
|
||||
if(cache)
|
||||
{
|
||||
|
@ -70,7 +70,8 @@ public:
|
||||
"SET(VAR [VALUE] [CACHE TYPE DOCSTRING])\n"
|
||||
"Within CMAKE sets VAR to the value VALUE. VALUE is expanded before VAR "
|
||||
"is set to it. If CACHE is present, then the VAR is put in the cache."
|
||||
" TYPE and DOCSTRING are required. If TYPE is INTERNAL, then the "
|
||||
" TYPE and DOCSTRING are required. TYPE may be BOOL, PATH, FILEPATH, STRING, INTERNAL, "
|
||||
"or STATIC. If TYPE is INTERNAL, then the "
|
||||
" VALUE is Always written into the cache, replacing any values "
|
||||
"existing in the cache. If it is not a CACHE VAR, then this always "
|
||||
"writes into the current makefile.\n"
|
||||
|
Loading…
x
Reference in New Issue
Block a user