BUG: Make RAISE_SCOPE function work when variable is not defined.
This commit is contained in:
parent
ec05369d04
commit
dcd9a1b59f
|
@ -2852,17 +2852,31 @@ void cmMakefile::RaiseScope(const char *var)
|
|||
|
||||
// multiple scopes in this directory?
|
||||
if (this->DefinitionStack.size() > 1)
|
||||
{
|
||||
if(varDef)
|
||||
{
|
||||
this->DefinitionStack[this->DefinitionStack.size()-2][var] = varDef;
|
||||
}
|
||||
else
|
||||
{
|
||||
this->DefinitionStack[this->DefinitionStack.size()-2].erase(var);
|
||||
}
|
||||
}
|
||||
// otherwise do the parent
|
||||
else
|
||||
{
|
||||
cmMakefile *parent = this->LocalGenerator->GetParent()->GetMakefile();
|
||||
if (parent)
|
||||
{
|
||||
if(varDef)
|
||||
{
|
||||
parent->AddDefinition(var,varDef);
|
||||
}
|
||||
else
|
||||
{
|
||||
parent->RemoveDefinition(var);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -83,4 +83,31 @@ FUNCTION(ADD_EXECUTABLE exec)
|
|||
_ADD_EXECUTABLE(mini${exec} ${ARGN})
|
||||
ENDFUNCTION(ADD_EXECUTABLE)
|
||||
|
||||
# var undef case
|
||||
FUNCTION(undef_var m)
|
||||
SET(${m})
|
||||
RAISE_SCOPE(${m})
|
||||
ENDFUNCTION(undef_var)
|
||||
SET(FUNCTION_UNDEFINED 1)
|
||||
undef_var(FUNCTION_UNDEFINED)
|
||||
IF(DEFINED FUNCTION_UNDEFINED)
|
||||
FAILED("Function Undefine Test" "(${FUNCTION_UNDEFINED})")
|
||||
ELSE(DEFINED FUNCTION_UNDEFINED)
|
||||
PASS("Function Undefine Test" "(${FUNCTION_UNDEFINED})")
|
||||
ENDIF(DEFINED FUNCTION_UNDEFINED)
|
||||
|
||||
# Subdirectory scope raise.
|
||||
SET(SUBDIR_UNDEFINED 1)
|
||||
ADD_SUBDIRECTORY(SubDirScope)
|
||||
IF(DEFINED SUBDIR_UNDEFINED)
|
||||
FAILED("Subdir Undefine Test" "(${SUBDIR_UNDEFINED})")
|
||||
ELSE(DEFINED SUBDIR_UNDEFINED)
|
||||
PASS("Subdir Undefine Test" "(${SUBDIR_UNDEFINED})")
|
||||
ENDIF(DEFINED SUBDIR_UNDEFINED)
|
||||
IF(DEFINED SUBDIR_DEFINED)
|
||||
PASS("Subdir Define Test" "(${SUBDIR_DEFINED})")
|
||||
ELSE(DEFINED SUBDIR_DEFINED)
|
||||
FAILED("Subdir Define Test" "(${SUBDIR_DEFINED})")
|
||||
ENDIF(DEFINED SUBDIR_DEFINED)
|
||||
|
||||
ADD_EXECUTABLE(FunctionTest functionTest.c)
|
||||
|
|
|
@ -0,0 +1,3 @@
|
|||
SET(SUBDIR_DEFINED 1)
|
||||
SET(SUBDIR_UNDEFINED)
|
||||
RAISE_SCOPE(SUBDIR_DEFINED SUBDIR_UNDEFINED)
|
Loading…
Reference in New Issue