Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Enhancements and Refactoring for XR Runtimes Integration #149

Merged
merged 41 commits into from
Dec 30, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
41 commits
Select commit Hold shift + click to select a range
38e793f
COMP: Cleanup includes from vtkVirtualRealityViewInteractorStyle
jcfr Dec 27, 2023
4025985
COMP: Remove unused vtkVirtualRealityViewInteractorObserver::vtkInternal
jcfr Dec 27, 2023
833aa02
ENH: Remove interactor style GetMappedAction available in base class
jcfr Dec 27, 2023
986a439
ENH: Simplify interactor style removing unused QuickPick() function
jcfr Dec 27, 2023
d1a4d40
ENH: Simplify interactor style removing unused AccuratePicker
jcfr Dec 27, 2023
dee0fb2
ENH: Remove obsolete "GestureEnabledButtons" ivar from interactor class
jcfr Dec 27, 2023
50330d2
ENH: Remove interactor GetCurrentGesture available in base class
jcfr Dec 27, 2023
c1c7959
COMP: Re-enable wrapping of vtkVirtualRealityViewInteractor
jcfr Dec 27, 2023
3a9480f
ENH: Relocate CalculateCombinedControllerPose" into logic class
jcfr Dec 27, 2023
ed70b61
ENH: Relocate "GestureButton" configuration functions to logic class
jcfr Dec 27, 2023
957b261
ENH: Add vtkVirtualRealityComplexGestureRecognizer
jcfr Dec 27, 2023
85843cb
DOC: Removing obsolete comments related to original interactor debugging
jcfr Dec 23, 2023
1ece06b
ENH: Cleanup createRenderWindow re-ordering calls and adding comments
jcfr Dec 28, 2023
3b51503
ENH: Add vtkVirtualRealityViewInteractorStyleDelegate
jcfr Dec 27, 2023
8b5557f
ENH: Add basic tests for View and Layout nodes
jcfr Dec 19, 2023
7787292
ENH: Add XRRuntimeType enum to view node
jcfr Dec 22, 2023
b718296
STYLE: Include external headers using angle brackets
jcfr Dec 28, 2023
23d1a00
COMP: Cleanup header includes
jcfr Dec 28, 2023
3d8132c
ENH: Rename interactor and interactor style to include "OpenVR" quali…
jcfr Dec 28, 2023
e2d3ba6
ENH: Simplify "createRenderWindow()" using "isHardwareConnected()"
jcfr Dec 28, 2023
39ba1c8
ENH: Update qMRMLVirtualRealityView to use "VR" base types whenever p…
jcfr Dec 28, 2023
290567a
ENH: Associate VirtualRealityLogic with VirtualRealityView
jcfr Dec 28, 2023
1684fa8
ENH: Add support for runtime-specific action manifest path
jcfr Dec 22, 2023
0dab065
ENH: Improve information displayed upon runtime initialization
jcfr Dec 29, 2023
42c2ec8
STYLE: Update "createRenderWindow()" to perform sanity checks early
jcfr Dec 28, 2023
f1dd001
ENH: Update "createRenderWindow()" to internally instantiate objects …
jcfr Dec 28, 2023
ce0c1bc
ENH: Consolidate & simplify logic for RenderWindow creation
jcfr Dec 28, 2023
12b6201
ENH: Add API for retrieving the XR runtime based on instantiated Rend…
jcfr Dec 28, 2023
1ed0776
ENH: Add "XRRuntime" view node property
jcfr Dec 28, 2023
139daa5
ENH: Update updateWidgetFromMRML adding recursion guard
jcfr Dec 28, 2023
ab512ad
ENH: Initialize XR Runtime based on the corresponding view node property
jcfr Dec 29, 2023
c7a6cb1
ENH: Set default XR Runtime to "OpenVR"
jcfr Dec 29, 2023
107a105
ENH: Refactor logic introducing InitializeActiveViewNode() function
jcfr Dec 29, 2023
fe6eb83
ENH: Update UI with XR Runtime selection combox
jcfr Dec 29, 2023
7dae050
ENH: Update InteractorObserver to use "VR" RenderWindow base type
jcfr Dec 29, 2023
7f3e673
ENH: Eliminate explicit OpenVR dependency in TransformWidget
jcfr Dec 29, 2023
3b94848
ENH: Simplify event loop introducing shouldConsiderQuickViewMotion()
jcfr Dec 29, 2023
e0fe654
ENH: Improve initialization process robustness using `GetVRInitialize…
jcfr Dec 29, 2023
db20342
ENH: Introduce CMake option for toggling "OpenVR" support
jcfr Dec 29, 2023
fa756b0
ENH: Update ComputeActionManifestPath to check for expected `vtk_*_ac…
jcfr Dec 30, 2023
e60325e
ENH: Add support for "OpenXR" XR runtime
jcfr Dec 29, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
103 changes: 89 additions & 14 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,31 @@ mark_as_superbuild(Slicer_DIR)
find_package(Git REQUIRED)
mark_as_superbuild(GIT_EXECUTABLE)

