BUG: Make RAISE_SCOPE function work when variable is not defined.
This commit is contained in:
parent
ec05369d04
commit
dcd9a1b59f
|
@ -2853,7 +2853,14 @@ void cmMakefile::RaiseScope(const char *var)
|
||||||
// multiple scopes in this directory?
|
// multiple scopes in this directory?
|
||||||
if (this->DefinitionStack.size() > 1)
|
if (this->DefinitionStack.size() > 1)
|
||||||
{
|
{
|
||||||
this->DefinitionStack[this->DefinitionStack.size()-2][var] = varDef;
|
if(varDef)
|
||||||
|
{
|
||||||
|
this->DefinitionStack[this->DefinitionStack.size()-2][var] = varDef;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
this->DefinitionStack[this->DefinitionStack.size()-2].erase(var);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
// otherwise do the parent
|
// otherwise do the parent
|
||||||
else
|
else
|
||||||
|
@ -2861,7 +2868,14 @@ void cmMakefile::RaiseScope(const char *var)
|
||||||
cmMakefile *parent = this->LocalGenerator->GetParent()->GetMakefile();
|
cmMakefile *parent = this->LocalGenerator->GetParent()->GetMakefile();
|
||||||
if (parent)
|
if (parent)
|
||||||
{
|
{
|
||||||
parent->AddDefinition(var,varDef);
|
if(varDef)
|
||||||
|
{
|
||||||
|
parent->AddDefinition(var,varDef);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
parent->RemoveDefinition(var);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -83,4 +83,31 @@ FUNCTION(ADD_EXECUTABLE exec)
|
||||||
_ADD_EXECUTABLE(mini${exec} ${ARGN})
|
_ADD_EXECUTABLE(mini${exec} ${ARGN})
|
||||||
ENDFUNCTION(ADD_EXECUTABLE)
|
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)
|
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