Doh :-)  Thanks for pointing out what should perhaps have been obvious in retrospect.  Cache variables are one of the more confusing areas of cmake.<br><br>--<br>Glenn<br><br><div class="gmail_quote">On 10 October 2011 22:38, Bill Hoffman <span dir="ltr">&lt;<a href="mailto:bill.hoffman@kitware.com">bill.hoffman@kitware.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><div class="im">On 10/10/2011 3:52 PM, Robert Dailey wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Yes, this works perfectly.<br>
<br>
It&#39;s a bit disappointing that cache variables are, for all intents and<br>
purposes, read-only in functions. The property approach is a bit more<br>
verbose but it functions! I think &#39;set&#39; needs a new override<br>
specifically for cases like this. Something similar to &quot;PARENT_SCOPE&quot;,<br>
but something like &quot;CACHE_SCOPE&quot;, that forces CMake to first check for<br>
the existance of a cache variable with that name, and it would take<br>
precedence over any identically named variable in function scope.<br>
<br>
On another note, you&#39;d think this would work too but it doesn&#39;t:<br>
<br>
set( project_count ${new_count} CACHE INTERNAL FORCE )<br>
<br>
</blockquote>
<br></div>
This works:<div class="im"><br>
<br>
set( project_count 0 CACHE INTERNAL &quot;&quot;)<br></div>
function( define_project )<div class="im"><br>
   math( EXPR count &quot;${project_count}+1&quot; )<br></div>
   set( project_count ${count} CACHE INTERNAL &quot;&quot;)<br>
endfunction()<br>
define_project()<br>
message(${project_count})<br>
define_project()<br>
message(${project_count})<br>
define_project()<br>
message(${project_count})<br>
<br>
It prints out<br>
1<br>
2<br>
3<br><font color="#888888">
<br>
-Bill</font><div><div></div><div class="h5"><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/<u></u>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/<u></u>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/<u></u>listinfo/cmake</a><br>
</div></div></blockquote></div><br>