Quoting Brandon Van Every <[EMAIL PROTECTED]>:

On Nov 28, 2007 3:40 AM, Pau Garcia i Quiles <[EMAIL PROTECTED]> wrote:

Do you mean these threads?
http://www.cmake.org/pipermail/cmake/2005-March/006235.html
http://www.cmake.org/pipermail/cmake/2005-June/006725.html

"These are not the threads you're looking for."

If you are talking about a different thread, could you
please tell me which one?

"lexical scoping"
http://public.kitware.com/pipermail/cmake/2007-November/017385.html

Must say, I couldn't find this by using the Kitware mailing list
search engine on the keywords "lexical scoping."  Most baffling since
it's the subject line.

Wow. I did not read a single message in that thread. I would have suggested inlining the scope of the variable in the variable name, like Ruby does, instead of SET, SET(LOCAL ...), VARIABLE_SCOPE, etc:

* variable => local variable
* @variable => instance variable
* @@variable => class variable
* $variable => global variable
* VARIABLE => constant

Of course it would be different in CMake. Here comes a quick'n'dirty proposal:

* variable => global variable (keep compatibility with CMake 2.4)
* @variable => local variable (for example, inside a macro, if, foreach, etc)
* @@variable => module (= file) variable (for instance, for FindXXXX.cmake modules). It does not exist outside the current file (even INCLUDE'ing a file which defines @@variable would NOT make @@variable available outside the file which defined it). * VARIABLE => constants defined by modules (FindXXXX.cmake), cannot be changed after setting it (this way it's impossible to accidentally modify for example QT_LIBRARIES in a CMakeLists.txt)

--
Pau Garcia i Quiles
http://www.elpauer.org
(Due to my workload, I may need 10 days to answer)

_______________________________________________
CMake mailing list
[email protected]
http://www.cmake.org/mailman/listinfo/cmake

Reply via email to