[CMake] Propagating variable to toplevel parent

Michael Wild themiwi at gmail.com
Wed Jul 7 09:06:38 EDT 2010


On 7. Jul, 2010, at 14:45 , Mathieu Malaterre wrote:

> On Wed, Jul 7, 2010 at 1:07 PM, Bo Thorsen <bo at askmonty.org> wrote:
>> Den 07-07-2010 12:34, Mathieu Malaterre skrev:
>>> 
>>> Hi there,
>>> 
>>>   I am wondering if I am missing anything here. How would one
>>> propagate a variable across subdirectories in cmake ? I thought that a
>>> simple CACHE variable would do the trick, but using cmake 2.8.1 I had
>>> to do the following trick
>>> 
>>> list(APPEND v "42")
>>> # make sure to actually update the CACHE variable:
>>> set(v ${v} CACHE INTERNAL "toto")
>>> 
>>> My goal is that at the end of the toplevel cmakelists.txt file, cmake
>>> would have collected a list of installation path.
>> 
>> http://www.cmake.org/pipermail/cmake/2010-May/036743.html
>> 
> 
> Unless I am missing -again- something, this does not work across directories:
> 
> https://gdcm.svn.sourceforge.net/svnroot/gdcm/Sandbox/CMakeBug/14
> 
> 
> Thanks
> -- 
> Mathieu

Make that:

project(bla NONE)

set_property(GLOBAL PROPERTY v "13")
add_subdirectory(foo)
get_property(v GLOBAL PROPERTY v)
message("final v: ${v}")


For properties you must always use getters and setters, they are never directly mapped to variables.

Michael



More information about the CMake mailing list