FindVTK.cmake 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128
  1. #
  2. # Find a VTK installation or build tree.
  3. #
  4. # The following variables are set if VTK is found. If VTK is not
  5. # found, VTK_FOUND is set to false.
  6. #
  7. # VTK_FOUND - Set to true when VTK is found.
  8. # VTK_USE_FILE - CMake source file to setup a project to use VTK.
  9. # VTK_MAJOR_VERSION - The VTK major version number.
  10. # VTK_MINOR_VERSION - The VTK minor version number (odd for non-release).
  11. # VTK_BUILD_VERSION - The VTK patch level (meaningless for odd minor).
  12. # VTK_INCLUDE_DIRS - Include directories for VTK headers.
  13. # VTK_LIBRARY_DIRS - Link directories for VTK libraries.
  14. # VTK_KITS - List of VTK kits, in all CAPS (COMMON, IO, ...).
  15. # VTK_LANGUAGES - List of wrapped languages, in all CAPS (TCL, ...).
  16. #
  17. # The following cache entries must be set by the user to locate VTK:
  18. #
  19. # VTK_DIR - The directory containing VTKConfig.cmake. This is either
  20. # the root of the build tree, or the lib/vtk
  21. # directory. This is the only cache entry.
  22. #
  23. # The following variables are set for backward compatability and
  24. # should not be used in new code:
  25. #
  26. # USE_VTK_FILE - The full path to the UseVTK.cmake file. This is provided
  27. # for backward compatability. Use VTK_USE_FILE instead.
  28. #
  29. # Construct consitent error messages for use below.
  30. 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.")
  31. SET(VTK_DIR_MESSAGE "VTK not found. Set the VTK_DIR cmake cache entry to the ${VTK_DIR_DESCRIPTION}")
  32. # Search only if the location is not already known.
  33. IF(NOT VTK_DIR)
  34. # Get the system search path as a list.
  35. IF(UNIX)
  36. STRING(REGEX MATCHALL "[^:]+" VTK_DIR_SEARCH1 "$ENV{PATH}")
  37. ELSE(UNIX)
  38. STRING(REGEX REPLACE "\\\\" "/" VTK_DIR_SEARCH1 "$ENV{PATH}")
  39. ENDIF(UNIX)
  40. STRING(REGEX REPLACE "/;" ";" VTK_DIR_SEARCH2 "${VTK_DIR_SEARCH1}")
  41. # Construct a set of paths relative to the system search path.
  42. SET(VTK_DIR_SEARCH "")
  43. FOREACH(dir ${VTK_DIR_SEARCH2})
  44. SET(VTK_DIR_SEARCH ${VTK_DIR_SEARCH} "${dir}/../lib/vtk")
  45. ENDFOREACH(dir)
  46. # Old scripts may set these directories in the CMakeCache.txt file.
  47. # They can tell us where to find VTKConfig.cmake.
  48. SET(VTK_DIR_SEARCH_LEGACY "")
  49. IF(VTK_BINARY_PATH AND USE_BUILT_VTK)
  50. SET(VTK_DIR_SEARCH_LEGACY ${VTK_DIR_SEARCH_LEGACY} ${VTK_BINARY_PATH})
  51. ENDIF(VTK_BINARY_PATH AND USE_BUILT_VTK)
  52. IF(VTK_INSTALL_PATH AND USE_INSTALLED_VTK)
  53. SET(VTK_DIR_SEARCH_LEGACY ${VTK_DIR_SEARCH_LEGACY}
  54. ${VTK_INSTALL_PATH}/lib/vtk)
  55. ENDIF(VTK_INSTALL_PATH AND USE_INSTALLED_VTK)
  56. #
  57. # Look for an installation or build tree.
  58. #
  59. FIND_PATH(VTK_DIR UseVTK.cmake
  60. # Support legacy cache files.
  61. ${VTK_DIR_SEARCH_LEGACY}
  62. # Look in places relative to the system executable search path.
  63. ${VTK_DIR_SEARCH}
  64. # Look in standard UNIX install locations.
  65. /usr/local/lib/vtk
  66. /usr/lib/vtk
  67. # Read from the CMakeSetup registry entries. It is likely that
  68. # VTK will have been recently built.
  69. [HKEY_CURRENT_USER\\Software\\Kitware\\CMakeSetup\\Settings\\StartPath;WhereBuild1]
  70. [HKEY_CURRENT_USER\\Software\\Kitware\\CMakeSetup\\Settings\\StartPath;WhereBuild2]
  71. [HKEY_CURRENT_USER\\Software\\Kitware\\CMakeSetup\\Settings\\StartPath;WhereBuild3]
  72. [HKEY_CURRENT_USER\\Software\\Kitware\\CMakeSetup\\Settings\\StartPath;WhereBuild4]
  73. [HKEY_CURRENT_USER\\Software\\Kitware\\CMakeSetup\\Settings\\StartPath;WhereBuild5]
  74. [HKEY_CURRENT_USER\\Software\\Kitware\\CMakeSetup\\Settings\\StartPath;WhereBuild6]
  75. [HKEY_CURRENT_USER\\Software\\Kitware\\CMakeSetup\\Settings\\StartPath;WhereBuild7]
  76. [HKEY_CURRENT_USER\\Software\\Kitware\\CMakeSetup\\Settings\\StartPath;WhereBuild8]
  77. [HKEY_CURRENT_USER\\Software\\Kitware\\CMakeSetup\\Settings\\StartPath;WhereBuild9]
  78. [HKEY_CURRENT_USER\\Software\\Kitware\\CMakeSetup\\Settings\\StartPath;WhereBuild10]
  79. # Help the user find it if we cannot.
  80. DOC "The ${VTK_DIR_DESCRIPTION}"
  81. )
  82. ENDIF(NOT VTK_DIR)
  83. # If VTK was found, load the configuration file to get the rest of the
  84. # settings.
  85. IF(VTK_DIR)
  86. # Make sure the VTKConfig.cmake file exists in the directory provided.
  87. IF(EXISTS ${VTK_DIR}/VTKConfig.cmake)
  88. # We found VTK. Load the settings.
  89. SET(VTK_FOUND 1)
  90. INCLUDE(${VTK_DIR}/VTKConfig.cmake)
  91. ELSE(EXISTS ${VTK_DIR}/VTKConfig.cmake)
  92. IF(EXISTS ${VTK_DIR}/UseVTK.cmake)
  93. # We found VTK 4.0 (UseVTK.cmake exists, but not VTKConfig.cmake).
  94. SET(VTK_FOUND 1)
  95. # Load settings for VTK 4.0.
  96. INCLUDE(${CMAKE_ROOT}/Modules/UseVTKConfig40.cmake)
  97. ELSE(EXISTS ${VTK_DIR}/UseVTK.cmake)
  98. # We did not find VTK.
  99. SET(VTK_FOUND 0)
  100. ENDIF(EXISTS ${VTK_DIR}/UseVTK.cmake)
  101. ENDIF(EXISTS ${VTK_DIR}/VTKConfig.cmake)
  102. ELSE(VTK_DIR)
  103. # We did not find VTK.
  104. SET(VTK_FOUND 0)
  105. ENDIF(VTK_DIR)
  106. #-----------------------------------------------------------------------------
  107. IF(VTK_FOUND)
  108. # Set USE_VTK_FILE for backward-compatability.
  109. SET(USE_VTK_FILE ${VTK_USE_FILE})
  110. ELSE(VTK_FOUND)
  111. # VTK not found, explain to the user how to specify its location.
  112. IF(NOT VTK_FIND_QUIETLY)
  113. MESSAGE(FATAL_ERROR ${VTK_DIR_MESSAGE})
  114. ENDIF(NOT VTK_FIND_QUIETLY)
  115. ENDIF(VTK_FOUND)