mirror of
https://github.com/reactos/CMake.git
synced 2025-02-13 08:06:16 +00:00
ERR: Fix problems with OPTION and -D on command line. Fix Bug #408 - Using -D without a type does not always work
This commit is contained in:
parent
b753a6794b
commit
d97e79c971
@ -46,20 +46,29 @@ bool cmOptionCommand::InitialPass(std::vector<std::string> const& args)
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::string initialValue = "Off";
|
||||||
// Now check and see if the value has been stored in the cache
|
// Now check and see if the value has been stored in the cache
|
||||||
// already, if so use that value and don't look for the program
|
// already, if so use that value and don't look for the program
|
||||||
const char* cacheValue
|
cmCacheManager::CacheIterator it =
|
||||||
= m_Makefile->GetDefinition(args[0].c_str());
|
m_Makefile->GetCacheManager()->GetCacheIterator(args[0].c_str());
|
||||||
if(!cacheValue)
|
if(!it.IsAtEnd())
|
||||||
{
|
{
|
||||||
std::string initialValue = "Off";
|
if ( it.GetType() != cmCacheManager::UNINITIALIZED )
|
||||||
if(args.size() == 3)
|
|
||||||
{
|
{
|
||||||
initialValue = args[2];
|
return true;
|
||||||
|
}
|
||||||
|
if ( it.GetValue() )
|
||||||
|
{
|
||||||
|
initialValue = it.GetValue();
|
||||||
}
|
}
|
||||||
m_Makefile->AddCacheDefinition(args[0].c_str(),
|
|
||||||
cmSystemTools::IsOn(initialValue.c_str()),
|
|
||||||
args[1].c_str());
|
|
||||||
}
|
}
|
||||||
|
if(args.size() == 3)
|
||||||
|
{
|
||||||
|
initialValue = args[2];
|
||||||
|
}
|
||||||
|
m_Makefile->AddCacheDefinition(args[0].c_str(),
|
||||||
|
cmSystemTools::IsOn(initialValue.c_str()),
|
||||||
|
args[1].c_str());
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user