Okay, I see. The problem is that the ${DEF} is quoted so it won't fall
apart into separate arguments.
Tamás

On 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

Reply via email to