2021-08-31 01:03:01 +08:00
|
|
|
diff --git a/CMake/ParaViewOptions.cmake b/CMake/ParaViewOptions.cmake
|
2023-01-20 09:55:56 +08:00
|
|
|
index 70c771151..14df81490 100644
|
2021-08-31 01:03:01 +08:00
|
|
|
--- a/CMake/ParaViewOptions.cmake
|
|
|
|
+++ b/CMake/ParaViewOptions.cmake
|
2023-01-20 09:55:56 +08:00
|
|
|
@@ -99,7 +99,7 @@ endif()
|
2021-08-31 01:03:01 +08:00
|
|
|
#========================================================================
|
|
|
|
|
|
|
|
# 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
|
2023-01-20 09:55:56 +08:00
|
|
|
index 6ee167322..628745584 100644
|
2021-08-31 01:03:01 +08:00
|
|
|
--- a/CMakeLists.txt
|
|
|
|
+++ b/CMakeLists.txt
|
2023-01-20 09:55:56 +08:00
|
|
|
@@ -73,7 +73,13 @@ if (NOT CMAKE_INSTALL_LICENSEDIR)
|
2021-08-31 01:03:01 +08:00
|
|
|
endif ()
|
|
|
|
|
|
|
|
set(paraview_cmake_dir "${CMAKE_CURRENT_SOURCE_DIR}/CMake")
|
|
|
|
-set(vtk_cmake_dir "${CMAKE_CURRENT_SOURCE_DIR}/VTK/CMake")
|
2023-01-20 09:55:56 +08:00
|
|
|
+if (PARAVIEW_USE_EXTERNAL_VTK)
|
|
|
|
+ find_package(VTK CONFIG REQUIRED)
|
|
|
|
+ get_filename_component(vtk_cmake_dir "${VTK_CONFIG}" DIRECTORY )
|
|
|
|
+else()
|
|
|
|
+ set(vtk_cmake_dir "${CMAKE_CURRENT_SOURCE_DIR}/VTK/CMake")
|
|
|
|
+endif()
|
|
|
|
+
|
2021-08-31 01:03:01 +08:00
|
|
|
if (NOT IS_DIRECTORY "${vtk_cmake_dir}")
|
|
|
|
message(FATAL_ERROR
|
|
|
|
"Failed to find the VTK CMake directory. Did you forget to initialize the "
|
2023-01-20 09:55:56 +08:00
|
|
|
@@ -242,9 +246,7 @@ if (PARAVIEW_USE_FORTRAN)
|
|
|
|
enable_language(Fortran OPTIONAL)
|
|
|
|
endif ()
|
|
|
|
|
|
|
|
-if (PARAVIEW_USE_EXTERNAL_VTK)
|
|
|
|
- find_package(VTK REQUIRED)
|
|
|
|
-else ()
|
|
|
|
+if (NOT PARAVIEW_USE_EXTERNAL_VTK)
|
|
|
|
list(APPEND CMAKE_MODULE_PATH
|
|
|
|
"${CMAKE_CURRENT_SOURCE_DIR}/VTK/CMake")
|
|
|
|
include(vtkCMakeBackports)
|
|
|
|
@@ -423,9 +425,67 @@ endif ()
|
2021-08-31 01:03:01 +08:00
|
|
|
|
|
|
|
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}.")
|
|
|
|
+ foreach(mod ${paraview_required_modules})
|
|
|
|
+ if(NOT TARGET ${mod})
|
|
|
|
+ list(APPEND modules_notarget ${mod})
|
|
|
|
+ endif()
|
|
|
|
+ if(${mod} MATCHES "VTK::") # For better debugging
|
|
|
|
+ list(APPEND vtk_modules ${mod})
|
|
|
|
+ endif()
|
|
|
|
+ endforeach()
|
|
|
|
+ foreach(mod ${paraview_unrecognized_modules})
|
|
|
|
+ if(NOT TARGET ${mod})
|
|
|
|
+ list(FIND paraview_rejected_modules ${mod} _found_mod)
|
|
|
|
+ if(_found_mod GREATER_EQUAL 0)
|
|
|
|
+ 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()
|
|
|
|
+ list(REMOVE_ITEM paraview_unrecognized_modules ${_to_remove})
|
2023-01-20 09:55:56 +08:00
|
|
|
+ message(STATUS "UNRECOGNIZED:${paraview_unrecognized_modules}")
|
2021-08-31 01:03:01 +08:00
|
|
|
+ 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})
|
|
|
|
+ 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)
|
2023-01-20 09:55:56 +08:00
|
|
|
@@ -508,7 +574,7 @@ else ()
|
2021-08-31 01:03:01 +08:00
|
|
|
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
|
2023-01-20 09:55:56 +08:00
|
|
|
@@ -642,6 +708,9 @@ set(_paraview_add_tests_default_data_directory
|
2021-08-31 01:03:01 +08:00
|
|
|
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}
|
2023-01-20 09:55:56 +08:00
|
|
|
@@ -703,9 +772,11 @@ if (PARAVIEW_ENABLE_CATALYST)
|
|
|
|
endif ()
|
2021-08-31 01:03:01 +08:00
|
|
|
|
|
|
|
include(vtkModuleJson)
|
|
|
|
-vtk_module_json(
|
|
|
|
- MODULES ${vtk_modules}
|
|
|
|
- OUTPUT "vtk-modules.json")
|
|
|
|
+if(NOT PARAVIEW_USE_EXTERNAL_VTK)
|
2023-01-20 09:55:56 +08:00
|
|
|
+ vtk_module_json(
|
|
|
|
+ MODULES ${vtk_modules}
|
|
|
|
+ OUTPUT "vtk-modules.json")
|
2021-08-31 01:03:01 +08:00
|
|
|
+endif()
|
|
|
|
vtk_module_json(
|
|
|
|
MODULES ${paraview_modules}
|
|
|
|
OUTPUT "paraview-modules.json")
|