#-----------------------------------------------------------------------------
# Options

# OpenVR
set(_default ON)
set(_reason)
if(NOT DEFINED SlicerVirtualReality_HAS_OPENVR_SUPPORT AND APPLE)
set(_default OFF)
set(_reason " (OpenVR not supported on macOS)")
endif()
option(SlicerVirtualReality_HAS_OPENVR_SUPPORT "Build OpenVR XR runtime" ${_default})
mark_as_superbuild(SlicerVirtualReality_HAS_OPENVR_SUPPORT)
message(STATUS "")
message(STATUS "Setting SlicerVirtualReality_HAS_OPENVR_SUPPORT to ${SlicerVirtualReality_HAS_OPENVR_SUPPORT}${_reason}")
message(STATUS "")

# OpenXR
set(_default ON)
set(_reason)
option(SlicerVirtualReality_HAS_OPENXR_SUPPORT "Build OpenXR XR runtime" ${_default})
mark_as_superbuild(SlicerVirtualReality_HAS_OPENXR_SUPPORT)
message(STATUS "")
message(STATUS "Setting SlicerVirtualReality_HAS_OPENXR_SUPPORT to ${SlicerVirtualReality_HAS_OPENXR_SUPPORT}${_reason}")
message(STATUS "")

#-----------------------------------------------------------------------------
# SuperBuild setup
option(${EXTENSION_NAME}_SUPERBUILD "Build ${EXTENSION_NAME} and the projects it depends on." ON)
Expand Down Expand Up @@ -61,8 +86,21 @@ add_subdirectory(VirtualReality)

