139 lines
5.4 KiB
CMake
139 lines
5.4 KiB
CMake
#
|
|
# Find a VTK installation or build tree.
|
|
#
|
|
# When VTK is found, the VTKConfig.cmake file is sourced to setup the
|
|
# location and configuration of VTK. Please read this file, or
|
|
# VTKConfig.cmake.in from the VTK source tree for the full list of
|
|
# definitions. Of particular interest is
|
|
#
|
|
# VTK_USE_FILE - A CMake source file that can be included
|
|
# to set the include directories, library
|
|
# directories, and preprocessor macros.
|
|
#
|
|
# In addition to the variables read from VTKConfig.cmake, this find
|
|
# module also defines
|
|
#
|
|
# VTK_DIR - The directory containing VTKConfig.cmake. This is either
|
|
# the root of the build tree, or the lib/vtk
|
|
# directory. This is the only cache entry.
|
|
#
|
|
# VTK_FOUND - Whether VTK was found. If this is true, VTK_DIR is okay.
|
|
#
|
|
# USE_VTK_FILE - The full path to the UseVTK.cmake file. This is provided
|
|
# for backward compatability. Use VTK_USE_FILE instead.
|
|
#
|
|
|
|
# Construct consitent error messages for use below.
|
|
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.")
|
|
SET(VTK_DIR_MESSAGE "VTK not found. Set VTK_DIR to the ${VTK_DIR_DESCRIPTION}")
|
|
|
|
# Search only if the location is not already known.
|
|
IF(NOT VTK_DIR)
|
|
# Get the system search path as a list.
|
|
IF(UNIX)
|
|
STRING(REGEX MATCHALL "[^:]+" VTK_DIR_SEARCH1 $ENV{PATH})
|
|
ELSE(UNIX)
|
|
STRING(REGEX REPLACE "\\\\" "/" VTK_DIR_SEARCH1 $ENV{PATH})
|
|
ENDIF(UNIX)
|
|
STRING(REGEX REPLACE "/;" ";" VTK_DIR_SEARCH2 ${VTK_DIR_SEARCH1})
|
|
|
|
# Construct a set of paths relative to the system search path.
|
|
SET(VTK_DIR_SEARCH "")
|
|
FOREACH(dir ${VTK_DIR_SEARCH2})
|
|
SET(VTK_DIR_SEARCH ${VTK_DIR_SEARCH} "${dir}/../lib/vtk")
|
|
ENDFOREACH(dir)
|
|
|
|
# Old scripts may set these directories in the CMakeCache.txt file.
|
|
# They can tell us where to find VTKConfig.cmake.
|
|
SET(VTK_DIR_SEARCH_LEGACY "")
|
|
IF(VTK_BINARY_PATH AND USE_BUILT_VTK)
|
|
SET(VTK_DIR_SEARCH_LEGACY ${VTK_DIR_SEARCH_LEGACY} ${VTK_BINARY_PATH})
|
|
ENDIF(VTK_BINARY_PATH AND USE_BUILT_VTK)
|
|
IF(VTK_INSTALL_PATH AND USE_INSTALLED_VTK)
|
|
SET(VTK_DIR_SEARCH_LEGACY ${VTK_DIR_SEARCH_LEGACY}
|
|
${VTK_INSTALL_PATH}/lib/vtk)
|
|
ENDIF(VTK_INSTALL_PATH AND USE_INSTALLED_VTK)
|
|
|
|
#
|
|
# Look for an installation or build tree.
|
|
#
|
|
FIND_PATH(VTK_DIR UseVTK.cmake
|
|
# Support legacy cache files.
|
|
${VTK_DIR_SEARCH_LEGACY}
|
|
|
|
# Look in places relative to the system executable search path.
|
|
${VTK_DIR_SEARCH}
|
|
|
|
# Look in standard UNIX install locations.
|
|
/usr/local/lib/vtk
|
|
/usr/lib/vtk
|
|
|
|
# Read from the CMakeSetup registry entries. It is likely that
|
|
# VTK will have been recently built.
|
|
[HKEY_CURRENT_USER\\Software\\Kitware\\CMakeSetup\\Settings\\StartPath;WhereBuild1]
|
|
[HKEY_CURRENT_USER\\Software\\Kitware\\CMakeSetup\\Settings\\StartPath;WhereBuild2]
|
|
[HKEY_CURRENT_USER\\Software\\Kitware\\CMakeSetup\\Settings\\StartPath;WhereBuild3]
|
|
[HKEY_CURRENT_USER\\Software\\Kitware\\CMakeSetup\\Settings\\StartPath;WhereBuild4]
|
|
[HKEY_CURRENT_USER\\Software\\Kitware\\CMakeSetup\\Settings\\StartPath;WhereBuild5]
|
|
[HKEY_CURRENT_USER\\Software\\Kitware\\CMakeSetup\\Settings\\StartPath;WhereBuild6]
|
|
[HKEY_CURRENT_USER\\Software\\Kitware\\CMakeSetup\\Settings\\StartPath;WhereBuild7]
|
|
[HKEY_CURRENT_USER\\Software\\Kitware\\CMakeSetup\\Settings\\StartPath;WhereBuild8]
|
|
[HKEY_CURRENT_USER\\Software\\Kitware\\CMakeSetup\\Settings\\StartPath;WhereBuild9]
|
|
[HKEY_CURRENT_USER\\Software\\Kitware\\CMakeSetup\\Settings\\StartPath;WhereBuild10]
|
|
|
|
# Help the user find it if we cannot.
|
|
DOC "The ${VTK_DIR_DESCRIPTION}"
|
|
)
|
|
ENDIF(NOT VTK_DIR)
|
|
|
|
# If VTK was found, load the configuration file to get the rest of the
|
|
# settings.
|
|
IF(VTK_DIR)
|
|
# Make sure the VTKConfig.cmake file exists in the directory provided.
|
|
IF(EXISTS ${VTK_DIR}/VTKConfig.cmake)
|
|
|
|
# We found VTK. Load the settings.
|
|
SET(VTK_FOUND 1)
|
|
INCLUDE(${VTK_DIR}/VTKConfig.cmake)
|
|
|
|
ELSE(EXISTS ${VTK_DIR}/VTKConfig.cmake)
|
|
IF(EXISTS ${VTK_DIR}/UseVTK.cmake)
|
|
# We found VTK 4.0 (UseVTK.cmake exists, but not VTKConfig.cmake).
|
|
SET(VTK_FOUND 1)
|
|
SET(VTK_USE_FILE ${VTK_DIR}/UseVTK.cmake)
|
|
|
|
# Hard-code the version number since it isn't provided by VTK 4.0.
|
|
SET(VTK_MAJOR_VERSION 4)
|
|
SET(VTK_MINOR_VERSION 0)
|
|
SET(VTK_BUILD_VERSION 2)
|
|
|
|
# Make sure old UseVTK.cmake will work.
|
|
IF(EXISTS ${VTK_DIR}/Common)
|
|
# This is a VTK 4.0 build tree.
|
|
SET(USE_BUILT_VTK 1)
|
|
SET(VTK_BINARY_PATH ${VTK_DIR})
|
|
ELSE(EXISTS ${VTK_DIR}/Common)
|
|
# This is a VTK 4.0 install tree.
|
|
SET(USE_INSTALLED_VTK 1)
|
|
SET(VTK_INSTALL_PATH ${VTK_DIR}/../..)
|
|
ENDIF(EXISTS ${VTK_DIR}/Common)
|
|
ELSE(EXISTS ${VTK_DIR}/UseVTK.cmake)
|
|
# We did not find VTK.
|
|
SET(VTK_FOUND 0)
|
|
ENDIF(EXISTS ${VTK_DIR}/UseVTK.cmake)
|
|
ENDIF(EXISTS ${VTK_DIR}/VTKConfig.cmake)
|
|
ELSE(VTK_DIR)
|
|
# We did not find VTK.
|
|
SET(VTK_FOUND 0)
|
|
ENDIF(VTK_DIR)
|
|
|
|
IF(VTK_FOUND)
|
|
# Set USE_VTK_FILE for backward-compatability.
|
|
SET(USE_VTK_FILE ${VTK_USE_FILE})
|
|
ELSE(VTK_FOUND)
|
|
# VTK not found, explain to the user how to specify its location.
|
|
IF(NOT VTK_FIND_QUIETLY)
|
|
MESSAGE(${VTK_DIR_MESSAGE})
|
|
ENDIF(NOT VTK_FIND_QUIETLY)
|
|
ENDIF(VTK_FOUND)
|