[CMake] Calling of find_package from function

Andrey Upadyshev oliora at gmail.com
Fri Nov 7 12:44:21 EST 2014


I've solved my problem with special macroses. First saves all non-cache
variables (have to be called at the beginning of the function) and second
one propagates all the changed/added variables to the parent scope (have to
be called of at end of the function). If someone interested in code, it's
here https://gist.github.com/oliora/4961727299ed67337aba

Andrey

On Fri, Nov 7, 2014 at 4:56 PM, Andrey Upadyshev <oliora at gmail.com> wrote:

> Thank you for advice Petr! I will go with this solution if can't find
> another one. CMake macroses are slightly weird so I'm trying to avoid them
> :)
>
>
> On Fri, Nov 7, 2014 at 4:39 PM, Petr Kmoch <petr.kmoch at gmail.com> wrote:
>
>> Hi Andrey.
>>
>> As a workaround, you could make the calling context a macro instead of a
>> function. Macros don't introduce variable scope.
>>
>> Petr
>>
>> On Fri, Nov 7, 2014 at 4:23 PM, Andrey Upadyshev <oliora at gmail.com>
>> wrote:
>>
>>> Hello!
>>>
>>> I'm writing a wrapper around find_package so I call find_package from my
>>> own function. I found it's near impossible because all the variables set by
>>> finders remain in the scope of my wrapper function, rather than in the
>>> caller's scope. Is there any way to force find_package to set all variables
>>> in my function caller's scope? I.e. something like find_package(...
>>> PARENT_SCOPE)?
>>>
>>> Thank you,
>>> Andrey
>>>
>>> --
>>>
>>> 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
>>>
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/cmake/attachments/20141107/2e3035b4/attachment-0001.html>


More information about the CMake mailing list