2001-05-23 19:34:19 +04:00
#
2002-11-20 21:37:52 +03:00
# Find a VTK installation or build tree.
2001-05-23 19:34:19 +04:00
#
2002-11-20 21:37:52 +03:00
# 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
2001-09-19 22:52:59 +04:00
#
2002-11-20 21:37:52 +03:00
# VTK_USE_FILE - A CMake source file that can be included
# to set the include directories, library
# directories, and preprocessor macros.
2001-12-21 22:40:33 +03:00
#
2002-11-20 21:37:52 +03:00
# In addition to the variables read from VTKConfig.cmake, this find
# module also defines
2001-12-21 22:40:33 +03:00
#
2002-11-20 21:37:52 +03:00
# 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.
2001-09-19 22:52:59 +04:00
#
2002-11-20 21:37:52 +03:00
# VTK_FOUND - Whether VTK was found. If this is true, VTK_DIR is okay.
2002-01-23 01:18:50 +03:00
#
2002-11-20 21:37:52 +03:00
# USE_VTK_FILE - The full path to the UseVTK.cmake file. This is provided
# for backward compatability. Use VTK_USE_FILE instead.
2001-09-19 22:52:59 +04:00
#
2001-12-21 22:40:33 +03:00
2002-11-20 21:37:52 +03:00
# Construct consitent error messages for use below.
2002-11-21 00:23:20 +03:00
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." )
2002-11-20 21:37:52 +03:00
SET ( VTK_DIR_MESSAGE "VTK not found. Set VTK_DIR to the ${VTK_DIR_DESCRIPTION}" )
2002-01-08 01:29:06 +03:00
2002-11-20 21:37:52 +03:00
# 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 } )
2001-09-21 01:31:38 +04:00
2002-11-20 21:37:52 +03:00
# 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 )
2001-05-23 19:34:19 +04:00
2002-11-20 21:37:52 +03:00
# 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 "" )
2002-11-20 22:11:07 +03:00
IF ( VTK_BINARY_PATH AND USE_BUILT_VTK )
2002-11-20 21:37:52 +03:00
SET ( VTK_DIR_SEARCH_LEGACY ${ VTK_DIR_SEARCH_LEGACY } ${ VTK_BINARY_PATH } )
2002-11-20 22:11:07 +03:00
ENDIF ( VTK_BINARY_PATH AND USE_BUILT_VTK )
IF ( VTK_INSTALL_PATH AND USE_INSTALLED_VTK )
2002-11-20 21:37:52 +03:00
SET ( VTK_DIR_SEARCH_LEGACY ${ VTK_DIR_SEARCH_LEGACY }
$ { V T K _ I N S T A L L _ P A T H } / l i b / v t k )
2002-11-20 22:11:07 +03:00
ENDIF ( VTK_INSTALL_PATH AND USE_INSTALLED_VTK )
2001-05-23 19:34:19 +04:00
2002-11-20 21:37:52 +03:00
#
# Look for an installation or build tree.
#
2002-11-21 00:23:20 +03:00
FIND_PATH ( VTK_DIR UseVTK.cmake
2002-11-20 21:37:52 +03:00
# Support legacy cache files.
$ { V T K _ D I R _ S E A R C H _ L E G A C Y }
2002-01-08 01:29:06 +03:00
2002-11-20 21:37:52 +03:00
# Look in places relative to the system executable search path.
$ { V T K _ D I R _ S E A R C H }
# Look in standard UNIX install locations.
/ u s r / l o c a l / l i b / v t k
/ u s r / l i b / v t k
# Read from the CMakeSetup registry entries. It is likely that
# VTK will have been recently built.
[ H K E Y _ C U R R E N T _ U S E R \ \ S o f t w a r e \ \ K i t w a r e \ \ C M a k e S e t u p \ \ S e t t i n g s \ \ S t a r t P a t h ; W h e r e B u i l d 1 ]
[ H K E Y _ C U R R E N T _ U S E R \ \ S o f t w a r e \ \ K i t w a r e \ \ C M a k e S e t u p \ \ S e t t i n g s \ \ S t a r t P a t h ; W h e r e B u i l d 2 ]
[ H K E Y _ C U R R E N T _ U S E R \ \ S o f t w a r e \ \ K i t w a r e \ \ C M a k e S e t u p \ \ S e t t i n g s \ \ S t a r t P a t h ; W h e r e B u i l d 3 ]
[ H K E Y _ C U R R E N T _ U S E R \ \ S o f t w a r e \ \ K i t w a r e \ \ C M a k e S e t u p \ \ S e t t i n g s \ \ S t a r t P a t h ; W h e r e B u i l d 4 ]
[ H K E Y _ C U R R E N T _ U S E R \ \ S o f t w a r e \ \ K i t w a r e \ \ C M a k e S e t u p \ \ S e t t i n g s \ \ S t a r t P a t h ; W h e r e B u i l d 5 ]
[ H K E Y _ C U R R E N T _ U S E R \ \ S o f t w a r e \ \ K i t w a r e \ \ C M a k e S e t u p \ \ S e t t i n g s \ \ S t a r t P a t h ; W h e r e B u i l d 6 ]
[ H K E Y _ C U R R E N T _ U S E R \ \ S o f t w a r e \ \ K i t w a r e \ \ C M a k e S e t u p \ \ S e t t i n g s \ \ S t a r t P a t h ; W h e r e B u i l d 7 ]
[ H K E Y _ C U R R E N T _ U S E R \ \ S o f t w a r e \ \ K i t w a r e \ \ C M a k e S e t u p \ \ S e t t i n g s \ \ S t a r t P a t h ; W h e r e B u i l d 8 ]
[ H K E Y _ C U R R E N T _ U S E R \ \ S o f t w a r e \ \ K i t w a r e \ \ C M a k e S e t u p \ \ S e t t i n g s \ \ S t a r t P a t h ; W h e r e B u i l d 9 ]
[ H K E Y _ C U R R E N T _ U S E R \ \ S o f t w a r e \ \ K i t w a r e \ \ C M a k e S e t u p \ \ S e t t i n g s \ \ S t a r t P a t h ; W h e r e B u i l d 1 0 ]
# Help the user find it if we cannot.
D O C " T h e $ { V T K _ D I R _ D E S C R I P T I O N } "
)
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 )
2002-11-21 00:23:20 +03:00
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 )
2002-11-20 21:37:52 +03:00
ENDIF ( EXISTS ${ VTK_DIR } /VTKConfig.cmake )
ELSE ( VTK_DIR )
# We did not find VTK.
SET ( VTK_FOUND 0 )
ENDIF ( VTK_DIR )
2002-11-21 00:23:20 +03:00
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 )
2002-11-20 21:37:52 +03:00
MESSAGE ( ${ VTK_DIR_MESSAGE } )
2002-11-21 00:23:20 +03:00
ENDIF ( NOT VTK_FIND_QUIETLY )
ENDIF ( VTK_FOUND )