0026993: Configuration, CMake - use the abstraction level of VTK instead CSF_VTK...
[occt.git] / adm / cmake / vtk.cmake
index c463535..0a4abe0 100644 (file)
@@ -9,21 +9,6 @@ if (NOT DEFINED 3RDPARTY_VTK_DIR)
   set (3RDPARTY_VTK_DIR "" CACHE PATH "The directory containing VTK")
 endif()
 
-set (3RDPARTY_VTK_REQUIRED_LIBRARIES vtkCommonCore
-                                     vtkCommonDataModel
-                                     vtkCommonExecutionModel
-                                     vtkCommonMath
-                                     vtkCommonTransforms
-                                     vtkRenderingCore
-                                     vtkRenderingFreeType
-                                     vtkRenderingFreeTypeOpenGL
-                                     vtkRenderingOpenGL
-                                     vtkFiltersGeneral
-                                     vtkIOCore
-                                     vtkIOImage
-                                     vtkImagingCore
-                                     vtkInteractionStyle)
-
 # include occt macros. compiler_bitness, os_wiht_bit, compiler
 OCCT_INCLUDE_CMAKE_FILE ("adm/cmake/occt_macros")
 
@@ -82,97 +67,84 @@ if (VTK_FOUND)
   # add compiler flags, preprocessor definitions, include and link dirs
   include (${VTK_USE_FILE})
 
-  set (ALL_REQUIRED_VTK_LIBRARIES_FOUND ON)
   if (VTK_LIBRARIES)
 
     set (3RDPARTY_VTK_INCLUDE_DIRS)
     set (3RDPARTY_VTK_LIBRARY_DIRS)
     set (3RDPARTY_VTK_DLL_DIRS)
 
-    foreach (VTK_REQUIRED_LIBRARY ${3RDPARTY_VTK_REQUIRED_LIBRARIES})
-      list (FIND VTK_LIBRARIES ${VTK_REQUIRED_LIBRARY} FOUND_INDEX)
-      if (${FOUND_INDEX} EQUAL -1)
-        message (WARNING "VTK: required ${VTK_REQUIRED_LIBRARY} library is not found")
-        set (ALL_REQUIRED_VTK_LIBRARIES_FOUND OFF)
-      else()
-        # get paths from corresponding variables
-        if (${VTK_REQUIRED_LIBRARY}_INCLUDE_DIRS AND EXISTS "${${VTK_REQUIRED_LIBRARY}_INCLUDE_DIRS}")
-          list (APPEND 3RDPARTY_VTK_INCLUDE_DIRS "${${VTK_REQUIRED_LIBRARY}_INCLUDE_DIRS}")
-        endif()
+    foreach (VTK_LIBRARY ${VTK_LIBRARIES})
+      # get paths from corresponding variables
+      if (${VTK_LIBRARY}_INCLUDE_DIRS AND EXISTS "${${VTK_LIBRARY}_INCLUDE_DIRS}")
+        list (APPEND 3RDPARTY_VTK_INCLUDE_DIRS "${${VTK_LIBRARY}_INCLUDE_DIRS}")
+      endif()
 
-        if (${VTK_REQUIRED_LIBRARY}_LIBRARY_DIRS AND EXISTS "${${VTK_REQUIRED_LIBRARY}_LIBRARY_DIRS}")
-          list (APPEND 3RDPARTY_VTK_LIBRARY_DIRS "${${VTK_REQUIRED_LIBRARY}_LIBRARY_DIRS}")
-        endif()
+      if (${VTK_LIBRARY}_LIBRARY_DIRS AND EXISTS "${${VTK_LIBRARY}_LIBRARY_DIRS}")
+        list (APPEND 3RDPARTY_VTK_LIBRARY_DIRS "${${VTK_LIBRARY}_LIBRARY_DIRS}")
+      endif()
 
-        if (${VTK_REQUIRED_LIBRARY}_RUNTIME_LIBRARY_DIRS AND EXISTS "${${VTK_REQUIRED_LIBRARY}_RUNTIME_LIBRARY_DIRS}")
-          list (APPEND 3RDPARTY_VTK_DLL_DIRS "${${VTK_REQUIRED_LIBRARY}_RUNTIME_LIBRARY_DIRS}")
-          if (NOT WIN32)
-            list (APPEND 3RDPARTY_VTK_LIBRARY_DIRS "${${VTK_REQUIRED_LIBRARY}_RUNTIME_LIBRARY_DIRS}")
-          endif()
+      if (${VTK_LIBRARY}_RUNTIME_LIBRARY_DIRS AND EXISTS "${${VTK_LIBRARY}_RUNTIME_LIBRARY_DIRS}")
+        list (APPEND 3RDPARTY_VTK_DLL_DIRS "${${VTK_LIBRARY}_RUNTIME_LIBRARY_DIRS}")
+        if (NOT WIN32)
+          list (APPEND 3RDPARTY_VTK_LIBRARY_DIRS "${${VTK_LIBRARY}_RUNTIME_LIBRARY_DIRS}")
         endif()
