set: Handle value-less PARENT_SCOPE explicitly

The code "set(VAR PARENT_SCOPE)" unsets VAR in the parent scope.
Implement this case explicitly next to where "set(VAR)" is explicitly
handled to unset VAR in the current scope.
This commit is contained in:
Daniele E. Domenichelli 2013-11-13 08:59:26 +01:00 committed by Brad King
parent 706aab0418
commit 20afbd5e03
1 changed files with 8 additions and 0 deletions

View File

@ -62,9 +62,17 @@ bool cmSetCommand
this->Makefile->RemoveDefinition(args[0].c_str());
return true;
}
// SET (VAR PARENT_SCOPE) // Removes the definition of VAR
// in the parent scope.
else if (args.size() == 2 && args[args.size()-1] == "PARENT_SCOPE")
{
this->Makefile->RaiseScope(variable, 0);
return true;
}
// here are the remaining options
// SET (VAR value )
// SET (VAR value PARENT_SCOPE)
// SET (VAR CACHE TYPE "doc String" [FORCE])
// SET (VAR value CACHE TYPE "doc string" [FORCE])
std::string value; // optional