Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

CMake: how to set VTK_DIR?

Tags:

c++

cmake

vtk

This is one part of my CMakeLists.txt

set (VTK_DIR "/usr/include/vtk-5.8")

find_package(VTK REQUIRED)
include(${VTK_USE_FILE})
IF(VTK_FOUND)
  message("found VTK. Version:" ${VTK_VERSION}. VTK_DIR: ${VTK_DIR})
ELSE(VTK_FOUND)
  MESSAGE(FATAL_ERROR
    "Cannot build the executable without VTK. Please set the                                                                                                   
VTK_DIR")
ENDIF(VTK_FOUND)

cmake . tells me:

found VTK. Version:6.0.0.VTK_DIR:/usr/local/lib/cmake/vtk-6.0

Giving the VTK_DIR in the command line does not help either:

cmake -DVTK_DIR:PATH=/usr/include/vtk-5.8 .

Still cmake looks in /usr/local/lib/cmake/vtk-6.0 for VTK.

What is wrong here?

like image 668
Tengis Avatar asked Nov 02 '22 11:11

Tengis


2 Answers

VTK_DIR is a cache variable, which keeps its state across CMake invocations. You can set it from the command line, or via one of the CMake GUI interfaces.

Or, if you're certain you want to force it from your CMake file itself, you can use this syntax:

SET(VTK_DIR "/usr/include/vtk-5.8" CACHE PATH "VTK directory override" FORCE)
like image 181
Peter Avatar answered Nov 13 '22 04:11

Peter


What you need is VTK install subdirectory with VTKConfig.cmake. Alternatively, build directory might work as well.

As suggested by Peter, try:

SET(VTK_DIR "/usr/include/vtk-5.8/XXX" CACHE PATH "VTK directory override" FORCE)

and point it to the folder where you have VTKConfig.cmake.

YOu could install cmake-qt-gui - there you can easily enter the required paths using a GUI. If it doesn't use the path you entered, it means this is not the path it wants (see above).

like image 41
Noidea Avatar answered Nov 13 '22 04:11

Noidea