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