[CMake] compiler defines for sub projects

Olaf Peter ope-devel at gmx.de
Sat Apr 6 02:21:35 EDT 2013


thanks for your answer.

I've forgot to mention in the hurry yesterday, that inisde the lib 
project generator exist which must not compiled with these defines.

if(FOO_OPTION OR BAR_OPTION)

   add_executable(generator_target ...)
   set_target_properties(generator_target ... COMPILE_DEFINITIONS ...)
endif()

This is the reason for set_target_properties(my_lib ...)

So this solution with add_definitions won't work. Possible it could work 
if I removed those defs from target.

Thanks,
Olaf

 > If you want to have all of the sub directories to have the defines 
present, you could use ADD_DEFINITIONS().
 >
 > option(FOO_OPTION "enable foo" OFF)
 > option(BAR_OPTION "enable bar" OFF)
 >
 > if(FOO_OPTION)
 >       add_definitions("-DFOO_X" )
 > elseif(BAR_OPTION)
 >       add_definitions("-DFOO_Y")
 > else()
 >       add_definitions("-DOTHER")
 > endif()
 >
 > -----Original Message-----
 > From: cmake-bounces at cmake.org [mailto:cmake-bounces at cmake.org] On 
Behalf Of Olaf Peter
 > Sent: Friday, April 05, 2013 12:58 PM
 > To: cmake at cmake.org
 > Subject: [CMake] compiler defines for sub projects
 >
 > Hello,
 >
 > is it possible to inherit compiler defines for sub projects in sub 
directories?
 >
 > I have a library project which can be configured at compile time 
using preprocessor defines (cmake option)
 >
 > option(FOO_OPTION "enable foo" OFF)
 > option(BAR_OPTION "enable bar" OFF)
 >
 >
 > if(FOO_OPTION)
 >       set_target_properties(my_lib PROPERTIES COMPILE_DEFINITIONS 
"FOO_X" )
 > elseif(BAR_OPTION)
 >       set_target_properties(my_lib PROPERTIES COMPILE_DEFINITIONS 
"FOO_Y")
 > else()
 >       set_target_properties(my_lib PROPERTIES COMPILE_DEFINITIONS 
"OTHER" )
 > endif()
 >
 > now, in the sub of this I have unit tests which need to know about 
this compile defs, hence I have the same if/else again.
 >
 > Is there an easy way for this?
 >
 > Thanks,
 > Olaf
 > --
 >
 > 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
 >



More information about the CMake mailing list