[CMake] Changing definitions at compile time

Kfir Lavi lavi.kfir at gmail.com
Tue Jun 14 13:12:48 EDT 2011


On Tue, Jun 14, 2011 at 8:04 PM, Andreas Naumann <Andreas-Naumann at gmx.net>wrote:

>  Am 14.06.2011 18:12, schrieb Kfir Lavi:
>
> Hi,
> I need to compile the code twice. Once with -DA and once with -DB
> My code look like this:
> add_definitions(-DA)
> add_library(${mylib_A} SHARED ${myfiles})
> remove_definitions(-DA)
>
> add_definitions(-DB)
> add_library(${lib_B} SHARED ${myfiles})
> remove_definitions(-DB)
>
> What cmake does is to define A and then remove it, so in compile time,
> there
> is now definition of A or B.
>
> How do I tell cmake that the remove needs to  be in compile time?
>
> Regards,
> Kfir
>
>
> _______________________________________________
> 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
>
>  You want to create two libraries A and B from the same sourcefiles
> ${myfiles}. The first one have to be compiled with -DA and the second one
> with -DB, haven't it?
>
> So you could simply set the COMPILE_FLAGS property with
> add_library(A ${myfiles})
> add_library(B ${myfiles})
>
> set_target_properties(A PROPERTIES COMPILE_FLAGS "-DA")
> set_target_properties(B PROPERTIES COMPILE_FLAGS "-DB")
>
> Regards,
> Andreas
>

Thanks,
This solved my problems.

Again thanks,
Kfir
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.cmake.org/pipermail/cmake/attachments/20110614/2ef9f4df/attachment-0001.htm>


More information about the CMake mailing list