浏览代码

updated to how FindVTK works

Ken Martin 24 年之前
父节点
当前提交
ee858f555c
共有 3 个文件被更改,包括 119 次插入9 次删除
  1. 69 9
      Modules/FindVTK.cmake
  2. 25 0
      Modules/UseVTKIncludes.cmake
  3. 25 0
      Modules/UseVTKLibraries.cmake

+ 69 - 9
Modules/FindVTK.cmake

@@ -1,16 +1,76 @@
 #
 #
 # Find the native VTK includes and library
 # Find the native VTK includes and library
 #
 #
+# This module defines
+#
+# VTK_INSTALL_PATH - where is the installed version of VTK
+# VTK_SOURCE_PATH - where is VTK source code
+# VTK_BIN_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
+#
+
+
+#
+# Look for local source trees and builds of VTK
+#
+# look in the cmake list of recent source and bin dirs for this user
+#
+FIND_PATH(VTK_SOURCE_PATH Common/vtkObject.h
+    [HKEY_CURRENT_USER\\Software\\Kitware\\CMakeSetup\\Settings\\StartPath;WhereSource]
+    [HKEY_CURRENT_USER\\Software\\Kitware\\CMakeSetup\\Settings\\StartPath;WhereSource2]
+    [HKEY_CURRENT_USER\\Software\\Kitware\\CMakeSetup\\Settings\\StartPath;WhereSource3]
+    [HKEY_CURRENT_USER\\Software\\Kitware\\CMakeSetup\\Settings\\StartPath;WhereSource4]
+    ../VTK
+    VTK
+  )
+
+#
+# If we found a source tree then set use_installed_vtk to 0
+#
+IF (VTK_SOURCE_PATH)
+  SET (USE_INSTALLED_VTK 0 CACHE BOOL "Is an installed (versus source) version of VTK used")
+  #
+  # Look for a binary tree
+  # 
+  FIND_PATH(VTK_BIN_PATH vtkConfigure.h
+    [HKEY_CURRENT_USER\\Software\\Kitware\\CMakeSetup\\Settings\\StartPath;WhereBuild]
+    [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]
+    ../VTKBIN
+    ../vtkbin
+    VTKBIN
+    vtkbin
+    )
+ELSE (VTK_SOURCE_PATH)
+  # look for the vtk header files in installed places
+  FIND_PATH(VTK_INSTALL_PATH include/vtk/vtkObject.h
+    /usr/local
+    /usr
+    )
+  FIND_PATH(VTK_INSTALL_PATH include/vtkObject.h
+    [HKEY_LOCAL_MACHINE\\SOFTWARE\\Kitware\\VTK\\Nightly]
+    )
+  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 (VTK_SOURCE_PATH)
+
+IF (USE_INSTALLED_VTK)
+  # look for the vtk header files in installed places
+  FIND_PATH(VTK_INSTALL_PATH include/vtk/vtkObject.h
+    /usr/local
+    /usr
+    )
+  FIND_PATH(VTK_INSTALL_PATH include/vtkObject.h
+    [HKEY_LOCAL_MACHINE\\SOFTWARE\\Kitware\\VTK\\Nightly]
+    )
+  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)
+
 
 
 
 
-FIND_PATH(VTK_INCLUDE_PATH vtk.h
-/usr/local/include
-/usr/include
-/usr/local/vtk
-H:/usr/local/vtk
-)
 
 
-FIND_LIBRARY(VTK_LIB_PATH  vtk.dll
-PATHS /usr/lib /usr/local/lib /usr/local/vtk/lib H:/usr/local/vtk/lib
-)
 
 

+ 25 - 0
Modules/UseVTKIncludes.cmake

@@ -0,0 +1,25 @@
+#
+# This module add the VTK include paths to a project
+# It should be included after the FindVTK module
+#
+IF (USE_INSTALLED_VTK)
+  IF (VTK_INSTALL_PATH)
+    INCLUDE_DIRECTORIES ( ${VTK_INSTALL_PATH}/include ${VTK_INSTALL_PATH}/include/vtk )
+  ENDIF (VTK_INSTALL_PATH)
+ELSE (USE_INSTALLED_VTK)
+  IF (VTK_SOURCE_PATH)
+    INCLUDE_DIRECTORIES(
+       ${VTK_SOURCE_PATH}/Common
+       ${VTK_SOURCE_PATH}/Filtering
+       ${VTK_SOURCE_PATH}/IO
+       ${VTK_SOURCE_PATH}/Graphics
+       ${VTK_SOURCE_PATH}/Imaging
+       ${VTK_SOURCE_PATH}/Rendering
+       ${VTK_SOURCE_PATH}/Hybrid
+       ${VTK_SOURCE_PATH}/Patented
+       ${VTK_SOURCE_PATH}/Parallel)
+  ENDIF (VTK_SOURCE_PATH)
+  IF (VTK_BIN_PATH)
+    INCLUDE_DIRECTORIES( ${VTK_BIN_PATH) )
+  ENDIF (VTK_BIN_PATH)
+ENDIF (USE_INSTALLED_VTK)

+ 25 - 0
Modules/UseVTKLibraries.cmake

@@ -0,0 +1,25 @@
+#
+# This module add the VTK include paths to a project
+# It should be included after the FindVTK module
+#
+IF (USE_INSTALLED_VTK)
+  IF (VTK_INSTALL_PATH)
+    LINK_DIRECTORIES ( ${VTK_INSTALL_PATH}/lib )
+  ENDIF (VTK_INSTALL_PATH)
+ELSE (USE_INSTALLED_VTK)
+  IF (VTK_SOURCE_PATH)
+    INCLUDE_DIRECTORIES(
+       ${VTK_SOURCE_PATH}/Common
+       ${VTK_SOURCE_PATH}/Filtering
+       ${VTK_SOURCE_PATH}/IO
+       ${VTK_SOURCE_PATH}/Graphics
+       ${VTK_SOURCE_PATH}/Imaging
+       ${VTK_SOURCE_PATH}/Rendering
+       ${VTK_SOURCE_PATH}/Hybrid
+       ${VTK_SOURCE_PATH}/Patented
+       ${VTK_SOURCE_PATH}/Parallel)
+  ENDIF (VTK_SOURCE_PATH)
+  IF (VTK_BIN_PATH)
+    INCLUDE_DIRECTORIES( ${VTK_BIN_PATH) )
+  ENDIF (VTK_BIN_PATH)
+ENDIF (USE_INSTALLED_VTK)