diff options
Diffstat (limited to 'Source/cmPolicies.cxx')
-rw-r--r-- | Source/cmPolicies.cxx | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/Source/cmPolicies.cxx b/Source/cmPolicies.cxx index 576ccd7..95bf972 100644 --- a/Source/cmPolicies.cxx +++ b/Source/cmPolicies.cxx @@ -399,6 +399,37 @@ cmPolicies::cmPolicies() "The OLD behavior for this policy is to silently ignore the problem. " "The NEW behavior for this policy is to report an error.", 2,7,20090902, cmPolicies::WARN); + + this->DefinePolicy( + CMP0015, "CMP0015", + "The set() CACHE mode and option() command make the cache value visible.", + "In CMake 2.6 and below the CACHE mode of the set() command and the " + "option() command did not expose the value from the named cache entry " + "if it was already set both in the cache and as a local variable. " + "This led to subtle differences between first and later configurations " + "because a conflicting local variable would be overridden only when the " + "cache value was first created. " + "For example, the code\n" + " set(x 1)\n" + " set(before ${x})\n" + " set(x 2 CACHE STRING \"X\")\n" + " set(after ${x})\n" + " message(STATUS \"${before},${after}\")\n" + "would print \"1,2\" on the first run and \"1,1\" on future runs." + "\n" + "CMake 2.8.0 and above prefer to expose the cache value in all cases by " + "removing the local variable definition, but this changes behavior in " + "subtle cases when the local variable has a different value than that " + "exposed from the cache. " + "The example above will always print \"1,2\"." + "\n" + "This policy determines whether the commands should always expose the " + "cache value. " + "The OLD behavior for this policy is to leave conflicting local " + "variable values untouched and hide the true cache value. " + "The NEW behavior for this policy is to always expose the cache value.", + 2,7,20090910, cmPolicies::WARN); + } cmPolicies::~cmPolicies() |