[CMake] problem getting defines quoted properly

Michael Hertling mhertling at online.de
Fri Jan 14 15:57:39 EST 2011


On 01/14/2011 08:25 PM, Andreas Pakulat wrote:
> Hi,
> 
> I'm trying to set a define so that it can be used as string-literal in
> C++ code using add_definitions. This:
> 
> add_definition( -DMYFOO=\"BAR BAZ\" )
> 
> works fine on linux, but breaks with MSVC6 on windows. I always thought
> I understood cmake's quoting rules, but apparently I'm wrong :(
> 
> I've already tried:
> add_definition( -DMYFOO=\\\"BAR BAZ\\\" )
> 
> What I didn't think of trying when I was at the machine is
> add_definition( -DMYFOO=\\"BAR BAZ\\" )
> 
> Would that be the correct one? Or do I need even more \?

No, you probably need a configured header. ;)

The documentation of ADD_DEFINITIONS() states

"Flags beginning in -D or /D that look like preprocessor definitions are
automatically added to the COMPILE_DEFINITIONS property for the current
directory."

and from the COMPILE_DEFINITIONS directory property's documentation:

"The VS6 IDE does not support definition values with spaces..."
     ^^^
So, I think your issue is not caused by CMake.

Regards,

Michael


More information about the CMake mailing list