Only the &quot;special&quot; strings cause the warning. Things like &quot;Y&quot; &quot;y&quot; &quot;N&quot; &quot;n&quot; &quot;true&quot; &quot;0&quot; &quot;1&quot; &quot;on&quot; &quot;off&quot; etc.<br><br>This is correct behavior and what the policy is about. It&#39;s not about strings in general, but about the specific strings that are used for boolean constant aliases...<br>
<br><div class="gmail_extra"><br><br><div class="gmail_quote">On Wed, Dec 12, 2012 at 10:30 AM, Marcel Loose <span dir="ltr">&lt;<a href="mailto:loose@astron.nl" target="_blank">loose@astron.nl</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Hi all,<br>
<br>
I noticed that, when using a string expression in an IF() statement -- which you obviously shouldn&#39;t do, but I was just playing around -- CMake sometimes generates a developer warning CMP0012. Whether it does that or not depends on the string your using.<br>

<br>
The following file<br>
<br>
$ cat string_in_conditional.cmake<br>
if(&quot;x&quot;)<br>
  message(STATUS &quot;\&quot;x\&quot; evaluate to TRUE&quot;)<br>
else()<br>
  message(STATUS &quot;\&quot;x\&quot; evaluate to FALSE&quot;)<br>
endif()<br>
if(&quot;y&quot;)<br>
  message(STATUS &quot;\&quot;y\&quot; evaluate to TRUE&quot;)<br>
else()<br>
  message(STATUS &quot;\&quot;y\&quot; evaluate to FALSE&quot;)<br>
endif()<br>
<br>
produces the following output when run with cmake 2.8.9<br>
<br>
$ cmake -P string_in_conditional.cmake<br>
-- &quot;x&quot; evaluate to FALSE<br>
CMake Warning (dev) at string_in_conditional.cmake:6 (if):<br>
  given arguments:<br>
<br>
    &quot;y&quot;<br>
<br>
  An argument named &quot;y&quot; appears in a conditional statement.  Policy CMP0012<br>
  is not set: if() recognizes numbers and boolean constants.  Run &quot;cmake<br>
  --help-policy CMP0012&quot; for policy details.  Use the cmake_policy command to<br>
  set the policy and suppress this warning.<br>
This warning is for project developers.  Use -Wno-dev to suppress it.<br>
<br>
-- &quot;y&quot; evaluate to FALSE<br>
<br>
I.e., it doesn&#39;t produce a warning when using &quot;x&quot; in an if() statement, but it does when using &quot;y&quot;.<br>
<br>
<br>
Best regards,<br>
Marcel Loose.<br>
<br>
<br>--<br>
<br>
Powered by <a href="http://www.kitware.com" target="_blank">www.kitware.com</a><br>
<br>
Visit other Kitware open-source projects at <a href="http://www.kitware.com/opensource/opensource.html" target="_blank">http://www.kitware.com/opensource/opensource.html</a><br>
<br>
Please keep messages on-topic and check the CMake FAQ at: <a href="http://www.cmake.org/Wiki/CMake_FAQ" target="_blank">http://www.cmake.org/Wiki/CMake_FAQ</a><br>
<br>
Follow this link to subscribe/unsubscribe:<br>
<a href="http://www.cmake.org/mailman/listinfo/cmake" target="_blank">http://www.cmake.org/mailman/listinfo/cmake</a><br></blockquote></div><br></div>