2010/6/27 Convey, Christian J CIV NUWC NWPT <christian.con...@navy.mil>:
> I don't expect a lot of support for what I'm about to say, but I think it's 
> perhaps worth saying anyway...
>
> It seems like CMake's and CTest's have outgrown their scripting languages.
>
> As far as I can tell, all CMake/CTest variables are either macro formal 
> parameters, or variables in a
> single global namespace.  I think one consequence of this is that macro 
> invocations make their
> contributions primarily by modifying variables in the global namespace.  As 
> people discovered in the
> 1970's and 1980's, the confusion caused by this approach (global variables) 
> can be so extensive that
> it's worthwhile to change coding pracices (structured programming, etc.), and 
> possibly to improve
> the base language as well.

I think you should dive into the Mailing List archive because there
have been several valuable
discussion about CMake evolution including the "replacement/extension"
of CMake scripting
language with "full language" like Lua or Python.

> But even better would be enhancing the CMake scripting language to support 
> local variables in
> macros, and possible package-scoped variables as well.  This clarifies the 
> intended interface that
> certain macro packages are intended to provide, because variables intended as 
> implementation
> details would be in a namespace inaccessible to the script that invokes those 
> macros.

CMake is offering scope from a parent/child point of view including
setting variable for your parent with set(xxxx PARENT_SCOPE) this was indeed
provided after lengthly ML discussion.

Concerning "local variables" you should have a look at the difference between
a "MACRO" and a "FUNCTION" this may already gives you part of what you want.

Then as far as I can tell CMake scripting is no-where near a "must not
evolve" language
many improvement has been put in since I began to use CMake 2.2.x
(can't remember X)
even the introduction of "POLICY" which each backward compatibility.

So I think you may not hope to have ALL what you require in CMake
after a message on this
ML be you will certainly have feedback and may be new feature if there
is a consensus
and some proof of concept patch provided.

-- 
Erk
Membre de l'April - « promouvoir et défendre le logiciel libre » -
http://www.april.org
_______________________________________________
Powered by www.kitware.com

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake

Reply via email to