summaryrefslogtreecommitdiffstats
path: root/Modules/FindVTK.cmake
blob: b4b7ac545e366ec6ddf9ab057c915c1d082f5143 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
#
# Find the native VTK includes and library
#
# 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_BINARY_PATH   - Where is (one of) the binary tree(s).
# USE_INSTALLED_VTK - Should an installed version of VTK be used
#
# 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.
#
# If VTK is not found, an error is displayed unless VTK_FIND_QUIETLY
# is on.
#

#
# 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
  $ENV{HOME}/VTKBIN
  VTK-bin
  ../VTK-bin
  ../../VTK-bin
  $ENV{HOME}/VTK-bin
  vtkbin
  ../vtkbin
  ../../vtkbin
  $ENV{HOME}/vtkbin
  VTK-vc
  ../VTK-vc
  ../../VTK-vc
  $ENV{HOME}/VTK-vc
  VTK-nmake
  ../VTK-nmake
  ../../VTK-nmake
  $ENV{HOME}/VTK-nmake
)

#
# 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
  /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 an installed tree, USE_INSTALLED_VTK allows the user to 
# use it or not.
#
# Defaults to OFF if a built tree was found before (see above), ON otherwise.
#
IF (VTK_INSTALL_PATH)
  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.
#
IF (USE_BUILT_VTK)
  IF (NOT USE_INSTALLED_VTK)
    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)
    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)
    IF (NOT VTK_FIND_QUIETLY)
      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 VTK_FIND_QUIETLY)
  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. 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)
#   SET (CAN_BUILD 0)
# ENDIF (USE_VTK_FILE)