On 2013-01-08 10:47+0100 Eric Noulard wrote:
2013/1/8 Alan W. Irwin <[email protected]>:
The rule should be simple as:
You need to escape one time less than the number of cmake run occuring
through the workflow path.
In your case you have to escape once because install(CODE ...) is
processed **by cmake**
at "Install time" and you expect the evaluation to take place at that time.
The may-be tricky part is "when" cmake (or derived cmake script engine
is running)
the "running time" of cmake tool suite may not be obvious and I tried
to picture it in
a tutorial (see excerpt attached to this mail)
May be we can document common uses cases:
install(CODE --> one escape
install(SCRIPT --> none
add_custom_command/target --> one or two level escape depending on the arguments
with various combination where you may "configure_file"
1) yourself before using "install(SCRIPT ..." --> my way of work
usually one escape level.
2) through CPack like values used in CPACK_xxx variable which end up
in some CPack template file which are processed first at CMake-time and
may be again at CPack-time. This one may lead to 2 level escape.
Don't forget the example of code like this:
set(CPACK_SOURCE_IGNORE_FILES
"\\\\#*\\\\#$"
"^${PROJECT_SOURCE_DIR}.*/\\\\.svn/"
....
I have been wrong about overcomplicating escapes in the past, but I
think it this case, 4 levels of escapes are really necessary for these
particular regex expressions. Anyhow, I know this code works, but I
don't know why! Does your simple rule above explain this, and if so how?
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); the Time
Ephemerides project (timeephem.sf.net); PLplot scientific plotting
software package (plplot.sf.net); 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
__________________________
--
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://public.kitware.com/cgi-bin/mailman/listinfo/cmake-developers