aboutsummaryrefslogtreecommitdiff
path: root/ports/paraview/external_vtk.patch
blob: 0df160d6acb46f6e5f6f6a52c56dad5f6baa8fee (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
142
143
144
145
146
147
148
149
150
diff --git a/CMake/ParaViewClient.cmake b/CMake/ParaViewClient.cmake
index b0dea2b32..b035a9dc3 100644
--- a/CMake/ParaViewClient.cmake
+++ b/CMake/ParaViewClient.cmake
@@ -516,6 +516,7 @@ function (paraview_client_documentation)
     NAMES xmlpatterns-qt5 xmlpatterns
     HINTS "${Qt5_DIR}/../../../bin"
           "${Qt5_DIR}/../../../libexec/qt5/bin"
+          "${Qt5_DIR}/../../../tools/qt5/bin"
     DOC   "Path to xmlpatterns")
   mark_as_advanced(qt_xmlpatterns_executable)
 
diff --git a/CMake/ParaViewOptions.cmake b/CMake/ParaViewOptions.cmake
index f544a7c06..c51278931 100644
--- a/CMake/ParaViewOptions.cmake
+++ b/CMake/ParaViewOptions.cmake
@@ -88,7 +88,7 @@ endif()
 #========================================================================
 
 # XXX(VTK): External VTK is not yet actually supported.
-if (FALSE)
+if (TRUE)
 option(PARAVIEW_USE_EXTERNAL_VTK "Use an external VTK." OFF)
 mark_as_advanced(PARAVIEW_USE_EXTERNAL_VTK)
 else ()
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 1af77d164..bebcb83ee 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -72,7 +72,8 @@ if (NOT CMAKE_INSTALL_LICENSEDIR)
 endif ()
 
 set(paraview_cmake_dir "${CMAKE_CURRENT_SOURCE_DIR}/CMake")
