[CMake] Relative include() calls

Tyler Roscoe tyler at cryptio.net
Thu May 28 01:16:48 EDT 2009


On Wed, May 27, 2009 at 11:27:28PM -0500, Robert Dailey wrote:
> From a CMakeLists.txt in my root source dir, I am calling:
> include( ../cmake/common.cmake )
> 
> From common.cmake, I am calling:
> 
> include( BoostUtils.cmake )
> 
> BoostUtils.cmake and common.cmake are side-by-side in the same directory on
> Windows. The second call to include() fails, because the working directory
> is still set to the directory of the CMakeLists.txt, when I expect the

This is the behavior I would expect. include() is a lot like #include
(or :r in vi); it's as though the contents of the included file were
dropped into the middle of your CMakeLists.

Ergo, I would write:

> include( ../cmake/BoostUtils.cmake )

If you don't want to write ../cmake all the time, I'm pretty sure
there's a variable that controls where CMake will look for things to
include().

tyler


More information about the CMake mailing list