[CMake] Toggling a Preprocessor macro for targets within a single project

Michael Jackson mike.jackson at bluequartz.net
Fri Feb 20 08:03:48 EST 2009


On Feb 20, 2009, at 4:59 AM, Eric Noulard wrote:

> 2009/2/20 Christian Ehrlicher <Ch.Ehrlicher at gmx.de>:
>>> Von: Andreas Pokorny
>>> Hello,
>>> Wow that was fast. Thanks a lot.
>
> Obviously I was too fast reading the doc :-)
>
>>>> [...]
>>>>
>>>> SET_TARGET_PROPERTIES(PlatformLib PROPERTIES
>>>>                                            DEFINE_SYMBOL  
>>>> USE_TRACER)
>>>>
>>>> Then you shouldn't have to ADD_DEFINITIONS and REMOVE_DEFINITIONS?
>>>
>>>
>>> I do not understand why.. but DEFINE_SYMBOL did not work, but
>>> COMPILE_FLAGS -DUSE_TRACER
>>> did. So SET_TARGET_PROPERTIES is the sledgehammer for getting it  
>>> done :)
>>>
>> DEFINE_SYMBOL only works for shared libraries. see cmake  
>> documentation: "DEFINE_SYMBOL sets the name of the preprocessor  
>> symbol defined when compiling sources in a shared library."
>
> Thank you  Christian
> ...for reading the doc more carefully  than I do :-)
>
>
> -- 
> Erk
>

and I _think_ that DEFINE_SYMBOL only will work on windows as it is  
there to facilitate the dllImport/dllexport functionality used by  
windows for exporting/importing symbols from shared libraries.

I may be wrong on that as I am going on memory at this point.

Mike



More information about the CMake mailing list