-set(vtk_cmake_dir "${CMAKE_CURRENT_SOURCE_DIR}/VTK/CMake")
+set(vtk_cmake_dir "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/share/vtk")
+message(STATUS "vtk_cmake_dir:${vtk_cmake_dir}")
 if (NOT IS_DIRECTORY "${vtk_cmake_dir}")
   message(FATAL_ERROR
     "Failed to find the VTK CMake directory. Did you forget to initialize the "
@@ -383,9 +384,73 @@ endif ()
 
 if (PARAVIEW_USE_EXTERNAL_VTK)
   if (paraview_required_modules OR paraview_unrecognized_modules)
-    message(FATAL_ERROR
-      "The following modules were requested or required, but not found: "
-      "${paraview_required_modules};${paraview_unrecognized_modules}.")
+    message(STATUS "REQUIRED:${paraview_required_modules}")
+    foreach(mod ${paraview_required_modules})
+        if(NOT TARGET ${mod})
+            message(STATUS "REQUIRED TARGET not defined: ${mod}")
+            list(APPEND modules_notarget ${mod})
+        endif()
+        if(${mod} MATCHES "VTK::") # For better debugging
+            message(STATUS "VTK TARGET found: ${mod}")
+            list(APPEND vtk_modules ${mod})
+        endif()
+    endforeach()
+    foreach(mod ${paraview_unrecognized_modules})
+        if(NOT TARGET ${mod})
+            message(STATUS "UNREC TARGET not defined: ${mod}")
+            list(FIND paraview_rejected_modules ${mod} _found_mod)
+            if(_found_mod GREATER_EQUAL 0)
+                message(STATUS "MODULE ${mod} not necessary; Removing from unrecognized")
+                list(APPEND _to_remove ${mod})
+            endif()
+        else()
+            list(APPEND _to_remove ${mod})
+            #list(APPEND vtk_modules ${mod}) #probably do not need to add unrecognized_modules to the wrapper
+        endif()
+    endforeach()
+    message(STATUS "UNRECOGNIZED:${paraview_unrecognized_modules}")
+    list(REMOVE_ITEM paraview_unrecognized_modules ${_to_remove})
+    message(STATUS "REJECTED MODULES: ${paraview_rejected_modules}")
+    message(STATUS "UNRECOGNIZED WITHOUT REJECTED AND KNOWN TARGETS: ${paraview_unrecognized_modules}")
+    message(STATUS "ALL PROVIDED MODULES: ${paraview_modules}")
+    set(_unnecessary_moduls ${paraview_modules})
+    list(REMOVE_ITEM _unnecessary_moduls ${paraview_required_modules})
+    message(STATUS "Unnecessary MODULES: ${_unnecessary_moduls}")
+    if(modules_notarget)
+        message(FATAL_ERROR
+          "The following modules were requested or required, but not found: "
+          "${modules_notarget}")
+    endif()
+    list(REMOVE_DUPLICATES vtk_modules)
+    macro(search_dependent_targets)
+        set(vtk_mod_dep_list)
+        foreach(vtk_targ ${ARGN})
+            get_target_property(vtk_mod_dep ${vtk_targ} "INTERFACE_vtk_module_depends")
+            if(vtk_mod_dep)
+                list(APPEND vtk_mod_dep_list ${vtk_mod_dep})
+            endif()
+            get_target_property(vtk_mod_pdep ${vtk_targ} "INTERFACE_vtk_module_private_depends")
+            if(vtk_mod_pdep)
+                list(APPEND vtk_mod_dep_list ${vtk_mod_pdep})
+            endif()
+            get_target_property(vtk_mod_odep ${vtk_targ} "INTERFACE_vtk_module_opional_depends")
+            if(vtk_mod_odep)
+                list(APPEND vtk_mod_dep_list ${vtk_mod_odep})
+            endif()
+            if(vtk_mod_dep_list)
+                message(STATUS "Target ${vtk_targ} depends on ${vtk_mod_dep_list}")
+                list(REMOVE_ITEM vtk_mod_dep_list ${vtk_modules})
+                if(vtk_mod_dep_list)
+                    message(STATUS "Newly discovered modules: ${vtk_mod_dep_list}")
+                    list(APPEND vtk_modules ${vtk_mod_dep_list})
+                    search_dependent_targets(${vtk_mod_dep_list})
+                else()
+                    message(STATUS "No new modules discovered!")
+                endif()
+            endif()
+        endforeach()
+    endmacro()
+    search_dependent_targets(${vtk_modules})
   endif ()
 
   if (PARAVIEW_USE_PYTHON)
@@ -459,7 +524,7 @@ else ()
   endif()
 
   # Set up these variables now so that modules may acess them
-  if (NOT PARAVIEW_USE_EXTERNAL_VTK AND PARAVIEW_INSTALL_DEVELOPMENT_FILES)
+  if (PARAVIEW_INSTALL_DEVELOPMENT_FILES)
     set(vtk_cmake_dir
       "${CMAKE_CURRENT_SOURCE_DIR}/VTK/CMake")
     set(vtk_cmake_destination
@@ -558,6 +623,9 @@ set(_paraview_add_tests_default_data_directory
 set(_paraview_add_tests_default_test_data_target
   "ParaViewData")
 
+list(REMOVE_DUPLICATES vtk_modules) # Missed this somewhere
+list(REMOVE_DUPLICATES paraview_modules) # probably not needed
+
 vtk_module_build(
   MODULES             ${paraview_modules}
   KITS                ${paraview_kits}
@@ -596,9 +664,11 @@ vtk_module_build(
   TEST_OUTPUT_DATA_DIRECTORY  "${paraview_test_data_directory_output}")
 
 include(vtkModuleJson)
-vtk_module_json(
-  MODULES ${vtk_modules}
-  OUTPUT "vtk-modules.json")
+if(NOT PARAVIEW_USE_EXTERNAL_VTK)
+  vtk_module_json(
+    MODULES ${vtk_modules}
+    OUTPUT "vtk-modules.json")
+endif()
 vtk_module_json(
   MODULES ${paraview_modules}
   OUTPUT "paraview-modules.json")