Okay, I see. The problem is that the ${DEF} is quoted so it won't fall
apart into separate arguments.
TamásOn Wed, Apr 13, 2016 at 4:54 AM, Michael Surette <[email protected]> wrote: > On 2016-04-12 06:57 PM, Tamás Kenéz wrote: > >> I don't get how come the macro works because >> `target_compile_definitions` needs at least 3 parameters. The second one >> must be PRIVATE|PUBLIC|INTERFACE. >> Tamas >> >> On Tue, Apr 12, 2016 at 7:43 AM, Michael Surette >> <[email protected] >> <mailto:[email protected]>> wrote: >> >> I would like to use set target properties from within a function. ie >> >> function(MINE TGT DEF) >> target_compile_definitions("${TGT}" "${DEF}") >> endfunction(MINE TGT DEF) >> >> This doesn't work. If I change it to a macro, it does. >> >> macro(MINE TGT DEF) >> target_compile_definitions("${TGT}" "${DEF}") >> endmacro(MINE TGT DEF) >> >> Is there a way to extend the scope of TGT in the function so that >> the function variant works? >> > > Good catch. > > Actually, I have the (usually PRIVATE) part as the beginning of ${DEF}. > > To clarify, this is a question about scoping. If the command in the > function was a "set" I could do > > set("${TGT}" "${DEF}" PARENT_SCOPE) > > In my example, what I want to do is set the target_compile_definitions of > the name "${TGT}". A function is preferable to a macro so I can avoid > namespace collisions. > > This is not all that this function does of course, or I would just call > target_compile_definitions directly, but I cut out the other stuff to > simplify the example. > > Upon further thought, perhaps you are on to something, let me do some > testing. > > In the meantime, any more thoughts would be appreciated. > > > Mike > > -- > > 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 >
-- 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
