[CMake] Ensuring spaces in CFLAGS reach Visual Studio project files

David Cole david.cole at kitware.com
Fri Dec 17 17:59:10 EST 2010


Have you tried add_definitions for -D flags?

I'm not sure what's required for getting spaces-in-the-value across, but I
think it's possible.

Maybe somebody who's done it more recently than me can speak up here?

Alternatively, consider using a configured header file that gets included in
the places that need those definitions. They're much easier to deal with
than trying to wrap your head around escapings and multiple platforms and
compilers.


HTH,
David


On Fri, Dec 17, 2010 at 5:54 PM, Clifford Yapp <cliffyapp at gmail.com> wrote:

> I have a situation where I need to pass strings with spaces in them as
> definitions in CFLAGS, e.g.
>
> SET(CMAKE_C_CFLAGS  -DINPUT_STRING=\\\"first\\ second\\\"")
>
> This is NOT working for Visual Studio, which is apparently quite picky
> about this - it apparently needs to end up with something like:
>
> INPUT_STRING="\"first second\""
>
> I can duplicate the "\" quote structure part (VERY ugly -
> \\\"\\\\\\\") but I'm getting stopped cold by the space between first
> and second.  I've tried quoting variations, and while I can preserve
> the space as far as CMake's definition in the cache, the results that
> get written into the Visual Studio file ALWAYS seem to break on the
> space, quoted or not.  e.g. I get:
>
> INPUT_STRING="\"first
>
> or
>
> INPUT_STRING="\"first\
>
> etc.
>
> For variable definitions I might be able to live with not using a
> space, but some of the arguments I have to pass in are pathnames with
> spaces.  That's user controlled - I HAVE to be able to handle it, or
> in the worst case impose the limitation of no spaces in pathnames on
> Windows (ouch).
>
> Can someone tell me how to quote a space such that it ends up included
> in the preprocessor definition line in a Visual Studio project?
>
> Cheers,
> CY
> _______________________________________________
> 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://www.cmake.org/mailman/listinfo/cmake
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.cmake.org/pipermail/cmake/attachments/20101217/ac237f75/attachment.htm>


More information about the CMake mailing list