[CMake] Is it possible for CMake to generate unescaped quotes on the (bash) command line as a result of add_custom_command?

Alan W. Irwin irwin at beluga.phys.uvic.ca
Fri Apr 13 18:02:54 EDT 2018


On 2018-04-13 23:02+0200 Nils Gladitz wrote:

> On 13.04.2018 21:48, Alan W. Irwin wrote:
>> [...]
>> However, that is wrong since that command currently needs two arguments 
>> even if
>> one of them is empty.  So instead I need the generated command to be
>> 
>> ./test-drv-info "temporary_target_" ps > 
>> /home/software/plplot/HEAD/build_dir/drivers/test_dyndrivers_dir/ps.driver_info
>> 
>> or
>> 
>> ./test-drv-info "" ps > 
>> /home/software/plplot/HEAD/build_dir/drivers/test_dyndrivers_dir/ps.driver_info
>> 
>> depending on how LIBRARY_TARGET_PREFIX is set.
>> 
>> Is it possible to implement that?
>
> Hi Alan,
>
> with VERBATIM just using regular unescaped quotes (which are cmake syntax and 
> not part of the value) around the argument should work e.g.
>
>     COMMAND test-drv-info "${LIBRARY_TARGET_PREFIX}" ${SOURCE_ROOT_NAME} 
> ${CMAKE_CURRENT_BINARY_DIR}/test_dyndrivers_dir/${SOURCE_ROOT_NAME}.driver_info
>
>
> That way even when ${LIBRARY_TARGET_PREFIX} expands empty 
> add_custom_command() will receive an argument which it will escape / quote as 
> required by the build system.

Hi Nils:

When starting fresh with a clean cache using
"${LIBRARY_TARGET_PREFIX}" in the COMMAND worked perfectly, i.e.,
propagated as "" to the command line when ${LIBRARY_TARGET_PREFIX}
expands empty. Thanks for that suggestion!

The strange thing is I am virtually positive I tried that exact idea
earlier today, and it did not work, but maybe that was due to another
issue such as a dirty cache.

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
__________________________


More information about the CMake mailing list