3 if (NOT DEFINED INSTALL_VTK)
4 set (INSTALL_VTK OFF CACHE BOOL "${INSTALL_VTK_DESCR}")
8 if (NOT DEFINED 3RDPARTY_VTK_DIR)
9 set (3RDPARTY_VTK_DIR "" CACHE PATH "The directory containing vtk")
12 # vtk include directory
13 if (NOT DEFINED 3RDPARTY_VTK_INCLUDE_DIR)
14 set (3RDPARTY_VTK_INCLUDE_DIR "" CACHE FILEPATH "The directory containing headers of vtk")
17 # vtk library directory
18 if (NOT DEFINED 3RDPARTY_VTK_LIBRARY_DIR)
19 set (3RDPARTY_VTK_LIBRARY_DIR "" CACHE FILEPATH "The directory containing vtk library")
23 if (WIN32 AND NOT DEFINED 3RDPARTY_VTK_DLL_DIR)
24 set (3RDPARTY_VTK_DLL_DIR "" CACHE FILEPATH "The directory containing VTK dll")
27 # search for vtk in user defined directory
28 if (NOT 3RDPARTY_VTK_DIR AND 3RDPARTY_DIR)
29 FIND_PRODUCT_DIR("${3RDPARTY_DIR}" vtk VTK_DIR_NAME)
31 set (3RDPARTY_VTK_DIR "${3RDPARTY_DIR}/${VTK_DIR_NAME}" CACHE PATH "The directory containing vtk product" FORCE)
36 find_package(VTK QUIET)
40 find_package(VTK QUIET PATHS "${3RDPARTY_VTK_DIR}")
43 if (NOT VTK_FOUND AND NOT 3RDPARTY_VTK_DIR OR NOT EXISTS "${3RDPARTY_VTK_DIR}")
44 message(SEND_ERROR "VTK not found. Set the 3RDPARTY_VTK_DIR cmake cache entry to the directory containing VTK.")
45 set (3RDPARTY_VTK_DIR "3RDPARTY_VTK_DIR-NOTFOUND" CACHE PATH "The directory containing vtk product" FORCE)
49 if (3RDPARTY_VTK_DIR AND EXISTS "${3RDPARTY_VTK_DIR}")
50 get_filename_component(3RDPARTY_VTK_DIR_NAME "${3RDPARTY_VTK_DIR}" NAME)
51 string(REGEX MATCH "^VTK-([0-9].[0-9])" VTK_VERSION "${3RDPARTY_VTK_DIR_NAME}")
52 set(VTK_VERSION "${CMAKE_MATCH_1}")
53 if (NOT 3RDPARTY_VTK_INCLUDE_DIR OR NOT EXISTS "${3RDPARTY_VTK_INCLUDE_DIR}")
54 set (3RDPARTY_VTK_INCLUDE_DIR "${3RDPARTY_VTK_DIR}/include/vtk-${VTK_VERSION}" CACHE FILEPATH "The directory containing includes of VTK" FORCE)
56 if (NOT 3RDPARTY_VTK_LIBRARY_DIR OR NOT EXISTS "${3RDPARTY_VTK_LIBRARY_DIR}")
57 if(EXISTS "${3RDPARTY_VTK_DIR}/lib")
58 set (3RDPARTY_VTK_LIBRARY_DIR "${3RDPARTY_VTK_DIR}/lib" CACHE FILEPATH "The directory containing libs of VTK" FORCE)
59 elseif (EXISTS "${3RDPARTY_VTK_DIR}/lib")
60 set (3RDPARTY_VTK_LIBRARY_DIR "${3RDPARTY_VTK_DIR}/lib" CACHE FILEPATH "The directory containing libs of VTK" FORCE)
63 if(3RDPARTY_VTK_LIBRARY_DIR)
64 list (APPEND 3RDPARTY_LIBRARY_DIRS "${3RDPARTY_VTK_LIBRARY_DIR}")
70 set (VTK_LIBRARY_NAMES vtkCommonCore-${VTK_VERSION}.lib vtkCommonDataModel-${VTK_VERSION}.lib vtkCommonExecutionModel-${VTK_VERSION}.lib
71 vtkCommonMath-${VTK_VERSION}.lib vtkCommonTransforms-${VTK_VERSION}.lib vtkRenderingCore-${VTK_VERSION}.lib
72 vtkRenderingOpenGL-${VTK_VERSION}.lib vtkFiltersGeneral-${VTK_VERSION}.lib vtkIOCore-${VTK_VERSION}.lib
73 vtkIOImage-${VTK_VERSION}.lib vtkImagingCore-${VTK_VERSION}.lib vtkInteractionStyle-${VTK_VERSION}.lib )
76 set (VTK_DLL_NAMES vtkCommonComputationalGeometry-${VTK_VERSION}.dll
77 vtkCommonCore-${VTK_VERSION}.dll
78 vtkCommonDataModel-${VTK_VERSION}.dll
79 vtkCommonExecutionModel-${VTK_VERSION}.dll
80 vtkCommonMath-${VTK_VERSION}.dll
81 vtkCommonMisc-${VTK_VERSION}.dll
82 vtkCommonSystem-${VTK_VERSION}.dll
83 vtkCommonTransforms-${VTK_VERSION}.dll
84 vtkDICOMParser-${VTK_VERSION}.dll
85 vtkFiltersCore-${VTK_VERSION}.dll
86 vtkFiltersExtraction-${VTK_VERSION}.dll
87 vtkFiltersGeneral-${VTK_VERSION}.dll
88 vtkFiltersGeometry-${VTK_VERSION}.dll
89 vtkFiltersSources-${VTK_VERSION}.dll
90 vtkFiltersStatistics-${VTK_VERSION}.dll
91 vtkIOCore-${VTK_VERSION}.dll
92 vtkIOImage-${VTK_VERSION}.dll
93 vtkImagingCore-${VTK_VERSION}.dll
94 vtkImagingFourier-${VTK_VERSION}.dll
95 vtkImagingHybrid-${VTK_VERSION}.dll
96 vtkInteractionStyle-${VTK_VERSION}.dll
97 vtkRenderingCore-${VTK_VERSION}.dll
98 vtkRenderingOpenGL-${VTK_VERSION}.dll
99 vtkalglib-${VTK_VERSION}.dll
100 vtkjpeg-${VTK_VERSION}.dll
101 vtkmetaio-${VTK_VERSION}.dll
102 vtkpng-${VTK_VERSION}.dll
103 vtksys-${VTK_VERSION}.dll
104 vtktiff-${VTK_VERSION}.dll
105 vtkzlib-${VTK_VERSION}.dll )
107 # search for dll directory
109 if (NOT 3RDPARTY_VTK_DLL_DIR OR NOT EXISTS "${3RDPARTY_VTK_DLL_DIR}")
110 if(EXISTS "${3RDPARTY_VTK_DIR}/bin")
111 set (3RDPARTY_VTK_DLL_DIR "${3RDPARTY_VTK_DIR}/bin" CACHE FILEPATH "The directory containing dll of VTK" FORCE)
112 elseif (EXISTS "${3RDPARTY_VTK_DIR}/bind")
113 set (3RDPARTY_VTK_DLL_DIR "${3RDPARTY_VTK_DIR}/bind" CACHE FILEPATH "The directory containing dll of VTK" FORCE)
117 if (3RDPARTY_VTK_DLL_DIR OR EXISTS "${3RDPARTY_VTK_DLL_DIR}")
118 list (APPEND 3RDPARTY_DLL_DIRS "${3RDPARTY_VTK_DLL_DIR}")
122 OCCT_CHECK_AND_UNSET(VTK_DIR)
124 if (3RDPARTY_VTK_INCLUDE_DIR AND EXISTS "${3RDPARTY_VTK_INCLUDE_DIR}")
125 list (APPEND 3RDPARTY_INCLUDE_DIRS "${3RDPARTY_VTK_INCLUDE_DIR}")
127 list (APPEND 3RDPARTY_NOT_INCLUDED 3RDPARTY_VTK_INCLUDE_DIR)
131 OCCT_MAKE_OS_WITH_BITNESS()
132 OCCT_MAKE_COMPILER_SHORT_NAME()
134 if(3RDPARTY_VTK_DLL_DIR AND EXISTS "${3RDPARTY_VTK_DLL_DIR}")
135 set (CMAKE_FIND_LIBRARY_SUFFIXES ".lib" ".dll")
136 foreach(VTK_DLL_NAME ${VTK_DLL_NAMES})
137 set (3RDPARTY_VTK_DLL "3RDPARTY_VTK_DLL-NOTFOUND" CACHE FILEPATH "VTK shared library" FORCE)
138 find_library(3RDPARTY_VTK_DLL "${VTK_DLL_NAME}" PATHS "${3RDPARTY_VTK_DLL_DIR}" NO_DEFAULT_PATH)
139 if (NOT 3RDPARTY_VTK_DLL OR NOT EXISTS "${3RDPARTY_VTK_DLL}")
140 list (APPEND 3RDPARTY_NOT_INCLUDED "${3RDPARTY_VTK_DLL}")
142 install (FILES ${3RDPARTY_VTK_DLL}
143 CONFIGURATIONS Release
144 DESTINATION "${INSTALL_DIR}/${OS_WITH_BIT}/${COMPILER}/bin")
145 install (FILES ${3RDPARTY_VTK_DLL}
146 CONFIGURATIONS RelWithDebInfo
147 DESTINATION "${INSTALL_DIR}/${OS_WITH_BIT}/${COMPILER}/bini")
148 install (FILES ${3RDPARTY_VTK_DLL}
150 DESTINATION "${INSTALL_DIR}/${OS_WITH_BIT}/${COMPILER}/bind")
153 OCCT_CHECK_AND_UNSET(3RDPARTY_VTK_DLL)
156 foreach(VTK_DLL_NAME ${VTK_DLL_NAMES})
157 string(REPLACE ".dll" ".so.1" VTK_DLL_NAME "${VTK_DLL_NAME}")
158 install(FILES "${3RDPARTY_VTK_LIBRARY_DIR}/lib${VTK_DLL_NAME}"
159 CONFIGURATIONS Release
160 DESTINATION "${INSTALL_DIR}/${OS_WITH_BIT}/${COMPILER}/lib"
161 RENAME "lib${VTK_DLL_NAME}")
162 install(FILES "${3RDPARTY_VTK_LIBRARY_DIR}/lib${VTK_DLL_NAME}"
163 CONFIGURATIONS RelWithDebInfo
164 DESTINATION "${INSTALL_DIR}/${OS_WITH_BIT}/${COMPILER}/libi"
165 RENAME "lib${VTK_DLL_NAME}")
166 install(FILES "${3RDPARTY_VTK_LIBRARY_DIR}/lib${VTK_DLL_NAME}"
168 DESTINATION "${INSTALL_DIR}/${OS_WITH_BIT}/${COMPILER}/libd"
169 RENAME "lib${VTK_DLL_NAME}")
173 set (USED_3RDPARTY_VTK_DIR "")
175 # the library directory for using by the executable
177 set (USED_3RDPARTY_VTK_DIR ${3RDPARTY_VTK_DLL_DIR})
179 set (USED_3RDPARTY_VTK_DIR ${3RDPARTY_VTK_LIBRARY_DIR})
183 mark_as_advanced (VTK_INCLUDE_DIRS VTK_LIBRARY_DIRS VTK_DIR)