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 set (3RDPARTY_VTK_REQUIRED_LIBRARIES vtkCommonCore
14 vtkCommonExecutionModel
19 vtkRenderingFreeTypeOpenGL
27 # include occt macros. compiler_bitness, os_wiht_bit, compiler
28 OCCT_INCLUDE_CMAKE_FILE ("adm/cmake/occt_macros")
30 # specify VTK folder in connectin with 3RDPARTY_DIR
31 if (3RDPARTY_DIR AND EXISTS "${3RDPARTY_DIR}")
32 #CHECK_PATH_FOR_CONSISTENCY (3RDPARTY_DIR 3RDPARTY_VTK_DIR PATH "The directory containing VTK")
34 if (NOT 3RDPARTY_VTK_DIR OR NOT EXISTS "${3RDPARTY_VTK_DIR}")
35 FIND_PRODUCT_DIR ("${3RDPARTY_DIR}" VTK VTK_DIR_NAME)
37 set (3RDPARTY_VTK_DIR "${3RDPARTY_DIR}/${VTK_DIR_NAME}" CACHE PATH "The directory containing VTK" FORCE)
41 #set (3RDPARTY_VTK_DIR "" CACHE PATH "The directory containing VTK" FORCE)
44 # vtk include directory
45 if (NOT DEFINED 3RDPARTY_VTK_INCLUDE_DIR)
46 set (3RDPARTY_VTK_INCLUDE_DIR "" CACHE PATH "The directory containing headers of VTK")
49 # vtk library directory
50 if (NOT DEFINED 3RDPARTY_VTK_LIBRARY_DIR)
51 set (3RDPARTY_VTK_LIBRARY_DIR "" CACHE PATH "The directory containing VTK libraries")
55 if (WIN32 AND NOT DEFINED 3RDPARTY_VTK_DLL_DIR)
56 set (3RDPARTY_VTK_DLL_DIR "" CACHE PATH "The directory containing VTK shared libraries")
59 # check 3RDPARTY_VTK_ paths for consistency with specified 3RDPARTY_VTK_DIR
60 if (3RDPARTY_VTK_DIR AND EXISTS "${3RDPARTY_VTK_DIR}")
61 CHECK_PATH_FOR_CONSISTENCY (3RDPARTY_VTK_DIR 3RDPARTY_VTK_INCLUDE_DIR PATH "The directory containing headers of VTK")
62 CHECK_PATH_FOR_CONSISTENCY (3RDPARTY_VTK_DIR 3RDPARTY_VTK_LIBRARY_DIR PATH "The directory containing VTK libraries")
65 CHECK_PATH_FOR_CONSISTENCY (3RDPARTY_VTK_DIR 3RDPARTY_VTK_DLL_DIR PATH "The directory containing VTK shared library")
69 if (3RDPARTY_VTK_DIR AND EXISTS "${3RDPARTY_VTK_DIR}")
70 set (CACHED_VTK_DIR $ENV{VTK_DIR})
71 set (ENV{VTK_DIR} "${3RDPARTY_VTK_DIR}")
74 find_package(VTK QUIET)
76 if (3RDPARTY_VTK_DIR AND EXISTS "${3RDPARTY_VTK_DIR}")
77 set (ENV{VTK_DIR} ${CACHED_VTK_DIR})
82 # add compiler flags, preprocessor definitions, include and link dirs
83 include (${VTK_USE_FILE})
85 set (ALL_REQUIRED_VTK_LIBRARIES_FOUND ON)
88 set (3RDPARTY_VTK_INCLUDE_DIRS)
89 set (3RDPARTY_VTK_LIBRARY_DIRS)
90 set (3RDPARTY_VTK_DLL_DIRS)
92 foreach (VTK_REQUIRED_LIBRARY ${3RDPARTY_VTK_REQUIRED_LIBRARIES})
93 list (FIND VTK_LIBRARIES ${VTK_REQUIRED_LIBRARY} FOUND_INDEX)
94 if (${FOUND_INDEX} EQUAL -1)
95 message (WARNING "VTK: required ${VTK_REQUIRED_LIBRARY} library is not found")
96 set (ALL_REQUIRED_VTK_LIBRARIES_FOUND OFF)
98 # get paths from corresponding variables
99 if (${VTK_REQUIRED_LIBRARY}_INCLUDE_DIRS AND EXISTS "${${VTK_REQUIRED_LIBRARY}_INCLUDE_DIRS}")
100 list (APPEND 3RDPARTY_VTK_INCLUDE_DIRS "${${VTK_REQUIRED_LIBRARY}_INCLUDE_DIRS}")
103 if (${VTK_REQUIRED_LIBRARY}_LIBRARY_DIRS AND EXISTS "${${VTK_REQUIRED_LIBRARY}_LIBRARY_DIRS}")
104 list (APPEND 3RDPARTY_VTK_LIBRARY_DIRS "${${VTK_REQUIRED_LIBRARY}_LIBRARY_DIRS}")
107 if (${VTK_REQUIRED_LIBRARY}_RUNTIME_LIBRARY_DIRS AND EXISTS "${${VTK_REQUIRED_LIBRARY}_RUNTIME_LIBRARY_DIRS}")
108 list (APPEND 3RDPARTY_VTK_DLL_DIRS "${${VTK_REQUIRED_LIBRARY}_RUNTIME_LIBRARY_DIRS}")
110 list (APPEND 3RDPARTY_VTK_LIBRARY_DIRS "${${VTK_REQUIRED_LIBRARY}_RUNTIME_LIBRARY_DIRS}")
114 # get paths from corresponding properties
115 get_property (TARGET_VTK_IMPORT_CONFS TARGET ${VTK_REQUIRED_LIBRARY} PROPERTY IMPORTED_CONFIGURATIONS)
117 if (TARGET_VTK_IMPORT_CONFS)
118 list (GET TARGET_VTK_IMPORT_CONFS 0 CHOSEN_IMPORT_CONF)
120 # todo: choose configuration in connection with the build type
121 #if (CMAKE_BUILD_TYPE)
122 # foreach (IMPORT_CONF ${TARGET_VTK_IMPORT_CONFS})
126 get_property (TARGET_PROPERTY_IMP_PATH TARGET ${VTK_REQUIRED_LIBRARY} PROPERTY IMPORTED_IMPLIB_${CHOSEN_IMPORT_CONF})
127 if(TARGET_PROPERTY_IMP_PATH AND EXISTS "${TARGET_PROPERTY_IMP_PATH}")
128 get_filename_component (TARGET_PROPERTY_IMP_DIR "${TARGET_PROPERTY_IMP_PATH}" PATH)
129 list (APPEND 3RDPARTY_VTK_LIBRARY_DIRS "${TARGET_PROPERTY_IMP_DIR}")
132 get_property (TARGET_PROPERTY_LOCATION_PATH TARGET ${VTK_REQUIRED_LIBRARY} PROPERTY IMPORTED_LOCATION_${CHOSEN_IMPORT_CONF})
133 if(TARGET_PROPERTY_LOCATION_PATH AND EXISTS "${TARGET_PROPERTY_LOCATION_PATH}")
134 get_filename_component (TARGET_PROPERTY_LOCATION_DIR "${TARGET_PROPERTY_LOCATION_PATH}" PATH)
137 list (APPEND 3RDPARTY_VTK_DLL_DIRS "${TARGET_PROPERTY_LOCATION_DIR}")
139 list (APPEND 3RDPARTY_VTK_LIBRARY_DIRS "${TARGET_PROPERTY_LOCATION_DIR}")
147 set (ALL_REQUIRED_VTK_LIBRARIES_FOUND OFF)
150 if (ALL_REQUIRED_VTK_LIBRARIES_FOUND)
152 if (3RDPARTY_VTK_INCLUDE_DIRS)
153 list (REMOVE_DUPLICATES 3RDPARTY_VTK_INCLUDE_DIRS)
154 list (APPEND 3RDPARTY_INCLUDE_DIRS ${3RDPARTY_VTK_INCLUDE_DIRS})
156 list (GET 3RDPARTY_VTK_INCLUDE_DIRS 0 3RDPARTY_VTK_INCLUDE_DIR)
157 set (3RDPARTY_VTK_INCLUDE_DIR "${3RDPARTY_VTK_INCLUDE_DIR}" CACHE PATH "The directory containing headers of VTK" FORCE)
160 if (3RDPARTY_VTK_LIBRARY_DIRS)
161 list (REMOVE_DUPLICATES 3RDPARTY_VTK_LIBRARY_DIRS)
162 list (APPEND 3RDPARTY_LIBRARY_DIRS ${3RDPARTY_VTK_LIBRARY_DIRS})
164 list (GET 3RDPARTY_VTK_LIBRARY_DIRS 0 3RDPARTY_VTK_LIBRARY_DIR)
165 set (3RDPARTY_VTK_LIBRARY_DIR "${3RDPARTY_VTK_LIBRARY_DIR}" CACHE PATH "The directory containing VTK libraries" FORCE)
169 if (3RDPARTY_VTK_DLL_DIRS)
170 list (REMOVE_DUPLICATES 3RDPARTY_VTK_DLL_DIRS)
171 list (APPEND 3RDPARTY_DLL_DIRS ${3RDPARTY_VTK_DLL_DIRS})
173 list (GET 3RDPARTY_VTK_DLL_DIRS 0 3RDPARTY_VTK_DLL_DIR)
174 set (3RDPARTY_VTK_DLL_DIR "${3RDPARTY_VTK_DLL_DIR}" CACHE PATH "The directory containing VTK shared libraries" FORCE)
180 if (3RDPARTY_VTK_INCLUDE_DIR AND EXISTS "${3RDPARTY_VTK_INCLUDE_DIR}")
181 list (APPEND 3RDPARTY_INCLUDE_DIRS ${3RDPARTY_VTK_INCLUDE_DIR})
183 list (APPEND 3RDPARTY_NOT_INCLUDED 3RDPARTY_VTK_INCLUDE_DIR)
186 if (3RDPARTY_VTK_LIBRARY_DIR AND EXISTS "${3RDPARTY_VTK_LIBRARY_DIR}")
187 list (APPEND 3RDPARTY_LIBRARY_DIRS ${3RDPARTY_VTK_LIBRARY_DIR})
189 list (APPEND 3RDPARTY_NOT_INCLUDED 3RDPARTY_VTK_LIBRARY_DIR)
193 if (3RDPARTY_VTK_DLL_DIR OR EXISTS "${3RDPARTY_VTK_DLL_DIR}")
194 list (APPEND 3RDPARTY_DLL_DIRS ${3RDPARTY_VTK_DLL_DIR})
196 list (APPEND 3RDPARTY_NOT_INCLUDED 3RDPARTY_VTK_DLL_DIR)
200 # the library directory for using by the executable
202 set (USED_3RDPARTY_VTK_DIR ${3RDPARTY_VTK_DLL_DIR})
204 set (USED_3RDPARTY_VTK_DIR ${3RDPARTY_VTK_LIBRARY_DIR})
207 mark_as_advanced (VTK_INCLUDE_DIRS VTK_LIBRARY_DIRS VTK_DIR)