After all the discussion / suggestions that have been part of this thread, I like the following best:
local(scope_name) set(var1 "value1") set(var2 "value2") endlocal(scope_name) function(fname same args as macro) endfunction(fname) - local/endlocal pairs should be nestable - any SET within the local scope would made only in the local scope unless the "CACHE" arg is used - perhaps a "PARENT_SCOPE" keyword could be used with SET to set something back out in the containing scope - function would be identical to macro except it would have an implied "local"/"endlocal" with the scope_name the same as the function name - it would be nice for functions to have an easy to use return value On 11/3/07, Miguel A. Figueroa-Villanueva <[EMAIL PROTECTED]> wrote: > > On 11/3/07, Alexander Neundorf wrote: > > On Friday 02 November 2007, KSpam wrote: > > > Brandon, > > > > > > You missed the part where Bill mentioned that variable_scope would > take > > > > > > multiple arguments. Your example: > > > > variable_scope_begin(scratch_preamble) > > > > variable_scope_begin(got_match) > > > > variable_scope_begin(not_trail) > > > > variable_scope_begin(empty) > > > > # [...] > > > > # my actual code, blah blah blah > > > > # [...] > > > > variable_scope_end(scratch_preamble) > > > > variable_scope_end(got_match) > > > > variable_scope_end(not_trail) > > > > variable_scope_end(empty) > > > > > > would reduce to: > > > > > > variable_scope_begin(scratch_preamble got_match not_trail empty) > > > # [...] > > > # my actual code, blah blah blah > > > # [...] > > > variable_scope_end(scratch_preamble got_match not_trail empty) > > > > How about naming it "declare_local_vars(<vars>)" or just "local(<vars>)" > > instead of variable_scope_begin() and have it end always at endmacro() ? > > I like both alternative names better, but can't rely on endmacro() for > ending since this causes an unnecessary limitation. That is, you'd > want to use this in FindXXX.cmake modules and other scripts not only > macros. > > --Miguel > _______________________________________________ > CMake mailing list > [email protected] > http://www.cmake.org/mailman/listinfo/cmake >
_______________________________________________ CMake mailing list [email protected] http://www.cmake.org/mailman/listinfo/cmake