+      endif()
 
-        # get paths from corresponding properties
-        get_property (TARGET_VTK_IMPORT_CONFS TARGET ${VTK_REQUIRED_LIBRARY} PROPERTY IMPORTED_CONFIGURATIONS)
-
-        if (TARGET_VTK_IMPORT_CONFS)
-          list (GET TARGET_VTK_IMPORT_CONFS 0 CHOSEN_IMPORT_CONF)
-          
-          # todo: choose configuration in connection with the build type
-          #if (CMAKE_BUILD_TYPE)
-          #  foreach (IMPORT_CONF ${TARGET_VTK_IMPORT_CONFS})
-          #  endforeach()
-          #endif()
-
-          get_property (TARGET_PROPERTY_IMP_PATH TARGET ${VTK_REQUIRED_LIBRARY} PROPERTY IMPORTED_IMPLIB_${CHOSEN_IMPORT_CONF})
-          if(TARGET_PROPERTY_IMP_PATH AND EXISTS "${TARGET_PROPERTY_IMP_PATH}")
-            get_filename_component (TARGET_PROPERTY_IMP_DIR "${TARGET_PROPERTY_IMP_PATH}" PATH)
-            list (APPEND 3RDPARTY_VTK_LIBRARY_DIRS "${TARGET_PROPERTY_IMP_DIR}")
-          endif()
+      # get paths from corresponding properties
+      get_property (TARGET_VTK_IMPORT_CONFS TARGET ${VTK_LIBRARY} PROPERTY IMPORTED_CONFIGURATIONS)
+
+      if (TARGET_VTK_IMPORT_CONFS)
+        list (GET TARGET_VTK_IMPORT_CONFS 0 CHOSEN_IMPORT_CONF)
+        
+        # todo: choose configuration in connection with the build type
+        #if (CMAKE_BUILD_TYPE)
+        #  foreach (IMPORT_CONF ${TARGET_VTK_IMPORT_CONFS})
+        #  endforeach()
+        #endif()
+
+        get_property (TARGET_PROPERTY_IMP_PATH TARGET ${VTK_LIBRARY} PROPERTY IMPORTED_IMPLIB_${CHOSEN_IMPORT_CONF})
+        if(TARGET_PROPERTY_IMP_PATH AND EXISTS "${TARGET_PROPERTY_IMP_PATH}")
+          get_filename_component (TARGET_PROPERTY_IMP_DIR "${TARGET_PROPERTY_IMP_PATH}" PATH)
+          list (APPEND 3RDPARTY_VTK_LIBRARY_DIRS "${TARGET_PROPERTY_IMP_DIR}")
+        endif()
 
-          get_property (TARGET_PROPERTY_LOCATION_PATH TARGET ${VTK_REQUIRED_LIBRARY} PROPERTY IMPORTED_LOCATION_${CHOSEN_IMPORT_CONF})
-          if(TARGET_PROPERTY_LOCATION_PATH AND EXISTS "${TARGET_PROPERTY_LOCATION_PATH}")
-            get_filename_component (TARGET_PROPERTY_LOCATION_DIR "${TARGET_PROPERTY_LOCATION_PATH}" PATH)
+        get_property (TARGET_PROPERTY_LOCATION_PATH TARGET ${VTK_LIBRARY} PROPERTY IMPORTED_LOCATION_${CHOSEN_IMPORT_CONF})
+        if(TARGET_PROPERTY_LOCATION_PATH AND EXISTS "${TARGET_PROPERTY_LOCATION_PATH}")
+          get_filename_component (TARGET_PROPERTY_LOCATION_DIR "${TARGET_PROPERTY_LOCATION_PATH}" PATH)
 
-            if (WIN32)
-              list (APPEND 3RDPARTY_VTK_DLL_DIRS "${TARGET_PROPERTY_LOCATION_DIR}")
-            else()
-              list (APPEND 3RDPARTY_VTK_LIBRARY_DIRS "${TARGET_PROPERTY_LOCATION_DIR}")
-            endif()
+          if (WIN32)
+            list (APPEND 3RDPARTY_VTK_DLL_DIRS "${TARGET_PROPERTY_LOCATION_DIR}")
+          else()
+            list (APPEND 3RDPARTY_VTK_LIBRARY_DIRS "${TARGET_PROPERTY_LOCATION_DIR}")
           endif()
         endif()
       endif()
-      
     endforeach()
