mirror of
https://github.com/lbgos/rift-s-linux.git
synced 2026-10-17 19:00:58 +02:00
Co-authored-by: Beyley Cardellio <ep1cm1n10n123@gmail.com> Part-of: <https://gitlab.freedesktop.org/monado/monado/-/merge_requests/2732>
248 lines
6.8 KiB
CMake
248 lines
6.8 KiB
CMake
# Copyright 2025-2026, NVIDIA CORPORATION.
|
|
# SPDX-License-Identifier: BSL-1.0
|
|
|
|
#.rst:
|
|
# MonadoSetOptions
|
|
# ----------------
|
|
#
|
|
# Provides a function to bulk-configure Monado build options.
|
|
#
|
|
# This is useful for projects that embed Monado or build minimal configurations,
|
|
# as it allows setting all options to OFF by default and then selectively
|
|
# enabling only what's needed, without manually listing hundreds of options.
|
|
#
|
|
# In-tree usage example::
|
|
#
|
|
# set(MONADO_ROOT ../../..)
|
|
# include(${MONADO_ROOT}/cmake/MonadoSetOptions.cmake)
|
|
# monado_set_options(
|
|
# ENABLE
|
|
# XRT_HAVE_VULKAN
|
|
# KEEP
|
|
# XRT_HAVE_SYSTEM_CJSON
|
|
# XRT_FEATURE_SSE2
|
|
# )
|
|
# add_subdirectory(${MONADO_ROOT} monado)
|
|
#
|
|
# Out-of-tree usage example::
|
|
#
|
|
# include(/path/to/monado/cmake/MonadoSetOptions.cmake)
|
|
#
|
|
# monado_set_options(
|
|
# ENABLE
|
|
# XRT_HAVE_VULKAN
|
|
# XRT_MODULE_COMPOSITOR_MAIN
|
|
# KEEP
|
|
# XRT_HAVE_SYSTEM_CJSON
|
|
# )
|
|
#
|
|
# add_subdirectory(/path/to/monado monado)
|
|
#
|
|
# ``ENABLE``
|
|
# List of options to explicitly set to ON
|
|
#
|
|
# ``KEEP``
|
|
# List of options to leave unchanged (don't force to OFF).
|
|
# Useful for options that auto-detect (like XRT_HAVE_SYSTEM_CJSON,
|
|
# XRT_FEATURE_SSE2).
|
|
#
|
|
# All other known Monado options will be set to OFF.
|
|
|
|
function(monado_set_options)
|
|
set(options "")
|
|
set(oneValueArgs "")
|
|
set(multiValueArgs ENABLE KEEP)
|
|
cmake_parse_arguments(
|
|
MSO "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN}
|
|
)
|
|
|
|
# Define all known Monado options
|
|
set(
|
|
_ALL_XRT_OPTIONS
|
|
# XRT_HAVE_* - Graphics APIs and system dependencies
|
|
XRT_HAVE_BASALT
|
|
XRT_HAVE_BLUETOOTH
|
|
XRT_HAVE_D3D11
|
|
XRT_HAVE_D3D12
|
|
XRT_HAVE_DBUS
|
|
XRT_HAVE_DXGI
|
|
XRT_HAVE_EGL
|
|
XRT_HAVE_GST
|
|
XRT_HAVE_HIDAPI
|
|
XRT_HAVE_JPEG
|
|
XRT_HAVE_KIMERA
|
|
XRT_HAVE_LIBBSD
|
|
XRT_HAVE_LIBUSB
|
|
XRT_HAVE_LIBUDEV
|
|
XRT_HAVE_LIBUVC
|
|
XRT_HAVE_ONNXRUNTIME
|
|
XRT_HAVE_OPENCV
|
|
XRT_HAVE_OPENGL
|
|
XRT_HAVE_OPENGLES
|
|
XRT_HAVE_OPENGL_GLX
|
|
XRT_HAVE_OPENVR
|
|
XRT_HAVE_PERCETTO
|
|
XRT_HAVE_REALSENSE
|
|
XRT_HAVE_SDL2
|
|
XRT_HAVE_SYSTEM_CJSON
|
|
XRT_HAVE_SYSTEMD
|
|
XRT_HAVE_TRACY
|
|
XRT_HAVE_VULKAN
|
|
XRT_HAVE_WAYLAND
|
|
XRT_HAVE_WAYLAND_DIRECT
|
|
XRT_HAVE_WIL
|
|
XRT_HAVE_WINRT
|
|
XRT_HAVE_XCB
|
|
XRT_HAVE_XLIB
|
|
XRT_HAVE_XRANDR
|
|
# XRT_MODULE_* - Core modules
|
|
XRT_MODULE_AUX_VIVE
|
|
XRT_MODULE_COMPOSITOR
|
|
XRT_MODULE_COMPOSITOR_CLIENT
|
|
XRT_MODULE_COMPOSITOR_MAIN
|
|
XRT_MODULE_COMPOSITOR_MOCK
|
|
XRT_MODULE_COMPOSITOR_MULTI
|
|
XRT_MODULE_COMPOSITOR_NULL
|
|
XRT_MODULE_COMPOSITOR_RENDER
|
|
XRT_MODULE_COMPOSITOR_SHADERS
|
|
XRT_MODULE_COMPOSITOR_UTIL
|
|
XRT_MODULE_IPC
|
|
XRT_MODULE_MERCURY_HANDTRACKING
|
|
XRT_MODULE_MONADO_CLI
|
|
XRT_MODULE_MONADO_GUI
|
|
XRT_MODULE_OPENXR_STATE_TRACKER
|
|
# XRT_FEATURE_* - Feature flags
|
|
XRT_FEATURE_AHARDWARE_BUFFER
|
|
XRT_FEATURE_CLIENT_DEBUG_GUI
|
|
XRT_FEATURE_CLIENT_WITHOUT_SERVICE
|
|
XRT_FEATURE_COLOR_LOG
|
|
XRT_FEATURE_DEBUG_GUI
|
|
XRT_FEATURE_OPENXR
|
|
XRT_FEATURE_OPENXR_DEBUG_UTILS
|
|
XRT_FEATURE_RENDERDOC
|
|
XRT_FEATURE_SERVICE
|
|
XRT_FEATURE_SERVICE_SYSTEMD
|
|
XRT_FEATURE_SLAM
|
|
XRT_FEATURE_SSE2
|
|
XRT_FEATURE_STEAMVR_PLUGIN
|
|
XRT_FEATURE_TRACING
|
|
XRT_FEATURE_WINDOW_PEEK
|
|
# XRT_FEATURE_OPENXR_* - OpenXR extensions
|
|
XRT_FEATURE_OPENXR_ACTIVE_ACTION_SET_PRIORITY
|
|
XRT_FEATURE_OPENXR_BODY_TRACKING_BD
|
|
XRT_FEATURE_OPENXR_BODY_TRACKING_CALIBRATION_META
|
|
XRT_FEATURE_OPENXR_BODY_TRACKING_FB
|
|
XRT_FEATURE_OPENXR_BODY_TRACKING_FULL_BODY_META
|
|
XRT_FEATURE_OPENXR_DISPLAY_REFRESH_RATE
|
|
XRT_FEATURE_OPENXR_FACE_TRACKING2_FB
|
|
XRT_FEATURE_OPENXR_FACE_TRACKING_ANDROID
|
|
XRT_FEATURE_OPENXR_FACIAL_TRACKING_HTC
|
|
XRT_FEATURE_OPENXR_FORCE_FEEDBACK_CURL
|
|
XRT_FEATURE_OPENXR_FUTURE_EXT
|
|
XRT_FEATURE_OPENXR_HAND_TRACKING_DATA_SOURCE_EXT
|
|
XRT_FEATURE_OPENXR_HAND_TRACKING_EXT
|
|
XRT_FEATURE_OPENXR_HAPTIC_PCM
|
|
XRT_FEATURE_OPENXR_HEADLESS
|
|
XRT_FEATURE_OPENXR_INTERACTION_BYTEDANCE
|
|
XRT_FEATURE_OPENXR_INTERACTION_EXT_EYE_GAZE
|
|
XRT_FEATURE_OPENXR_INTERACTION_EXT_HAND
|
|
XRT_FEATURE_OPENXR_INTERACTION_EXT_PALM_POSE
|
|
XRT_FEATURE_OPENXR_INTERACTION_FB_PROXIMITY
|
|
XRT_FEATURE_OPENXR_INTERACTION_KHR_GENERIC
|
|
XRT_FEATURE_OPENXR_INTERACTION_ML2
|
|
XRT_FEATURE_OPENXR_INTERACTION_MNDX
|
|
XRT_FEATURE_OPENXR_INTERACTION_MSFT_HAND
|
|
XRT_FEATURE_OPENXR_INTERACTION_OPPO
|
|
XRT_FEATURE_OPENXR_INTERACTION_TOUCH_PLUS
|
|
XRT_FEATURE_OPENXR_INTERACTION_TOUCH_PRO
|
|
XRT_FEATURE_OPENXR_INTERACTION_VIVE_COSMOS
|
|
XRT_FEATURE_OPENXR_INTERACTION_VIVE_FOCUS3
|
|
XRT_FEATURE_OPENXR_INTERACTION_WINMR
|
|
XRT_FEATURE_OPENXR_LAYER_COLOR_SCALE_BIAS
|
|
XRT_FEATURE_OPENXR_LAYER_CUBE
|
|
XRT_FEATURE_OPENXR_LAYER_CYLINDER
|
|
XRT_FEATURE_OPENXR_LAYER_DEPTH
|
|
XRT_FEATURE_OPENXR_LAYER_EQUIRECT1
|
|
XRT_FEATURE_OPENXR_LAYER_EQUIRECT2
|
|
XRT_FEATURE_OPENXR_LAYER_FB_ALPHA_BLEND
|
|
XRT_FEATURE_OPENXR_LAYER_FB_DEPTH_TEST
|
|
XRT_FEATURE_OPENXR_LAYER_FB_IMAGE_LAYOUT
|
|
XRT_FEATURE_OPENXR_LAYER_FB_PASSTHROUGH
|
|
XRT_FEATURE_OPENXR_LAYER_FB_SETTINGS
|
|
XRT_FEATURE_OPENXR_OVERLAY
|
|
XRT_FEATURE_OPENXR_PERFORMANCE_SETTINGS
|
|
XRT_FEATURE_OPENXR_PLANE_DETECTION
|
|
XRT_FEATURE_OPENXR_SPACE_LOCAL_FLOOR
|
|
XRT_FEATURE_OPENXR_SPACE_UNBOUNDED
|
|
XRT_FEATURE_OPENXR_USER_PRESENCE
|
|
XRT_FEATURE_OPENXR_VISIBILITY_MASK
|
|
XRT_FEATURE_OPENXR_VULKAN_SWAPCHAIN_FORMAT_LIST
|
|
XRT_FEATURE_OPENXR_XDEV_SPACE
|
|
# XRT_INSTALL_* - Installation options
|
|
XRT_INSTALL_ABSOLUTE_SYSTEMD_UNIT_FILES
|
|
XRT_INSTALL_SYSTEMD_UNIT_FILES
|
|
# XRT_BUILD_DRIVER_* - Device drivers
|
|
XRT_BUILD_DRIVER_ANDROID
|
|
XRT_BUILD_DRIVER_ARDUINO
|
|
XRT_BUILD_DRIVER_BLUBUR_S1
|
|
XRT_BUILD_DRIVER_DAYDREAM
|
|
XRT_BUILD_DRIVER_DEPTHAI
|
|
XRT_BUILD_DRIVER_EUROC
|
|
XRT_BUILD_DRIVER_HANDTRACKING
|
|
XRT_BUILD_DRIVER_HDK
|
|
XRT_BUILD_DRIVER_HYDRA
|
|
XRT_BUILD_DRIVER_ILLIXR
|
|
XRT_BUILD_DRIVER_NS
|
|
XRT_BUILD_DRIVER_OHMD
|
|
XRT_BUILD_DRIVER_OPENGLOVES
|
|
XRT_BUILD_DRIVER_PSMV
|
|
XRT_BUILD_DRIVER_PSSENSE
|
|
XRT_BUILD_DRIVER_PSVR
|
|
XRT_BUILD_DRIVER_QWERTY
|
|
XRT_BUILD_DRIVER_REALSENSE
|
|
XRT_BUILD_DRIVER_REMOTE
|
|
XRT_BUILD_DRIVER_RIFT
|
|
XRT_BUILD_DRIVER_RIFT_S
|
|
XRT_BUILD_DRIVER_ROKID
|
|
XRT_BUILD_DRIVER_SIMULATED
|
|
XRT_BUILD_DRIVER_SIMULAVR
|
|
XRT_BUILD_DRIVER_SOLARXR
|
|
XRT_BUILD_DRIVER_STEAMVR_LIGHTHOUSE
|
|
XRT_BUILD_DRIVER_SURVIVE
|
|
XRT_BUILD_DRIVER_TWRAP
|
|
XRT_BUILD_DRIVER_ULV2
|
|
XRT_BUILD_DRIVER_ULV5
|
|
XRT_BUILD_DRIVER_VF
|
|
XRT_BUILD_DRIVER_VIVE
|
|
XRT_BUILD_DRIVER_WMR
|
|
XRT_BUILD_DRIVER_XREAL_AIR
|
|
# Additional options
|
|
BUILD_TESTING
|
|
XRT_BUILD_SAMPLES
|
|
)
|
|
|
|
# Create a list of options to keep unchanged
|
|
set(_keep_options ${MSO_KEEP})
|
|
|
|
# Create a list of options to enable
|
|
set(_enable_options ${MSO_ENABLE})
|
|
|
|
# Process all options
|
|
foreach(_option ${_ALL_XRT_OPTIONS})
|
|
# Check if this option should be kept unchanged
|
|
list(FIND _keep_options ${_option} _keep_index)
|
|
if(NOT _keep_index EQUAL -1)
|
|
# Skip this option
|
|
continue()
|
|
endif()
|
|
|
|
# Check if this option should be enabled
|
|
list(FIND _enable_options ${_option} _enable_index)
|
|
if(NOT _enable_index EQUAL -1)
|
|
set(${_option} ON PARENT_SCOPE)
|
|
else()
|
|
set(${_option} OFF PARENT_SCOPE)
|
|
endif()
|
|
endforeach()
|
|
endfunction()
|