[CMake] An observation about CTest

Alan W. Irwin irwin at beluga.phys.uvic.ca
Sun Jun 27 16:48:41 EDT 2010


Your remarks focus on old-fashioned macros so it is possible you are not
aware of functions? As far as I know, most or all macros can be replaced by
functions which do have the nice property of not polluting the global
namespace.  So newly developed build systems should use functions wherever
possible, and certainly for old CMake-based build systems I am associated
with I am trying to move to functions as time permits.

Here are some rough counts of functions and macros actually contained
in 2.8.x:

irwin at raven> grep -i function cmake-2.8/Modules/*.cmake |grep -v '#' |wc -l
263
irwin at raven> grep -i macro cmake-2.8/Modules/*.cmake |grep -v '#' |wc -l
337

Those numbers should be divided by roughly a factor of two (because of
ENDFUNCTION and ENDMACRO) to get approximate counts of functions and macros.

Clearly, the replacement of macros by functions is well on its way for
2.8.x, but the process is still far from completed.  Once it is complete,
however, the global namespace will be much less polluted.

Another namespace remark is that subdirectory variables do not pollute
the global namespace of their parent directories.

So the global namespace pollution issue is not as bad as you have outlined
and because of functions is steadily improving.

Alan
__________________________
Alan W. Irwin

Astronomical research affiliation with Department of Physics and Astronomy,
University of Victoria (astrowww.phys.uvic.ca).

Programming affiliations with the FreeEOS equation-of-state implementation
for stellar interiors (freeeos.sf.net); PLplot scientific plotting software
package (plplot.org); the libLASi project (unifont.org/lasi); the Loads of
Linux Links project (loll.sf.net); and the Linux Brochure Project
(lbproject.sf.net).
__________________________

Linux-powered Science
__________________________


More information about the CMake mailing list