Files

31 lines
1.3 KiB
CMake

# SPDX-License-Identifier: MIT
cmake_minimum_required(VERSION 3.20)
project(mouselaser CXX)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_EXPORT_COMPILE_COMMANDS ON) # lets clangd find openvr_driver.h via build/compile_commands.json
if(NOT CMAKE_BUILD_TYPE)
set(CMAKE_BUILD_TYPE RelWithDebInfo)
endif()
# Header-only OpenVR driver API, as shipped with SteamVR's hellovr sample.
set(OPENVR_HEADERS /opt/steamvr/tools/hellovr_vulkan_linux/src/openvr/headers
CACHE PATH "Directory containing openvr_driver.h")
add_library(driver_mouselaser SHARED src/driver.cpp)
target_include_directories(driver_mouselaser PRIVATE ${OPENVR_HEADERS})
target_compile_options(driver_mouselaser PRIVATE -Wall -Wextra -fvisibility=hidden)
target_link_libraries(driver_mouselaser PRIVATE pthread)
set_target_properties(driver_mouselaser PROPERTIES
PREFIX ""
LIBRARY_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/driver/mouselaser/bin/linuxarm64)
# Optional offline check of the wheel logic: cmake -DMOUSELASER_TESTS=ON ... && ./build/wheel_sim
option(MOUSELASER_TESTS "Build the offline wheel simulation" OFF)
if(MOUSELASER_TESTS)
add_executable(wheel_sim tests/wheel_sim.cpp)
target_include_directories(wheel_sim PRIVATE ${OPENVR_HEADERS})
target_link_libraries(wheel_sim PRIVATE pthread)
endif()