#-----------------------------------------------------------------------------
set(SlicerVirtualReality_CUSTOM_CONFIG "####### Expanded from \@SlicerVirtualReality_CUSTOM_CONFIG\@ #######
set(vtkRenderingOpenVR_DIR \"${vtkRenderingOpenVR_DIR}\")
find_package(vtkRenderingOpenVR REQUIRED)

set(vtkRenderingVR_DIR \"${vtkRenderingVR_DIR}\")
find_package(vtkRenderingVR REQUIRED)

set(SlicerVirtualReality_HAS_OPENVR_SUPPORT ${SlicerVirtualReality_HAS_OPENVR_SUPPORT})
if(SlicerVirtualReality_HAS_OPENVR_SUPPORT)
set(vtkRenderingOpenVR_DIR \"${vtkRenderingOpenVR_DIR}\")
find_package(vtkRenderingOpenVR REQUIRED)
endif()

set(SlicerVirtualReality_HAS_OPENXR_SUPPORT ${SlicerVirtualReality_HAS_OPENXR_SUPPORT})
if(SlicerVirtualReality_HAS_OPENXR_SUPPORT)
set(vtkRenderingOpenXR_DIR \"${vtkRenderingOpenXR_DIR}\")
find_package(vtkRenderingOpenXR REQUIRED)
endif()
##################################################
")
include(${Slicer_EXTENSION_GENERATE_CONFIG})
Expand All @@ -71,27 +109,64 @@ include(${Slicer_EXTENSION_GENERATE_CONFIG})
# Install OpenVR
set(_platform)
if(${CMAKE_SYSTEM_NAME} MATCHES "Windows")
# ${OpenVR_LIBRARY} contains import library which does not have to be installed.
# Instead, the dll must be added to the package.
install(FILES ${OpenVR_LIBRARY_PATHS_LAUNCHER_BUILD}/openvr_api.dll
DESTINATION ${Slicer_THIRDPARTY_LIB_DIR}
COMPONENT RuntimeLibraries
)
if(SlicerVirtualReality_HAS_OPENVR_SUPPORT)
# ${OpenVR_LIBRARY} contains import library which does not have to be installed.
# Instead, the dll must be added to the package.
install(FILES ${OpenVR_LIBRARY_PATHS_LAUNCHER_BUILD}/openvr_api.dll
DESTINATION ${Slicer_THIRDPARTY_LIB_DIR}
COMPONENT RuntimeLibraries
)
endif()

if(SlicerVirtualReality_HAS_OPENXR_SUPPORT)
# ${OpenXR_LIBRARY} contains import library which does not have to be installed.
# Instead, the dll must be added to the package.
set(_library "${OpenXR-SDK_LIBRARY_PATHS_LAUNCHER_BUILD}/openxr_loader.dll")
# Since the launcher settings include the placeholder <CMAKE_CFG_INTDIR>, let's
# replace if with the corresponding generator expression.
install(FILES ${_library}
DESTINATION ${Slicer_THIRDPARTY_LIB_DIR}
COMPONENT RuntimeLibraries
)
endif()
else()
install(FILES ${OpenVR_LIBRARY}
DESTINATION ${Slicer_THIRDPARTY_LIB_DIR}
COMPONENT RuntimeLibraries
)
if(SlicerVirtualReality_HAS_OPENVR_SUPPORT)
install(FILES ${OpenVR_LIBRARY}
DESTINATION ${Slicer_THIRDPARTY_LIB_DIR}
COMPONENT RuntimeLibraries
)
endif()

if(SlicerVirtualReality_HAS_OPENXR_SUPPORT)
install(FILES ${OpenXR_LIBRARY}
DESTINATION ${Slicer_INSTALL_THIRDPARTY_LIB_DIR}
COMPONENT RuntimeLibraries
)
endif()
endif()

#-----------------------------------------------------------------------------
set(EXTENSION_CPACK_INSTALL_CMAKE_PROJECTS)

list(APPEND EXTENSION_CPACK_INSTALL_CMAKE_PROJECTS "${vtkRenderingVR_DIR};vtkRenderingVR;runtime;/")
list(APPEND EXTENSION_CPACK_INSTALL_CMAKE_PROJECTS "${vtkRenderingOpenVR_DIR};vtkRenderingOpenVR;runtime;/")
if(Slicer_USE_PYTHONQT)
list(APPEND EXTENSION_CPACK_INSTALL_CMAKE_PROJECTS "${vtkRenderingVR_DIR};vtkRenderingVR;python;/")
list(APPEND EXTENSION_CPACK_INSTALL_CMAKE_PROJECTS "${vtkRenderingOpenVR_DIR};vtkRenderingOpenVR;python;/")
endif()

if(SlicerVirtualReality_HAS_OPENVR_SUPPORT)
list(APPEND EXTENSION_CPACK_INSTALL_CMAKE_PROJECTS "${vtkRenderingOpenVR_DIR};vtkRenderingOpenVR;runtime;/")
if(Slicer_USE_PYTHONQT)
list(APPEND EXTENSION_CPACK_INSTALL_CMAKE_PROJECTS "${vtkRenderingOpenVR_DIR};vtkRenderingOpenVR;python;/")
endif()
endif()

if(SlicerVirtualReality_HAS_OPENXR_SUPPORT)
list(APPEND EXTENSION_CPACK_INSTALL_CMAKE_PROJECTS "${vtkRenderingOpenXR_DIR};vtkRenderingOpenXR;runtime;/")
if(Slicer_USE_PYTHONQT)
list(APPEND EXTENSION_CPACK_INSTALL_CMAKE_PROJECTS "${vtkRenderingOpenXR_DIR};vtkRenderingOpenXR;python;/")
endif()
endif()

set(${EXTENSION_NAME}_CPACK_INSTALL_CMAKE_PROJECTS "${EXTENSION_CPACK_INSTALL_CMAKE_PROJECTS}" CACHE STRING "List of external projects to install" FORCE)

#-----------------------------------------------------------------------------
Expand Down
113 changes: 113 additions & 0 deletions SuperBuild/External_OpenXR-SDK.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,113 @@

set(proj OpenXR-SDK)

set(${proj}_DEPENDENCIES "")

# Include dependent projects if any
ExternalProject_Include_Dependencies(${proj} PROJECT_VAR proj DEPENDS_VAR ${proj}_DEPENDENCIES)

if(${SUPERBUILD_TOPLEVEL_PROJECT}_USE_SYSTEM_${proj})
unset(OpenXR_INCLUDE_DIR CACHE)
unset(OpenXR_LIBRARY CACHE)
find_package(OpenXR REQUIRED)
if(NOT DEFINED OpenXR_LIBRARY)
# Since the OpenXRConfig.cmake file provided by OpenXR-SDK does not set OpenXR_LIBRARY, its
# value may be retrieved from the OpenXR::OpenXR target.
# TODO
endif()
endif()

# Sanity checks
if(DEFINED OpenXR_INCLUDE_DIR AND NOT EXISTS ${OpenXR_INCLUDE_DIR})
message(FATAL_ERROR "OpenXR_INCLUDE_DIR variable is defined but corresponds to nonexistent directory")
endif()
if(DEFINED OpenXR_LIBRARY AND NOT EXISTS ${OpenXR_LIBRARY})
message(FATAL_ERROR "OpenXR_LIBRARY variable is defined but corresponds to nonexistent path")
endif()

if((NOT OpenXR_INCLUDE_DIR OR NOT OpenXR_LIBRARY)
AND NOT ${SUPERBUILD_TOPLEVEL_PROJECT}_USE_SYSTEM_${proj})

ExternalProject_SetIfNotDefined(
${SUPERBUILD_TOPLEVEL_PROJECT}_${proj}_GIT_REPOSITORY
"https://github.com/KhronosGroup/OpenXR-SDK.git"
QUIET
)

ExternalProject_SetIfNotDefined(
${SUPERBUILD_TOPLEVEL_PROJECT}_${proj}_GIT_TAG
"release-1.0.26"
QUIET
)

set(EP_SOURCE_DIR ${CMAKE_BINARY_DIR}/${proj})
set(EP_BINARY_DIR ${CMAKE_BINARY_DIR}/${proj}-build)
set(EP_INSTALL_DIR ${CMAKE_BINARY_DIR}/${proj}-install)

ExternalProject_Add(${proj}
${${proj}_EP_ARGS}
GIT_REPOSITORY "${${SUPERBUILD_TOPLEVEL_PROJECT}_${proj}_GIT_REPOSITORY}"
GIT_TAG "${${SUPERBUILD_TOPLEVEL_PROJECT}_${proj}_GIT_TAG}"
SOURCE_DIR ${EP_SOURCE_DIR}
BINARY_DIR ${EP_BINARY_DIR}
INSTALL_DIR ${EP_INSTALL_DIR}
CMAKE_CACHE_ARGS
# Compiler settings
-DCMAKE_C_COMPILER:FILEPATH=${CMAKE_C_COMPILER}
-DCMAKE_C_FLAGS:STRING=${ep_common_c_flags}
-DCMAKE_CXX_COMPILER:FILEPATH=${CMAKE_CXX_COMPILER}
-DCMAKE_CXX_FLAGS:STRING=${ep_common_cxx_flags}
-DCMAKE_CXX_STANDARD:STRING=${CMAKE_CXX_STANDARD}
-DCMAKE_CXX_STANDARD_REQUIRED:BOOL=${CMAKE_CXX_STANDARD_REQUIRED}
-DCMAKE_CXX_EXTENSIONS:BOOL=${CMAKE_CXX_EXTENSIONS}
# Options
-DBUILD_TESTING:BOOL=OFF
-DDYNAMIC_LOADER:BOOL=ON
# Install directories
-DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR>
${EXTERNAL_PROJECT_OPTIONAL_CMAKE_CACHE_ARGS}
DEPENDS
${${proj}_DEPENDENCIES}
)
set(OpenXR_DIR "${EP_INSTALL_DIR}/lib/cmake/openxr")

set(OpenXR_INCLUDE_DIR "${EP_INSTALL_DIR}/include/openxr")

if(WIN32)
set(OpenXR_LIBRARY "${EP_INSTALL_DIR}/lib/openxr_loader.lib")
elseif(APPLE)
set(OpenXR_LIBRARY "${EP_INSTALL_DIR}/lib/libopenxr_loader.dylib")
elseif(UNIX)
set(OpenXR_LIBRARY "${EP_INSTALL_DIR}/lib/libopenxr_loader.so")
endif()

#-----------------------------------------------------------------------------
# Launcher setting specific to build tree

# library paths
set(${proj}_LIBRARY_PATHS_LAUNCHER_BUILD
${EP_BINARY_DIR}/src/loader/<CMAKE_CFG_INTDIR>
)
mark_as_superbuild(
VARS ${proj}_LIBRARY_PATHS_LAUNCHER_BUILD
LABELS "LIBRARY_PATHS_LAUNCHER_BUILD"
)

#-----------------------------------------------------------------------------
# Launcher setting specific to install tree

# NA

else()
ExternalProject_Add_Empty(${proj} DEPENDS ${${proj}_DEPENDS})
endif()

ExternalProject_Message(${proj} "OpenXR_INCLUDE_DIR:${OpenXR_INCLUDE_DIR}")
ExternalProject_Message(${proj} "OpenXR_LIBRARY:${OpenXR_LIBRARY}")

mark_as_superbuild(
VARS
OpenXR_INCLUDE_DIR:PATH
OpenXR_LIBRARY:FILEPATH
)

123 changes: 123 additions & 0 deletions SuperBuild/External_vtkRenderingOpenXR.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,123 @@
#-----------------------------------------------------------------------------
# Build VTK Rendering OpenXR module, pointing it to Slicer's VTK and the OpenXR
# libraries also built by this extension.

set(proj vtkRenderingOpenXR)

# Set dependency list
set(${proj}_DEPENDS
OpenXR-SDK
vtkRenderingVR
)

# Include dependent projects if any
ExternalProject_Include_Dependencies(${proj} PROJECT_VAR proj)

if(${SUPERBUILD_TOPLEVEL_PROJECT}_USE_SYSTEM_${proj})
message(FATAL_ERROR "Enabling ${SUPERBUILD_TOPLEVEL_PROJECT}_USE_SYSTEM_${proj} is not supported !")
endif()

# Sanity checks
if(DEFINED ${proj}_DIR AND NOT EXISTS ${${proj}_DIR})
message(FATAL_ERROR "${proj}_DIR [${${proj}_DIR}] variable is defined but corresponds to nonexistent directory")
endif()

if(NOT DEFINED ${proj}_DIR AND NOT ${SUPERBUILD_TOPLEVEL_PROJECT}_USE_SYSTEM_${proj})

set(EXTERNAL_PROJECT_OPTIONAL_CMAKE_CACHE_ARGS)
if(VTK_WRAP_PYTHON)
list(APPEND EXTERNAL_PROJECT_OPTIONAL_CMAKE_CACHE_ARGS
-DPYTHON_EXECUTABLE:FILEPATH=${PYTHON_EXECUTABLE}
-DPYTHON_INCLUDE_DIR:PATH=${PYTHON_INCLUDE_DIR}
-DPYTHON_LIBRARY:FILEPATH=${PYTHON_LIBRARY}
# Required by FindPython3 CMake module used by VTK
-DPython3_ROOT_DIR:PATH=${Python3_ROOT_DIR}
-DPython3_INCLUDE_DIR:PATH=${Python3_INCLUDE_DIR}
-DPython3_LIBRARY:FILEPATH=${Python3_LIBRARY}
-DPython3_LIBRARY_DEBUG:FILEPATH=${Python3_LIBRARY_DEBUG}
-DPython3_LIBRARY_RELEASE:FILEPATH=${Python3_LIBRARY_RELEASE}
-DPython3_EXECUTABLE:FILEPATH=${Python3_EXECUTABLE}
)
endif()

if(NOT EXISTS ${VTKExternalModule_SOURCE_DIR})
message(FATAL_ERROR "VTKExternalModule_SOURCE_DIR [${VTKExternalModule_SOURCE_DIR}] variable is set to a nonexistent directory")
endif()

set(VTK_SOURCE_DIR ${VTK_DIR}/../VTK)
ExternalProject_Message(${proj} "VTK_SOURCE_DIR:${VTK_SOURCE_DIR}")

set(_module_subdir Rendering/OpenXR)
set(_module_name RenderingOpenXR)

set(EP_SOURCE_DIR ${VTK_SOURCE_DIR}/${_module_subdir})
set(EP_BINARY_DIR ${CMAKE_BINARY_DIR}/${proj}-build)

# The "vtk_openxr_actions.json" and "vtk_openxr_binding_*.json" files
# are then installed into "${_manifest_install_dir}/xr_actions/" directory.
set(_openxr_manifest_install_dir ${Slicer_INSTALL_THIRDPARTY_LIB_DIR})

ExternalProject_Add(${proj}
${${proj}_EP_ARGS}
DOWNLOAD_COMMAND ""
SOURCE_DIR ${VTKExternalModule_SOURCE_DIR}
BINARY_DIR ${EP_BINARY_DIR}
INSTALL_COMMAND ""
CMAKE_CACHE_ARGS
# VTKExternalModule
-DVTK_MODULE_NAME:STRING=${_module_name}
-DVTK_MODULE_SOURCE_DIR:PATH=${EP_SOURCE_DIR}
-DVTK_MODULE_CMAKE_MODULE_PATH:PATH=${VTK_SOURCE_DIR}/CMake
-DOpenXR_FIND_PACKAGE_VARS:STRING=OpenXR_INCLUDE_DIR;OpenXR_LIBRARY
# vtkRenderingOpenXR
-DCMAKE_CXX_COMPILER:FILEPATH=${CMAKE_CXX_COMPILER}
-DCMAKE_CXX_FLAGS:STRING=${ep_common_cxx_flags}
-DCMAKE_C_COMPILER:FILEPATH=${CMAKE_C_COMPILER}
-DCMAKE_C_FLAGS:STRING=${ep_common_c_flags}
-DBUILD_TESTING:BOOL=OFF
-DCMAKE_RUNTIME_OUTPUT_DIRECTORY:PATH=${CMAKE_BINARY_DIR}/${Slicer_THIRDPARTY_BIN_DIR}
-DCMAKE_LIBRARY_OUTPUT_DIRECTORY:PATH=${CMAKE_BINARY_DIR}/${Slicer_THIRDPARTY_LIB_DIR}
-DCMAKE_INSTALL_BINDIR:STRING=${Slicer_INSTALL_THIRDPARTY_BIN_DIR}
-DCMAKE_INSTALL_LIBDIR:STRING=${Slicer_INSTALL_THIRDPARTY_LIB_DIR}
-DCMAKE_INSTALL_DATAROOTDIR:STRING=${_openxr_manifest_install_dir}
-DCMAKE_MACOSX_RPATH:BOOL=0
# Required to find VTK
-DVTK_DIR:PATH=${VTK_DIR}
# Required to find vtkRenderingVR
-DvtkRenderingVR_DIR:PATH=${vtkRenderingVR_DIR}
# Required to find OpenXR
-DOpenXR_INCLUDE_DIR:PATH=${OpenXR_INCLUDE_DIR}
-DOpenXR_LIBRARY:PATH=${OpenXR_LIBRARY}
${EXTERNAL_PROJECT_OPTIONAL_CMAKE_CACHE_ARGS}
DEPENDS
${${proj}_DEPENDS}
)

ExternalProject_AlwaysConfigure(${proj})

set(${proj}_DIR ${EP_BINARY_DIR})

#-----------------------------------------------------------------------------
# Launcher setting specific to build tree

# pythonpath
set(${proj}_PYTHONPATH_LAUNCHER_BUILD
${${proj}_DIR}/${Slicer_INSTALL_THIRDPARTY_LIB_DIR}/${PYTHON_SITE_PACKAGES_SUBDIR}/vtkmodules
)
mark_as_superbuild(
VARS ${proj}_PYTHONPATH_LAUNCHER_BUILD
LABELS "PYTHONPATH_LAUNCHER_BUILD"
)

#-----------------------------------------------------------------------------
# Launcher setting specific to install tree

# NA

else()
ExternalProject_Add_Empty(${proj} DEPENDS ${${proj}_DEPENDS})
endif()

mark_as_superbuild(VARS ${proj}_DIR:PATH)
ExternalProject_Message(${proj} "${proj}_DIR:${${proj}_DIR}")

Loading