[CMake] Getting rid of unwanted quotes that CMake inserts into commands

Alan W. Irwin irwin at beluga.phys.uvic.ca
Sun Nov 30 00:08:22 EST 2008

I have defined the following custom command:

   COMMAND ${free_eos_test_LOCATION} < ${CMAKE_CURRENT_BINARY_DIR}/grid_EOS1_2.in >& ${CMAKE_CURRENT_BINARY_DIR}/grid_EOS1_2.out
   DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/grid_EOS1_2.in free_eos_test

The COMMAND line will get wrapped in this e-mail, but it appears all in one
line in the CMakeLists.txt file.

For both 2.6.1 and 2.6.2, the resulting command that is executed is fine
except that >& is transformed to ">&" and those inserted double quotes
interfere with the desired redirection. If I use > instead (which makes
stderr default to the terminal rather than mixing it in with grid_EOS1_2.out
like I would like), then there are no double quotes surrounding that in the
generated command.  If I use 2> and 1> redirection to generate two files
(one for stderr, one for stdout), they are transformed to "2>" and "1>" by
CMake and those inserted double quotes again interfere with the desired

Is this a CMake bug (since double quotes are being inserted into the
generated command for >&, 2>, and 1> despite the VERBATIM above)?

Regardless of that bug question, is there a way to work around this CMake

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

Linux-powered Science

More information about the CMake mailing list