Merge topic 'dev/CMP0053-variable_watch'
9ba91463
tests: test CMP0053 in WARN mode when watching variables
This commit is contained in:
commit
4a67e9cd41
|
@ -103,6 +103,7 @@ cmMakefile::cmMakefile(): Internal(new Internals)
|
|||
this->GeneratingBuildSystem = false;
|
||||
|
||||
this->NumLastMatches = 0;
|
||||
this->SuppressWatches = false;
|
||||
}
|
||||
|
||||
cmMakefile::cmMakefile(const cmMakefile& mf): Internal(new Internals)
|
||||
|
@ -153,6 +154,7 @@ cmMakefile::cmMakefile(const cmMakefile& mf): Internal(new Internals)
|
|||
this->OutputToSource = mf.OutputToSource;
|
||||
|
||||
this->NumLastMatches = mf.NumLastMatches;
|
||||
this->SuppressWatches = mf.SuppressWatches;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
|
@ -2463,7 +2465,7 @@ const char* cmMakefile::GetDefinition(const std::string& name) const
|
|||
}
|
||||
#ifdef CMAKE_BUILD_WITH_CMAKE
|
||||
cmVariableWatch* vv = this->GetVariableWatch();
|
||||
if ( vv )
|
||||
if ( vv && !this->SuppressWatches )
|
||||
{
|
||||
if ( def )
|
||||
{
|
||||
|
@ -2559,10 +2561,14 @@ const char *cmMakefile::ExpandVariablesInString(std::string& source,
|
|||
original = source;
|
||||
newResult = source;
|
||||
compareResults = true;
|
||||
// Suppress variable watches to avoid calling hooks twice. Suppress new
|
||||
// dereferences since the OLD behavior is still what is actually used.
|
||||
this->SuppressWatches = true;
|
||||
newError =
|
||||
ExpandVariablesInStringNew(newErrorstr, newResult, escapeQuotes,
|
||||
noEscapes, atOnly, filename, line,
|
||||
removeEmpty, replaceAt);
|
||||
this->SuppressWatches = false;
|
||||
}
|
||||
case cmPolicies::OLD:
|
||||
mtype = ExpandVariablesInStringOld(errorstr, source, escapeQuotes,
|
||||
|
|
|
@ -1127,6 +1127,8 @@ private:
|
|||
const std::string& feature) const;
|
||||
bool HaveCxxFeatureAvailable(cmTarget const* target,
|
||||
const std::string& feature) const;
|
||||
|
||||
mutable bool SuppressWatches;
|
||||
};
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
|
|
|
@ -0,0 +1,2 @@
|
|||
^called
|
||||
--><--$
|
|
@ -0,0 +1,8 @@
|
|||
cmake_policy(SET CMP0053 NEW)
|
||||
|
||||
function (watch_callback)
|
||||
message("called")
|
||||
endfunction ()
|
||||
|
||||
variable_watch(test watch_callback)
|
||||
message("-->${test}<--")
|
|
@ -0,0 +1,2 @@
|
|||
^called
|
||||
--><--$
|
|
@ -0,0 +1,8 @@
|
|||
cmake_policy(SET CMP0053 OLD)
|
||||
|
||||
function (watch_callback)
|
||||
message("called")
|
||||
endfunction ()
|
||||
|
||||
variable_watch(test watch_callback)
|
||||
message("-->${test}<--")
|
|
@ -0,0 +1,2 @@
|
|||
^called
|
||||
--><--$
|
|
@ -0,0 +1,6 @@
|
|||
function (watch_callback)
|
||||
message("called")
|
||||
endfunction ()
|
||||
|
||||
variable_watch(test watch_callback)
|
||||
message("-->${test}<--")
|
|
@ -0,0 +1,3 @@
|
|||
cmake_minimum_required(VERSION 3.0)
|
||||
project(${RunCMake_TEST} CXX)
|
||||
include(${RunCMake_TEST}.cmake)
|
|
@ -0,0 +1,5 @@
|
|||
include(RunCMake)
|
||||
|
||||
run_cmake(CMP0053-OLD)
|
||||
run_cmake(CMP0053-NEW)
|
||||
run_cmake(CMP0053-WARN)
|
|
@ -35,6 +35,7 @@ add_RunCMake_test(CMP0046)
|
|||
add_RunCMake_test(CMP0049)
|
||||
add_RunCMake_test(CMP0050)
|
||||
add_RunCMake_test(CMP0051)
|
||||
add_RunCMake_test(CMP0053)
|
||||
add_RunCMake_test(CTest)
|
||||
if(UNIX AND "${CMAKE_GENERATOR}" MATCHES "Unix Makefiles")
|
||||
add_RunCMake_test(CompilerChange)
|
||||
|
|
Loading…
Reference in New Issue