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

Christian Ehrlicher Ch.Ehrlicher at gmx.de
Fri Feb 20 08:51:33 EST 2009


Michael Jackson schrieb:
> 
> 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.
> 
This is wrong - you've a similar option with gcc - the visibility attribute.


Christian

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 258 bytes
Desc: OpenPGP digital signature
URL: <http://www.cmake.org/pipermail/cmake/attachments/20090220/ed5e4bcb/attachment.pgp>


More information about the CMake mailing list