diff options
Diffstat (limited to 'Modules')
-rw-r--r-- | Modules/FindVTK.cmake | 114 |
1 files changed, 48 insertions, 66 deletions
diff --git a/Modules/FindVTK.cmake b/Modules/FindVTK.cmake index 8862f30..9590480 100644 --- a/Modules/FindVTK.cmake +++ b/Modules/FindVTK.cmake @@ -3,15 +3,17 @@ # # This module defines: # -# VTK_INSTALL_PATH - where is the installed version of VTK. -# USE_BUILT_VTK - should a built-from-source version of VTK be used +# 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 +# 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. +# USE_VTK_FILE - (internal) +# Full path and location to the UseVTK.cmake file. +# This value changes each time USE_BUILT_VTK or +# USE_INSTALLED_VTK is modified, and only if ONE of +# these setting is set to ON. # # @@ -37,6 +39,15 @@ FIND_PATH(VTK_BINARY_PATH UseVTK.cmake ) # +# If we found a built tree, USE_BUILT_VTK allows the user to +# use it or not. Defaults to ON. +# +IF (VTK_BINARY_PATH) + SET (USE_BUILT_VTK 1 CACHE BOOL + "Use a built (versus installed) version of VTK. Be sure that VTK_BINARY_PATH is correct.") +ENDIF (VTK_BINARY_PATH) + +# # Look for an installed tree # FIND_PATH(VTK_INSTALL_PATH include/vtk/UseVTK.cmake @@ -50,91 +61,62 @@ FIND_PATH(VTK_INSTALL_PATH include/vtk/UseVTK.cmake ) # -# 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_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 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. +# Defaults to OFF if a built tree was found before (see above), ON otherwise. # 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.") + IF (USE_BUILT_VTK) + SET (USE_INSTALLED_VTK 0 CACHE BOOL + "Use an installed (versus built from source) version of VTK. Be sure that VTK_INSTALL_PATH is correct.") + ELSE (USE_BUILT_VTK) + SET (USE_INSTALLED_VTK 1 CACHE BOOL + "Use an installed (versus built from source) version of VTK. Be sure that VTK_INSTALL_PATH is correct.") + ENDIF (USE_BUILT_VTK) ENDIF (VTK_INSTALL_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. +# is ON. # IF (USE_BUILT_VTK) IF (NOT USE_INSTALLED_VTK) - FIND_FILE(USE_VTK_FILE UseVTK.cmake ${VTK_BINARY_PATH}) - MARK_AS_ADVANCED( - USE_BUILT_VTK - USE_INSTALLED_VTK - USE_VTK_FILE - VTK_INSTALL_PATH - ) + IF (EXISTS "${VTK_BINARY_PATH}/UseVTK.cmake") + SET (USE_VTK_FILE "${VTK_BINARY_PATH}/UseVTK.cmake") + ENDIF (EXISTS "${VTK_BINARY_PATH}/UseVTK.cmake") 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 - ) + IF (EXISTS "${VTK_INSTALL_PATH}/include/vtk/UseVTK.cmake") + SET (USE_VTK_FILE "${VTK_INSTALL_PATH}/include/vtk/UseVTK.cmake") + ENDIF (EXISTS "${VTK_INSTALL_PATH}/include/vtk/UseVTK.cmake") ENDIF (USE_INSTALLED_VTK) ENDIF (USE_BUILT_VTK) +# +# Display a warning if both settings are set to ON. +# Otherwise display a warning if VTK was not found. +# +IF (USE_BUILT_VTK AND USE_INSTALLED_VTK) + MESSAGE ("Warning. Please make sure that only ONE of the USE_INSTALLED_VTK or USE_BUILT_VTK setting is set to ON.") +ELSE (USE_BUILT_VTK AND USE_INSTALLED_VTK) + IF (NOT USE_VTK_FILE) + MESSAGE ("Warning. VTK might be found on your system as different flavours: installed VTK or built VTK. Please make sure that the VTK_INSTALL_PATH or VTK_BINARY_PATH setting reflects which VTK you are planning to use, then set ONE of the USE_INSTALLED_VTK or USE_BUILT_VTK setting to ON.") + ENDIF (NOT USE_VTK_FILE) +ENDIF (USE_BUILT_VTK AND USE_INSTALLED_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: +# on your system. Here is the CMake code you might probably want to use to +# work hand-in-hand with that module (in that example CAN_BUILD is a var +# that is set to 0 if your project can not be build): # # 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) |