-  else()  
-    set (ALL_REQUIRED_VTK_LIBRARIES_FOUND OFF)
   endif()
 
-  if (ALL_REQUIRED_VTK_LIBRARIES_FOUND)
-
-    if (3RDPARTY_VTK_INCLUDE_DIRS)
-      list (REMOVE_DUPLICATES 3RDPARTY_VTK_INCLUDE_DIRS)
-      list (APPEND 3RDPARTY_INCLUDE_DIRS ${3RDPARTY_VTK_INCLUDE_DIRS})
+  if (3RDPARTY_VTK_INCLUDE_DIRS)
+    list (REMOVE_DUPLICATES 3RDPARTY_VTK_INCLUDE_DIRS)
+    list (APPEND 3RDPARTY_INCLUDE_DIRS ${3RDPARTY_VTK_INCLUDE_DIRS})
 
-      list (GET 3RDPARTY_VTK_INCLUDE_DIRS 0 3RDPARTY_VTK_INCLUDE_DIR)
-      set (3RDPARTY_VTK_INCLUDE_DIR "${3RDPARTY_VTK_INCLUDE_DIR}" CACHE PATH "The directory containing headers of VTK" FORCE)
-    endif()
+    list (GET 3RDPARTY_VTK_INCLUDE_DIRS 0 3RDPARTY_VTK_INCLUDE_DIR)
+    set (3RDPARTY_VTK_INCLUDE_DIR "${3RDPARTY_VTK_INCLUDE_DIR}" CACHE PATH "The directory containing headers of VTK" FORCE)
+  endif()
 
-    if (3RDPARTY_VTK_LIBRARY_DIRS)
-      list (REMOVE_DUPLICATES 3RDPARTY_VTK_LIBRARY_DIRS)
-      list (APPEND 3RDPARTY_LIBRARY_DIRS ${3RDPARTY_VTK_LIBRARY_DIRS})
+  if (3RDPARTY_VTK_LIBRARY_DIRS)
+    list (REMOVE_DUPLICATES 3RDPARTY_VTK_LIBRARY_DIRS)
+    list (APPEND 3RDPARTY_LIBRARY_DIRS ${3RDPARTY_VTK_LIBRARY_DIRS})
 
-      list (GET 3RDPARTY_VTK_LIBRARY_DIRS 0 3RDPARTY_VTK_LIBRARY_DIR)
-      set (3RDPARTY_VTK_LIBRARY_DIR "${3RDPARTY_VTK_LIBRARY_DIR}" CACHE PATH "The directory containing VTK libraries" FORCE)
-    endif()
+    list (GET 3RDPARTY_VTK_LIBRARY_DIRS 0 3RDPARTY_VTK_LIBRARY_DIR)
+    set (3RDPARTY_VTK_LIBRARY_DIR "${3RDPARTY_VTK_LIBRARY_DIR}" CACHE PATH "The directory containing VTK libraries" FORCE)
+  endif()
 
-    if (WIN32)
-      if (3RDPARTY_VTK_DLL_DIRS)
-        list (REMOVE_DUPLICATES 3RDPARTY_VTK_DLL_DIRS)
-        list (APPEND 3RDPARTY_DLL_DIRS ${3RDPARTY_VTK_DLL_DIRS})
+  if (WIN32)
+    if (3RDPARTY_VTK_DLL_DIRS)
+      list (REMOVE_DUPLICATES 3RDPARTY_VTK_DLL_DIRS)
+      list (APPEND 3RDPARTY_DLL_DIRS ${3RDPARTY_VTK_DLL_DIRS})
 
-        list (GET 3RDPARTY_VTK_DLL_DIRS 0 3RDPARTY_VTK_DLL_DIR)
-        set (3RDPARTY_VTK_DLL_DIR "${3RDPARTY_VTK_DLL_DIR}" CACHE PATH "The directory containing VTK shared libraries" FORCE)
-      endif()
+      list (GET 3RDPARTY_VTK_DLL_DIRS 0 3RDPARTY_VTK_DLL_DIR)
+      set (3RDPARTY_VTK_DLL_DIR "${3RDPARTY_VTK_DLL_DIR}" CACHE PATH "The directory containing VTK shared libraries" FORCE)
     endif()
   endif()
 endif()
@@ -204,4 +176,6 @@ else()
   set (USED_3RDPARTY_VTK_DIR ${3RDPARTY_VTK_LIBRARY_DIR})
 endif()
 
-mark_as_advanced (VTK_INCLUDE_DIRS VTK_LIBRARY_DIRS VTK_DIR)
+OCCT_CHECK_AND_UNSET (VTK_INCLUDE_DIRS)
+OCCT_CHECK_AND_UNSET (VTK_LIBRARY_DIRS)
+OCCT_CHECK_AND_UNSET (VTK_DIR)