Am 22.07.2017 um 15:36 schrieb Craig Scott:
> 
> On Tue, Jul 18, 2017 at 8:50 PM, Florian Lindner <mailingli...@xgm.de 
> <mailto:mailingli...@xgm.de>> wrote:
> 
>     #Works, but I would prefer to have it just once for all targets and at 
> the top of the file
>     set_property(TARGET testprecice APPEND
>       PROPERTY COMPILE_DEFINITIONS "FOO")
> 
>     > BTW, you don't include the -D when adding to COMPILE_DEFINITIONS, just 
> put FOO, not -DFOO. Have a read of the docs, they may give you other clues 
> for this property (e.g. using the ..._CONFIG variant of it).
> 
>     Yeah, I found out that I don't have to add -D. The docs say that 
> generator expressions are preferable to using _CONFIG
>     variant.
> 
> 
> So just to be crystal clear, this is what I would have expected to work if 
> you wanted the symbol FOO to be defined for
> Debug builds for all targets in the current directory and below:
> 
> set_property(DIRECTORY APPEND PROPERTY COMPILE_DEFINITIONS 
> $<$<CONFIG:Debug>:FOO>)

Put that in my CMakeLists.txt. Works, but only when I build in the same 
directory where the CMakeLists.txt file is
located, i.e. in source builds. That way:

set_property(DIRECTORY ${CMAKE_SOURCE_DIR} APPEND PROPERTY COMPILE_DEFINITIONS  
$<$<CONFIG:Debug>:FOO>)

it works also out of tree.

Still, I don't undertand what is wrong with:

set_property(GLOBAL APPEND PROPERTY COMPILE_DEFINITIONS $<$<CONFIG:Debug>:-FOO>)

?

Best,
Florian


> 
> Note that this directory property is NOT used to initialise the corresponding 
> target property. Rather, BOTH are combined
> to give the final set of command line compile definitions. It does not matter 
> whether this directory property is set
> before or after you call add_executable() within the same CMakeLists.txt file 
> (or more accurately, within the same
> directory scope).
> 
> 
> 
>     >
>     >
>     > On Tue, Jul 18, 2017 at 1:21 PM, Florian Lindner <mailingli...@xgm.de 
> <mailto:mailingli...@xgm.de> <mailto:mailingli...@xgm.de 
> <mailto:mailingli...@xgm.de>>> wrote:
>     >
>     >     Am 18.07.2017 um 10:59 schrieb Craig Scott:
>     >     > You appear to be setting a GLOBAL property where you probably 
> meant DIRECTORY. You could also consider setting the
>     >     > target property instead rather than applying it to all targets 
> (unless that's what you want).
>     >
>     >     I tried to set the property on all targets, therefore I thought 
> GLOBAL is the right thing.
>     >
>     >     However,
>     >
>     >     set_property(DIRECTORY "${CMAKE_SOURCE_DIR}/src" APPEND
>     >       PROPERTY COMPILE_DEFINITIONS "-DFOO")
>     >
>     >     hasn't had any effect either.
>     >
>     >     set_property(TARGET testprecice APPEND
>     >       PROPERTY COMPILE_DEFINITIONS "FOO")
>     >
>     >     works. But setting it on all targets is exactly what I want. How 
> can I do that?
>     >
>     >     Best,
>     >     Florian
>     >
>     >     >
>     >     >
>     >     > On Tue, Jul 18, 2017 at 12:56 PM, Florian Lindner 
> <mailingli...@xgm.de <mailto:mailingli...@xgm.de> <mailto:mailingli...@xgm.de 
> <mailto:mailingli...@xgm.de>>
>     >     <mailto:mailingli...@xgm.de <mailto:mailingli...@xgm.de> 
> <mailto:mailingli...@xgm.de <mailto:mailingli...@xgm.de>>>> wrote:
>     >     >
>     >     >     Hello,
>     >     >
>     >     >     I want to add compile definitions. Since I want to use 
> generator expressions, I can't use add_definitions, but
>     >     have to
>     >     >     use the COMPILE_DEFINITIONS property, but neither:
>     >     >
>     >     >     set_property(GLOBAL APPEND
>     >     >       PROPERTY COMPILE_DEFINITIONS "-DFOO")
>     >     >
>     >     >     for testing
>     >     >
>     >     >     or
>     >     >
>     >     >     set_property(GLOBAL APPEND
>     >     >       PROPERTY COMPILE_DEFINITIONS $<$<CONFIG:Debug>:-DDebug>)
>     >     >
>     >     >     which should be final result, produces any -DFOO compiler 
> switches.
>     >     >
>     >     >     I also tried placing it before and after the add_executable 
> call.
>     >     >
>     >     >     What is wrong with that call?
>     >     >
>     >     >     Thanks,
>     >     >     Florian
> 
>  
> -- 
> Craig Scott
> Melbourne, Australia
> https://crascit.com
-- 

Powered by www.kitware.com

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Kitware offers various services to support the CMake community. For more 
information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Follow this link to subscribe/unsubscribe:
http://public.kitware.com/mailman/listinfo/cmake

Reply via email to