1 # - Find a VTK installation or build tree.
2 # The following variables are set if VTK is found. If VTK is not
3 # found, VTK_FOUND is set to false.
4 # VTK_FOUND - Set to true when VTK is found.
5 # VTK_USE_FILE - CMake file to use VTK.
6 # VTK_MAJOR_VERSION - The VTK major version number.
7 # VTK_MINOR_VERSION - The VTK minor version number
9 # VTK_BUILD_VERSION - The VTK patch level
10 # (meaningless for odd minor).
11 # VTK_INCLUDE_DIRS - Include directories for VTK
12 # VTK_LIBRARY_DIRS - Link directories for VTK libraries
13 # VTK_KITS - List of VTK kits, in CAPS
15 # VTK_LANGUAGES - List of wrapped languages, in CAPS
17 # The following cache entries must be set by the user to locate VTK:
18 # VTK_DIR - The directory containing VTKConfig.cmake.
19 # This is either the root of the build tree,
20 # or the lib/vtk directory. This is the
22 # The following variables are set for backward compatibility and
23 # should not be used in new code:
24 # USE_VTK_FILE - The full path to the UseVTK.cmake file.
25 # This is provided for backward
26 # compatibility. Use VTK_USE_FILE
30 # Construct consitent error messages for use below.
31 SET(VTK_DIR_DESCRIPTION "directory containing VTKConfig.cmake. This is either the root of the build tree, or PREFIX/lib/vtk for an installation. For VTK 4.0, this is the location of UseVTK.cmake. This is either the root of the build tree or PREFIX/include/vtk for an installation.")
32 SET(VTK_DIR_MESSAGE "VTK not found. Set the VTK_DIR cmake cache entry to the ${VTK_DIR_DESCRIPTION}")
34 # Search only if the location is not already known.
36 # Get the system search path as a list.
38 STRING(REGEX MATCHALL "[^:]+" VTK_DIR_SEARCH1 "$ENV{PATH}")
40 STRING(REGEX REPLACE "\\\\" "/" VTK_DIR_SEARCH1 "$ENV{PATH}")
42 STRING(REGEX REPLACE "/;" ";" VTK_DIR_SEARCH2 "${VTK_DIR_SEARCH1}")
44 # Construct a set of paths relative to the system search path.
45 SET(VTK_DIR_SEARCH "")
46 FOREACH(dir ${VTK_DIR_SEARCH2})
47 SET(VTK_DIR_SEARCH ${VTK_DIR_SEARCH}
55 # Old scripts may set these directories in the CMakeCache.txt file.
56 # They can tell us where to find VTKConfig.cmake.
57 SET(VTK_DIR_SEARCH_LEGACY "")
58 IF(VTK_BINARY_PATH AND USE_BUILT_VTK)
59 SET(VTK_DIR_SEARCH_LEGACY ${VTK_DIR_SEARCH_LEGACY} ${VTK_BINARY_PATH})
60 ENDIF(VTK_BINARY_PATH AND USE_BUILT_VTK)
61 IF(VTK_INSTALL_PATH AND USE_INSTALLED_VTK)
62 SET(VTK_DIR_SEARCH_LEGACY ${VTK_DIR_SEARCH_LEGACY}
63 ${VTK_INSTALL_PATH}/lib/vtk)
64 ENDIF(VTK_INSTALL_PATH AND USE_INSTALLED_VTK)
67 # Look for an installation or build tree.
69 FIND_PATH(VTK_DIR UseVTK.cmake
70 # Support legacy cache files.
71 ${VTK_DIR_SEARCH_LEGACY}
73 # Look for an environment variable VTK_DIR.
76 # Look in places relative to the system executable search path.
79 # Look in standard UNIX install locations.
83 # Read from the CMakeSetup registry entries. It is likely that
84 # VTK will have been recently built.
85 [HKEY_CURRENT_USER\\Software\\Kitware\\CMakeSetup\\Settings\\StartPath;WhereBuild1]
86 [HKEY_CURRENT_USER\\Software\\Kitware\\CMakeSetup\\Settings\\StartPath;WhereBuild2]
87 [HKEY_CURRENT_USER\\Software\\Kitware\\CMakeSetup\\Settings\\StartPath;WhereBuild3]
88 [HKEY_CURRENT_USER\\Software\\Kitware\\CMakeSetup\\Settings\\StartPath;WhereBuild4]
89 [HKEY_CURRENT_USER\\Software\\Kitware\\CMakeSetup\\Settings\\StartPath;WhereBuild5]
90 [HKEY_CURRENT_USER\\Software\\Kitware\\CMakeSetup\\Settings\\StartPath;WhereBuild6]
91 [HKEY_CURRENT_USER\\Software\\Kitware\\CMakeSetup\\Settings\\StartPath;WhereBuild7]
92 [HKEY_CURRENT_USER\\Software\\Kitware\\CMakeSetup\\Settings\\StartPath;WhereBuild8]
93 [HKEY_CURRENT_USER\\Software\\Kitware\\CMakeSetup\\Settings\\StartPath;WhereBuild9]
94 [HKEY_CURRENT_USER\\Software\\Kitware\\CMakeSetup\\Settings\\StartPath;WhereBuild10]
96 # Help the user find it if we cannot.
97 DOC "The ${VTK_DIR_DESCRIPTION}"
101 # If VTK was found, load the configuration file to get the rest of the
104 # Make sure the VTKConfig.cmake file exists in the directory provided.
105 IF(EXISTS ${VTK_DIR}/VTKConfig.cmake)
107 # We found VTK. Load the settings.
109 INCLUDE(${VTK_DIR}/VTKConfig.cmake)
111 ELSE(EXISTS ${VTK_DIR}/VTKConfig.cmake)
112 IF(EXISTS ${VTK_DIR}/UseVTK.cmake)
113 # We found VTK 4.0 (UseVTK.cmake exists, but not VTKConfig.cmake).
115 # Load settings for VTK 4.0.
116 INCLUDE(UseVTKConfig40)
117 ELSE(EXISTS ${VTK_DIR}/UseVTK.cmake)
118 # We did not find VTK.
120 ENDIF(EXISTS ${VTK_DIR}/UseVTK.cmake)
121 ENDIF(EXISTS ${VTK_DIR}/VTKConfig.cmake)
123 # We did not find VTK.
127 #-----------------------------------------------------------------------------
129 # Set USE_VTK_FILE for backward-compatability.
130 SET(USE_VTK_FILE ${VTK_USE_FILE})
132 # VTK not found, explain to the user how to specify its location.
133 IF(VTK_FIND_REQUIRED)
134 MESSAGE(FATAL_ERROR ${VTK_DIR_MESSAGE})
135 ELSE(VTK_FIND_REQUIRED)
136 IF(NOT VTK_FIND_QUIETLY)
137 MESSAGE(STATUS ${VTK_DIR_MESSAGE})
138 ENDIF(NOT VTK_FIND_QUIETLY)
139 ENDIF(VTK_FIND_REQUIRED)