summaryrefslogtreecommitdiffstats
path: root/Modules/FindVTK.cmake
diff options
context:
space:
mode:
authorSebastien Barre <sebastien.barre@kitware.com>2001-12-21 19:40:33 (GMT)
committerSebastien Barre <sebastien.barre@kitware.com>2001-12-21 19:40:33 (GMT)
commit65339be84a3e271ee0c2c4340e03f448d62a97f0 (patch)
tree315f6b0f30bea97b32cfeb3ea8aa6f819efcae49 /Modules/FindVTK.cmake
parent3b9b80b14ccfcfabb8db43cfb3c08e8c89f5d14b (diff)
downloadCMake-65339be84a3e271ee0c2c4340e03f448d62a97f0.zip
CMake-65339be84a3e271ee0c2c4340e03f448d62a97f0.tar.gz
CMake-65339be84a3e271ee0c2c4340e03f448d62a97f0.tar.bz2
Change so that different flavours of VTK might be chosen by the user. See full instructions in that file.
Diffstat (limited to 'Modules/FindVTK.cmake')
-rw-r--r--Modules/FindVTK.cmake187
1 files changed, 122 insertions, 65 deletions
diff --git a/Modules/FindVTK.cmake b/Modules/FindVTK.cmake
index d0138e5..8862f30 100644
--- a/Modules/FindVTK.cmake
+++ b/Modules/FindVTK.cmake
@@ -1,83 +1,140 @@
#
# Find the native VTK includes and library
#
-# This module defines
+# This module defines:
#
-# VTK_INSTALL_PATH - where is the installed version of VTK
-# VTK_BINARY_PATH - where is the binary tree (only defined if SOURCE_PATH is defined)
-# USE_INSTALLED_VTK - sould an installed or source version of VTK be used
-# USE_VTK_FILE - the full path and location of the UseVTK.cmake file
+# VTK_INSTALL_PATH - where is the installed version of VTK.
+# USE_BUILT_VTK - should a built-from-source version of VTK be used
+#
+# VTK_BINARY_PATH - where is (one of) the binary tree(s).
+# USE_INSTALLED_VTK - should an installed version of VTK be used
+#
+# USE_VTK_FILE - the full path and location of the UseVTK.cmake file
+# ONLY SET if ONE of the USE_BUILT_VTK or
+# USE_INSTALLED_VTK is set to ON.
#
#
-# Look for a binary tree
+# Look for a binary tree (built from source)
#
FIND_PATH(VTK_BINARY_PATH UseVTK.cmake
- [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]
- ../VTKBIN
- ../vtkbin
- VTKBIN
- vtkbin
- $ENV{HOME}/VTKBIN
- $ENV{HOME}/vtkbin
- )
+ [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]
+ ../VTKBIN
+ ../vtkbin
+ VTKBIN
+ vtkbin
+ $ENV{HOME}/VTKBIN
+ $ENV{HOME}/vtkbin
+)
+
+#
+# Look for an installed tree
+#
+FIND_PATH(VTK_INSTALL_PATH include/vtk/UseVTK.cmake
+ /usr/local
+ /usr
+ [HKEY_LOCAL_MACHINE\\SOFTWARE\\Kitware\\VTK\\Nightly]
+ [HKEY_LOCAL_MACHINE\\SOFTWARE\\Kitware\\VTK\\43]
+ [HKEY_LOCAL_MACHINE\\SOFTWARE\\Kitware\\VTK\\42]
+ [HKEY_LOCAL_MACHINE\\SOFTWARE\\Kitware\\VTK\\41]
+ [HKEY_LOCAL_MACHINE\\SOFTWARE\\Kitware\\VTK\\40]
+)
#
-# If we found a binary tree then set use_installed_vtk to 0
+# If we found a built tree, USE_BUILT_VTK allows the user to
+# use it or not.
+#
+# Important: it *has* to be set to OFF first in order to allow
+# the user to change the VTK_BINARY_PATH value *before* the USE_VTK_FILE
+# is set (and the cache created).
+#
+# For example, CMake could have picked-up the wrong VTK binary path, and if
+# the related VTK cache was immediately loaded there would not be any way
+# to overwrite these cache values (even by changing the binary path or
+# USE_VTK_FILE).
#
IF (VTK_BINARY_PATH)
- SET (USE_INSTALLED_VTK 0 CACHE BOOL "Is an installed (versus source) version of VTK used")
-ELSE (VTK_BINARY_PATH)
- # look for installed path
- FIND_PATH(VTK_INSTALL_PATH include/vtk/UseVTK.cmake
- /usr/local
- /usr
- [HKEY_LOCAL_MACHINE\\SOFTWARE\\Kitware\\VTK\\Nightly]
- [HKEY_LOCAL_MACHINE\\SOFTWARE\\Kitware\\VTK\\43]
- [HKEY_LOCAL_MACHINE\\SOFTWARE\\Kitware\\VTK\\42]
- [HKEY_LOCAL_MACHINE\\SOFTWARE\\Kitware\\VTK\\41]
- [HKEY_LOCAL_MACHINE\\SOFTWARE\\Kitware\\VTK\\40]
- )
- IF (VTK_INSTALL_PATH)
- SET (USE_INSTALLED_VTK 1 CACHE BOOL "Is an installed (versus source) version of VTK used")
- ENDIF (VTK_INSTALL_PATH)
+ SET (USE_BUILT_VTK 0 CACHE BOOL
+ "Use a built (versus installed) version of VTK. Be sure VTK_BINARY_PATH is correct before setting it to ON.")
ENDIF (VTK_BINARY_PATH)
-IF (USE_INSTALLED_VTK)
- # look for the vtk header files in installed places
- FIND_PATH(VTK_INSTALL_PATH include/vtk/UseVTK.cmake
- /usr/local
- /usr
- [HKEY_LOCAL_MACHINE\\SOFTWARE\\Kitware\\VTK\\Nightly]
- [HKEY_LOCAL_MACHINE\\SOFTWARE\\Kitware\\VTK\\43]
- [HKEY_LOCAL_MACHINE\\SOFTWARE\\Kitware\\VTK\\42]
- [HKEY_LOCAL_MACHINE\\SOFTWARE\\Kitware\\VTK\\41]
- [HKEY_LOCAL_MACHINE\\SOFTWARE\\Kitware\\VTK\\40]
- )
- IF (VTK_INSTALL_PATH)
- SET (USE_INSTALLED_VTK 1 CACHE BOOL "Is an installed (versus source) version of VTK used")
- ENDIF (VTK_INSTALL_PATH)
-ENDIF (USE_INSTALLED_VTK)
-
+#
+# If we found an installed tree, USE_INSTALLED_VTK allows the user to
+# use it or not.
+#
+# Important: it *has* to be set to OFF first in order to allow
+# the user to change the VTK_INSTALL_PATH value before the USE_VTK_FILE
+# is set (and the cache created).
+#
+# For example, you might have simultaneously installed different major
+# versions like VTK 3.2, 4.0, 5.1, etc.
+#
+# Moreover, USE_INSTALLED_VTK has to be OFF since USE_BUILT_VTK has to be OFF
+# too (see above). If USE_INSTALLED_VTK was ON by default, then USE_VTK_FILE
+# would be set immediately (since one of them is ON) in favor of the
+# installed tree.
+#
+IF (VTK_INSTALL_PATH)
+ SET (USE_INSTALLED_VTK 0 CACHE BOOL
+ "Use an installed (versus built from source) version of VTK. Be sure VTK_INSTALL_PATH is correct before setting it to ON.")
+ENDIF (VTK_INSTALL_PATH)
-IF (USE_INSTALLED_VTK)
- IF (VTK_INSTALL_PATH)
- SET (USE_VTK_FILE ${VTK_INSTALL_PATH}/include/vtk/UseVTK.cmake)
- ENDIF (VTK_INSTALL_PATH)
-ELSE (USE_INSTALLED_VTK)
- IF (VTK_BINARY_PATH)
+#
+# Set the USE_VTK_FILE only if one of USE_BUILT_VTK or USE_INSTALLED_VTK
+# is ON, i.e. if the user has decided if he wants to use either the built
+# or the installed VTK. Even if only one of the VTK flavor was found,
+# this also enable the user to change the path to his VTK (in case the
+# wrong installed or built VTK was automatically found).
+#
+# Once this decision has been made, there is no way to go back except by
+# erasing the cache. Mark these useless vars as ADVANCED to reflect this.
+#
+IF (USE_BUILT_VTK)
+ IF (NOT USE_INSTALLED_VTK)
FIND_FILE(USE_VTK_FILE UseVTK.cmake ${VTK_BINARY_PATH})
- ENDIF (VTK_BINARY_PATH)
-ENDIF (USE_INSTALLED_VTK)
-
-
+ MARK_AS_ADVANCED(
+ USE_BUILT_VTK
+ USE_INSTALLED_VTK
+ USE_VTK_FILE
+ VTK_INSTALL_PATH
+ )
+ ENDIF (NOT USE_INSTALLED_VTK)
+ELSE (USE_BUILT_VTK)
+ IF (USE_INSTALLED_VTK)
+ SET (USE_VTK_FILE ${VTK_INSTALL_PATH}/include/vtk/UseVTK.cmake)
+ MARK_AS_ADVANCED(
+ USE_BUILT_VTK
+ USE_INSTALLED_VTK
+ USE_VTK_FILE
+ VTK_BINARY_PATH
+ )
+ ENDIF (USE_INSTALLED_VTK)
+ENDIF (USE_BUILT_VTK)
+# Note:
+#
+# If you use that module then you are probably relying on VTK to be found
+# on your system. As said before, it might be found as different flavours:
+# installed VTK, or (multiple) built VTK. Moreover, even if it is found
+# automatically, CMake might have picked the wrong path/version.
+#
+# Here is the CMake code you might probably want to use to work hand-in-hand
+# with that module:
+#
+# INCLUDE (${CMAKE_ROOT}/Modules/FindVTK.cmake)
+#
+# IF (USE_VTK_FILE)
+# INCLUDE (${USE_VTK_FILE})
+# ELSE (USE_VTK_FILE)
+# MESSAGE("Warning. This project is supposed to work with VTK, which might be found on your system as different flavours: installed VTK, or (multiple) built VTK. Please, make sure that the VTK_INSTALL_PATH or VTK_BINARY_PATH setting reflect which VTK you are planning to use, then set one of the USE_INSTALLED_VTK or USE_BUILT_VTK to ON.")
+# SET (CAN_BUILD 0)
+# ENDIF (USE_VTK_FILE)