[CMake] How does interaction between UseXXX.cmake, XXXBuildSettings.cmake and XXXConfig.cmake supposedly work.

kent williams nkwmailinglists at gmail.com
Thu Aug 27 10:03:03 EDT 2009


I use some classes of vtkINRIA3D library for an ITK/VTK/KWWidgets
application.  If you haven't heard of it:

http://www-sop.inria.fr/asclepios/software/vtkINRIA3D/

I had always been building against vtkINRIA3D 'in place'  -- i.e.
including the UsevtkINRIA3D.cmake from its build directory.

I'm changing this to instead install the library in a common directory
with the other prerequisite libraries for our applications.  This is
primarily an issue of delivery -- it makes it marginally easier to
collect all the shared libraries our app depends on for installation.

But if I try and build against this installed copy of vtkINRIA3D, the
compiler can't find the include files.  In looking at
UsevtkINRIA3D.cmake, it has this clause:

INCLUDE_DIRECTORIES(${vtkINRIA3D_INCLUDE_DIRS})

but that variable is not defined.  It IS defined in
vtkINRIA3DConfig.cmake, but that file is not included by
UsevtkINRIA3D.cmake.   So I assumed there was something wrong with how
vtkINRIA3D is set up or built, in that vtkINRIA3DConfig.cmake is not
included.  So I looked at what ITK and VTK do, and there's a similar
setup -- I don't see where either of them include the *Config.cmake
file.

So I'm down in the maze of CMake's deep structure, lost.  How is this
all supposed to work?


More information about the CMake mailing list