diff --git a/CMake/External/External_VTK.cmake b/CMake/External/External_VTK.cmake index b0901ddf59171289adac835b74d21c95e5d7a532..3588461bbd5317c91bdce382525e1a1f0e8de51e 100644 --- a/CMake/External/External_VTK.cmake +++ b/CMake/External/External_VTK.cmake @@ -1,7 +1,10 @@ #----------------------------------------------------------------------------- # Dependencies #----------------------------------------------------------------------------- -set(VTK_DEPENDENCIES "OpenVR") + +if (${PROJECT_NAME}_USE_RENDERING_VTK) + set(VTK_DEPENDENCIES "OpenVR") +endif() set(${PROJECT_NAME}_VTK_REPO_SOURCE "9.1" CACHE STRING "Select VTK Source Branch/Tag") set(VTK_SOURCES "9.1;master;release;nightly-master" CACHE INTERNAL "List of available VTK branch,tags to get") @@ -14,6 +17,7 @@ set(VTK_MODULE_SETTINGS -DVTK_MODULE_ENABLE_VTK_FiltersGeneral:STRING=YES -DVTK_MODULE_ENABLE_VTK_FiltersModeling:STRING=YES -DVTK_MODULE_ENABLE_VTK_ImagingGeneral:STRING=YES + -DVTK_MODULE_ENABLE_VTK_ImagingMath:STRING=YES -DVTK_MODULE_ENABLE_VTK_ImagingStencil:STRING=YES -DVTK_MODULE_ENABLE_VTK_IOExport:STRING=YES -DVTK_MODULE_ENABLE_VTK_IOGeometry:STRING=YES @@ -25,21 +29,25 @@ set(VTK_MODULE_SETTINGS -DVTK_MODULE_ENABLE_VTK_IOXML:STRING=YES -DVTK_MODULE_ENABLE_VTK_InteractionStyle:STRING=YES -DVTK_MODULE_ENABLE_VTK_InteractionWidgets:STRING=YES - -DVTK_MODULE_ENABLE_VTK_RenderingAnnotation:STRING=YES - -DVTK_MODULE_ENABLE_VTK_RenderingContext2D:STRING=YES - -DVTK_MODULE_ENABLE_VTK_RenderingContextOpenGL2:STRING=YES - -DVTK_MODULE_ENABLE_VTK_RenderingExternal:STRING=YES - -DVTK_MODULE_ENABLE_VTK_RenderingOpenGL2:STRING=YES - -DVTK_MODULE_ENABLE_VTK_RenderingOpenVR:STRING=YES - -DVTK_MODULE_ENABLE_VTK_RenderingVolumeOpenGL2:STRING=YES - -DVTK_MODULE_ENABLE_VTK_ViewsContext2D:STRING=YES -DVTK_ENABLE_WRAPPING:STRING=OFF - -DVTK_MODULE_ENABLE_VTK_glew:STRING=YES -DVTK_BUILD_EXAMPLES:STRING=DONT_WANT -DVTK_BUILD_TESTING:STRING=OFF -DVTK_GROUP_ENABLE_StandAlone:STRING=DONT_WANT -DVTK_GROUP_ENABLE_Rendering:STRING=DONT_WANT ) +if (${PROJECT_NAME}_USE_RENDERING_VTK) + list(APPEND VTK_MODULE_SETTINGS + -DVTK_MODULE_ENABLE_VTK_glew:STRING=YES + -DVTK_MODULE_ENABLE_VTK_RenderingAnnotation:STRING=YES + -DVTK_MODULE_ENABLE_VTK_RenderingContext2D:STRING=YES + -DVTK_MODULE_ENABLE_VTK_RenderingContextOpenGL2:STRING=YES + -DVTK_MODULE_ENABLE_VTK_RenderingExternal:STRING=YES + -DVTK_MODULE_ENABLE_VTK_RenderingOpenGL2:STRING=YES + -DVTK_MODULE_ENABLE_VTK_RenderingOpenVR:STRING=YES + -DVTK_MODULE_ENABLE_VTK_RenderingVolumeOpenGL2:STRING=YES + -DVTK_MODULE_ENABLE_VTK_ViewsContext2D:STRING=YES + ) +endif() if (${PROJECT_NAME}_USE_VTK_OSMESA) list(APPEND VTK_MODULE_SETTINGS -DVTK_DEFAULT_RENDER_WINDOW_OFFSCREEN=1 diff --git a/CMake/iMSTKConfig.cmake.in b/CMake/iMSTKConfig.cmake.in index 26102372d28d4c0cae303d9fdc3e50f87119bae3..cc49f82c04441707731d73160c697ed17dd68cbd 100644 --- a/CMake/iMSTKConfig.cmake.in +++ b/CMake/iMSTKConfig.cmake.in @@ -15,6 +15,8 @@ set(iMSTK_DATA_DIR ${PACKAGE_PREFIX_DIR}/data) set(iMSTK_AUDIO_ENABLED @iMSTK_AUDIO_ENABLED@) set(iMSTK_USE_OpenHaptics @iMSTK_USE_OpenHaptics@) set(iMSTK_USE_VTK_OSMESA @iMSTK_USE_VTK_OSMESA@) +set(iMSTK_USE_RENDERING_VTK @iMSTK_USE_RENDERING_VTK@) +set(iMSTK_BUILD_BENCHMARK @iMSTK_BUILD_BENCHMARK@) set(iMSTK_BUILD_TESTING @iMSTK_BUILD_TESTING@) set(iMSTK_BUILD_TESTING @iMSTK_BUILD_TESTING@) set(iMSTK_BUILD_VISUAL_TESTING @iMSTK_BUILD_VISUAL_TESTING@) @@ -51,18 +53,20 @@ if(iMSTK_BUILD_TESTING OR iMSTK_BUILD_VISUAL_TESTING) endif() # Google Benchmark -set(iMSTK_BUILD_BENCHMARK @iMSTK_BUILD_BENCHMARK@) if (iMSTK_BUILD_BENCHMARK) find_package( benchmark REQUIRED ) endif() +# Libusb if (iMSTK_USE_VRPN) - # Libusb + find_dependency( Libusb ) endif() # OpenVR -find_dependency( OpenVR ) +if (iMSTK_USE_RENDERING_VTK) + find_dependency( OpenVR ) +endif() # SFML if(iMSTK_AUDIO_ENABLED) @@ -89,8 +93,10 @@ endif() # VTK find_dependency(VTK CONFIG) -find_package(vtkRenderingOpenVR QUIET) -find_package(vtkRenderingExternal QUIET) +if (iMSTK_USE_RENDERING_VTK) + find_package(vtkRenderingOpenVR QUIET) + find_package(vtkRenderingExternal QUIET) +endif() find_dependency(VTK COMPONENTS ${iMSTK_VTK_DEPENDENCIES}) if(iMSTK_USE_VTK_OSMESA) diff --git a/CMakeLists.txt b/CMakeLists.txt index 9a58152406f9b2eeec78e8666df7d750908414b1..56963182ad52729281c4950d974b726b8785e62a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -163,10 +163,17 @@ endif() option(${PROJECT_NAME}_USE_VRPN "Build with VRPN support" OFF) mark_as_superbuild(${PROJECT_NAME}_USE_VRPN:BOOL) -option(iMSTK_USE_OpenHaptics "Use OpenHaptic Support." OFF) -mark_as_superbuild(iMSTK_USE_OpenHaptics:BOOL) -if(NOT WIN32 AND iMSTK_USE_OpenHaptics) - message(FATAL_ERROR "Setting iMSTK_USE_OpenHaptics to ON is only supported on Windows") +option(${PROJECT_NAME}_USE_RENDERING_VTK "Build with/out VTK rendering support" ON) +mark_as_superbuild(${PROJECT_NAME}_USE_RENDERING_VTK:BOOL) + +if (${PROJECT_NAME}_USE_RENDERING_VTK AND ${PROJECT_NAME}_USE_VTK_OSMESA) + message(FATAL_ERROR "Setting ${PROJECT_NAME}_USE_VTK_OSMESA ON is only supported when ${PROJECT_NAME}_USE_RENDERING_VTK is ON") +endif() + +option(${PROJECT_NAME}_USE_OpenHaptics "Use OpenHaptic Support." OFF) +mark_as_superbuild(${PROJECT_NAME}_USE_OpenHaptics:BOOL) +if(NOT WIN32 AND ${PROJECT_NAME}_USE_OpenHaptics) + message(FATAL_ERROR "Setting ${PROJECT_NAME}_USE_OpenHaptics to ON is only supported on Windows") endif() #----------------------------------------------------------------------------- @@ -206,7 +213,9 @@ if(${PROJECT_NAME}_SUPERBUILD) imstk_define_dependency(Assimp) imstk_define_dependency(Eigen3) imstk_define_dependency(g3log) - imstk_define_dependency(OpenVR) + if (${PROJECT_NAME}_USE_RENDERING_VTK) + imstk_define_dependency(OpenVR) + endif() imstk_define_dependency(TBB) imstk_define_dependency(VegaFEM) imstk_define_dependency(VTK) @@ -291,8 +300,10 @@ if (${PROJECT_NAME}_USE_VRPN) find_package( Libusb REQUIRED) endif() -# OpenVR -find_package( OpenVR REQUIRED ) +if (${PROJECT_NAME}_USE_RENDERING_VTK) + # OpenVR + find_package( OpenVR REQUIRED ) +endif() # SFML if(NOT iMSTK_AUDIO_ENABLED) @@ -329,8 +340,10 @@ find_package(VTK REQUIRED CONFIG) # modules are linked via `VTK::CommonCore` # vtk_module_autoinit is needed -find_package(vtkRenderingOpenVR QUIET) -find_package(vtkRenderingExternal QUIET) +if (${PROJECT_NAME}_USE_RENDERING_VTK) + find_package(vtkRenderingOpenVR QUIET) + find_package(vtkRenderingExternal QUIET) +endif() list(APPEND iMSTK_VTK_DEPENDENCIES ChartsCore @@ -349,17 +362,20 @@ list(APPEND iMSTK_VTK_DEPENDENCIES ImagingCore ImagingGeneral ImagingStencil - InteractionStyle - RenderingAnnotation - RenderingContext2D - RenderingContextOpenGL2 - RenderingCore - RenderingExternal - RenderingOpenGL2 - RenderingOpenVR - RenderingVolume - RenderingVolumeOpenGL2 - ViewsContext2D) + InteractionStyle) +if (${PROJECT_NAME}_USE_RENDERING_VTK) + list(APPEND iMSTK_VTK_DEPENDENCIES + RenderingAnnotation + RenderingContext2D + RenderingContextOpenGL2 + RenderingCore + RenderingExternal + RenderingOpenGL2 + RenderingOpenVR + RenderingVolume + RenderingVolumeOpenGL2 + ViewsContext2D) +endif() find_package(VTK COMPONENTS ${iMSTK_VTK_DEPENDENCIES} REQUIRED) if(${PROJECT_NAME}_USE_VTK_OSMESA) add_definitions(-DiMSTK_USE_VTK_OSMESA) @@ -438,7 +454,9 @@ add_subdirectory(Source/DataStructures) add_subdirectory(Source/Constraint) add_subdirectory(Source/Devices) add_subdirectory(Source/RenderingCore) -add_subdirectory(Source/RenderingVTK) +if (${PROJECT_NAME}_USE_RENDERING_VTK) + add_subdirectory(Source/RenderingVTK) +endif() add_subdirectory(Source/Solvers) add_subdirectory(Source/DynamicalModels) add_subdirectory(Source/SceneEntities) @@ -449,7 +467,9 @@ add_subdirectory(Source/CollisionHandling) add_subdirectory(Source/Scene) add_subdirectory(Source/SimulationManager) add_subdirectory(Source/ViewerCore) -add_subdirectory(Source/ViewerVTK) +if (${PROJECT_NAME}_USE_RENDERING_VTK) + add_subdirectory(Source/ViewerVTK) +endif() add_subdirectory(Source/Testing) add_subdirectory(Source/Filtering) add_subdirectory(Source/FilteringCore) @@ -553,20 +573,24 @@ if(WIN32 AND ${PROJECT_NAME}_USE_VRPN) set(CONFIG_CODE "${CONFIG_CODE}set(Libusb_LIB_DIR \"${Libusb_LIB_DIR}\")\n") endif() -set(CONFIG_CODE "${CONFIG_CODE}# Add variables to CACHE to workaround issue related to use of\n") -set(CONFIG_CODE "${CONFIG_CODE}# mark_as_advanced command in FindOpenVR and described in CMP0102\n") -set(CONFIG_CODE "${CONFIG_CODE}# See https://cmake.org/cmake/help/latest/policy/CMP0102.html\n") -set(CONFIG_CODE "${CONFIG_CODE}set(OpenVR_INCLUDE_DIR \"${OpenVR_INCLUDE_DIR}\" CACHE PATH \"\")\n") -set(CONFIG_CODE "${CONFIG_CODE}set(OpenVR_LIBRARY \"${OpenVR_LIBRARY}\" CACHE FILEPATH \"\")\n") -set(CONFIG_CODE "${CONFIG_CODE}set(OpenVR_ROOT_DIR \"${OpenVR_ROOT_DIR}\")\n") -set(CONFIG_CODE "${CONFIG_CODE}set(OpenVR_LIB_DIR \"${OpenVR_LIB_DIR}\")\n") +if (${PROJECT_NAME}_USE_RENDERING_VTK) + set(CONFIG_CODE "${CONFIG_CODE}# Add variables to CACHE to workaround issue related to use of\n") + set(CONFIG_CODE "${CONFIG_CODE}# mark_as_advanced command in FindOpenVR and described in CMP0102\n") + set(CONFIG_CODE "${CONFIG_CODE}# See https://cmake.org/cmake/help/latest/policy/CMP0102.html\n") + set(CONFIG_CODE "${CONFIG_CODE}set(OpenVR_INCLUDE_DIR \"${OpenVR_INCLUDE_DIR}\" CACHE PATH \"\")\n") + set(CONFIG_CODE "${CONFIG_CODE}set(OpenVR_LIBRARY \"${OpenVR_LIBRARY}\" CACHE FILEPATH \"\")\n") + set(CONFIG_CODE "${CONFIG_CODE}set(OpenVR_ROOT_DIR \"${OpenVR_ROOT_DIR}\")\n") + set(CONFIG_CODE "${CONFIG_CODE}set(OpenVR_LIB_DIR \"${OpenVR_LIB_DIR}\")\n") +endif() set(CONFIG_CODE "${CONFIG_CODE}set(TBB_DIR \"${TBB_DIR}\")\n") set(CONFIG_CODE "${CONFIG_CODE}set(VegaFEM_DIR \"${VegaFEM_DIR}\")\n") set(CONFIG_CODE "${CONFIG_CODE}set(VTK_DIR \"${VTK_DIR}\")\n") -set(CONFIG_CODE "${CONFIG_CODE}set(vtkRenderingOpenVR_DIR \"${vtkRenderingOpenVR_DIR}\")\n") -set(CONFIG_CODE "${CONFIG_CODE}set(vtkRenderingExternal_DIR \"${vtkRenderingExternal_DIR}\")\n") +if (${PROJECT_NAME}_USE_RENDERING_VTK) + set(CONFIG_CODE "${CONFIG_CODE}set(vtkRenderingOpenVR_DIR \"${vtkRenderingOpenVR_DIR}\")\n") + set(CONFIG_CODE "${CONFIG_CODE}set(vtkRenderingExternal_DIR \"${vtkRenderingExternal_DIR}\")\n") +endif() set(CONFIG_CODE "${CONFIG_CODE}##################################################") set(build_config ${CMAKE_BINARY_DIR}/${PROJECT_NAME}Config.cmake) @@ -595,12 +619,14 @@ set(CONFIG_CODE "${CONFIG_CODE}set(TBB_DIR \"${TBB_DIR}\")\n") set(CONFIG_CODE "${CONFIG_CODE}set(VegaFEM_DIR \"${VegaFEM_DIR}\")\n") set(CONFIG_CODE "${CONFIG_CODE}set(VTK_DIR \"${VTK_DIR}\")\n") set(CONFIG_CODE "${CONFIG_CODE}set(benchmark_DIR \"${benchmark_DIR}\")\n") -set(CONFIG_CODE "${CONFIG_CODE}# Add variables to CACHE to workaround issue related to use of\n") -set(CONFIG_CODE "${CONFIG_CODE}# mark_as_advanced command in FindOpenVR and described in CMP0102\n") -set(CONFIG_CODE "${CONFIG_CODE}# See https://cmake.org/cmake/help/latest/policy/CMP0102.html\n") -set(CONFIG_CODE "${CONFIG_CODE}set(OpenVR_INCLUDE_DIR \"${OpenVR_INCLUDE_DIR}\" CACHE PATH \"\")\n") -set(CONFIG_CODE "${CONFIG_CODE}set(OpenVR_LIBRARY \"${OpenVR_LIBRARY}\" CACHE FILEPATH \"\")\n") -set(CONFIG_CODE "${CONFIG_CODE}##################################################") +if (${PROJECT_NAME}_USE_RENDERING_VTK) + set(CONFIG_CODE "${CONFIG_CODE}# Add variables to CACHE to workaround issue related to use of\n") + set(CONFIG_CODE "${CONFIG_CODE}# mark_as_advanced command in FindOpenVR and described in CMP0102\n") + set(CONFIG_CODE "${CONFIG_CODE}# See https://cmake.org/cmake/help/latest/policy/CMP0102.html\n") + set(CONFIG_CODE "${CONFIG_CODE}set(OpenVR_INCLUDE_DIR \"${OpenVR_INCLUDE_DIR}\" CACHE PATH \"\")\n") + set(CONFIG_CODE "${CONFIG_CODE}set(OpenVR_LIBRARY \"${OpenVR_LIBRARY}\" CACHE FILEPATH \"\")\n") + set(CONFIG_CODE "${CONFIG_CODE}##################################################") +endif() set(install_config ${PROJECT_BINARY_DIR}/CMakeFiles/${PROJECT_NAME}Config.cmake) configure_package_config_file( diff --git a/Source/SimulationManager/Testing/CMakeLists.txt b/Source/SimulationManager/Testing/CMakeLists.txt index 40f19122f0c5af907edda27909489c93556d8217..a044302419276f07e070231a5f36219872f66e48 100644 --- a/Source/SimulationManager/Testing/CMakeLists.txt +++ b/Source/SimulationManager/Testing/CMakeLists.txt @@ -1,4 +1,6 @@ include(imstkAddTest) -imstk_add_test( SimulationManager ) -# Note: Links to ViewerVTK for rendering support in tests -target_link_libraries(SimulationManagerTests SimulationManager ViewerVTK) \ No newline at end of file +if (iMSTK_USE_RENDERING_VTK) + imstk_add_test( SimulationManager ) + # Note: Links to ViewerVTK for rendering support in tests + target_link_libraries(SimulationManagerTests SimulationManager ViewerVTK) +endif() \ No newline at end of file