Files
matzmanandClaude Opus 5.5 4a5b09053e Initial FrameAssistant baseline from the vrdashboard template
Template stripped to the overlay platform (examples, demo UI and Frame
test package removed), renamed to FrameAssistant, and working rules for
the project recorded in CLAUDE.md.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-05 00:06:58 +02:00

48 lines
2.2 KiB
CMake

# Provides the imported target OpenVR::OpenVR.
#
# Either point OPENVR_ROOT at an OpenVR SDK checkout (needs headers/ and bin/<platform>/),
# or leave it empty and the required files of OPENVR_VERSION are downloaded once into
# third_party/openvr-<version>/ (header + Linux libraries only, not the whole SDK).
set(OPENVR_ROOT "" CACHE PATH "Path to an OpenVR SDK (leave empty to auto-download)")
if(CMAKE_SYSTEM_PROCESSOR MATCHES "^(aarch64|arm64|ARM64)$")
set(_openvr_platform linuxarm64)
elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "^(x86_64|AMD64|amd64)$")
set(_openvr_platform linux64)
else()
message(FATAL_ERROR "Unsupported target processor for OpenVR: ${CMAKE_SYSTEM_PROCESSOR}")
endif()
if(NOT OPENVR_ROOT)
set(OPENVR_ROOT ${CMAKE_SOURCE_DIR}/third_party/openvr-${OPENVR_VERSION})
set(_base "https://raw.githubusercontent.com/ValveSoftware/openvr/v${OPENVR_VERSION}")
foreach(_file headers/openvr.h LICENSE bin/${_openvr_platform}/libopenvr_api.so)
if(NOT EXISTS ${OPENVR_ROOT}/${_file})
message(STATUS "Downloading OpenVR ${OPENVR_VERSION}: ${_file}")
file(DOWNLOAD ${_base}/${_file} ${OPENVR_ROOT}/${_file}.part STATUS _status TLS_VERIFY ON)
list(GET _status 0 _code)
if(NOT _code EQUAL 0)
file(REMOVE ${OPENVR_ROOT}/${_file}.part)
message(FATAL_ERROR "Download of ${_base}/${_file} failed: ${_status}\n"
"Set OPENVR_ROOT to a local OpenVR SDK to build offline.")
endif()
file(RENAME ${OPENVR_ROOT}/${_file}.part ${OPENVR_ROOT}/${_file})
endif()
endforeach()
endif()
set(_openvr_lib ${OPENVR_ROOT}/bin/${_openvr_platform}/libopenvr_api.so)
if(NOT EXISTS ${OPENVR_ROOT}/headers/openvr.h OR NOT EXISTS ${_openvr_lib})
message(FATAL_ERROR "OPENVR_ROOT=${OPENVR_ROOT} lacks headers/openvr.h or ${_openvr_lib}")
endif()
add_library(OpenVR::OpenVR SHARED IMPORTED GLOBAL)
set_target_properties(OpenVR::OpenVR PROPERTIES
IMPORTED_LOCATION ${_openvr_lib}
IMPORTED_NO_SONAME TRUE
INTERFACE_INCLUDE_DIRECTORIES ${OPENVR_ROOT}/headers)
set(OPENVR_LIBRARY ${_openvr_lib})
set(OPENVR_LICENSE ${OPENVR_ROOT}/LICENSE)
message(STATUS "OpenVR: ${OPENVR_ROOT} (${_openvr_platform})")