On 12/16/07, <b class="gmail_sendername">Brandon Van Every</b> &lt;<a href="mailto:bvanevery@gmail.com">bvanevery@gmail.com</a>&gt; wrote:<div><span class="gmail_quote"></span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
What&#39;s so great about &quot;n&quot; and &quot;no&quot; ?</blockquote><div><br>Nobody has claimed that they are great...<br><br></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
I&#39;ve never used them.&nbsp;&nbsp;Do we<br>really need to be polluting the interpretation of strings with these<br>values?&nbsp;&nbsp;What current or legacy code is using them heavily?</blockquote><div><br>We cannot know. We can only assume that somebody somewhere is probably using them since they are part of how CMake currently works.
<br></div><br>If you have a suggestion on how to improve things without breaking backwards compatibility, I&#39;m sure we&#39;d all love to hear it. But otherwise, I would strongly suggest using STREQUAL instead of IF(VARIABLE) with any regex result.
<br><br>Instead of...<br>IF(thematch)<br><br>...you should use<br>IF(NOT &quot;${thematch}&quot; STREQUAL &quot;0&quot;)<br><br>I know it&#39;s not as pretty or elegant as the former, but it works always regardless of the contents of thematch. In this particular case, it looks like you are trying to test for 0 or non-0 as the last character of the input and are mad that &quot;n&quot; is the same as &quot;0&quot; in a cmake variable-based IF statement. Is that correct?
<br><br><br>HTH,<br>David<br><br><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">ON and OFF are used in the Options, but why can&#39;t these just be TRUE
<br>and FALSE, so that there&#39;s less variety of how we specify TRUE and<br>FALSE?&nbsp;&nbsp;Alternately, how about defining a boolean storage type to hold<br>options?<br><br>How about a numerical storage type, so that 0 and &quot;0&quot; aren&#39;t the same
<br>thing?&nbsp;&nbsp;And so that we don&#39;t have to type MATH(EXPR var &quot;${var} - 1&quot;),<br>we could just type var = var - 1.&nbsp;&nbsp;The problem with assuming that &quot;0&quot;<br>means FALSE, is it assumes I got my &quot;0&quot; by counting with a MATH
<br>expression.&nbsp;&nbsp;What if I got my &quot;0&quot; by matching with a regex, like a<br>digit of a library version?<br><br>&quot;-NOTFOUND&quot; doesn&#39;t trouble me so much, as it&#39;s unlikely to be<br>accidentally matched in a regex.
<br><br><br>Cheers,<br>Brandon Van Every<br>_______________________________________________<br>CMake mailing list<br><a href="mailto:CMake@cmake.org">CMake@cmake.org</a><br><a href="http://www.cmake.org/mailman/listinfo/cmake">
http://www.cmake.org/mailman/listinfo/cmake</a><br></blockquote></div><br>