File CMakeLists.txt
Go to the documentation of this file
if(NOT CMAKE_SYSTEM_NAME STREQUAL "Linux")
message(WARNING "boba_immersive is currently available only on Linux")
set(USE_BOBA_IMMERSIVE OFF PARENT_SCOPE)
else()
find_package(OpenXR CONFIG REQUIRED)
# This bridge is native C++ only; Boba remains a separately launched Python
# process and therefore is not linked into the plugin target.
set(PLUGIN_NAME plugin.boba_immersive${ILLIXR_BUILD_SUFFIX})
add_library(${PLUGIN_NAME} SHARED
plugin.cpp
plugin.hpp
${CMAKE_SOURCE_DIR}/include/illixr/data_format/openxr_view_frame.hpp
${CMAKE_SOURCE_DIR}/include/illixr/data_format/quest_controller.hpp
${CMAKE_SOURCE_DIR}/include/illixr/data_format/serialization/openxr_view_frame.hpp
${CMAKE_SOURCE_DIR}/include/illixr/data_format/serialization/quest_controller.hpp
${CMAKE_SOURCE_DIR}/include/illixr/data_format/stereo_frame.hpp
${CMAKE_SOURCE_DIR}/include/illixr/plugin.hpp
${CMAKE_SOURCE_DIR}/include/illixr/relative_clock.hpp
${CMAKE_SOURCE_DIR}/include/illixr/stoplight.hpp
${CMAKE_SOURCE_DIR}/include/illixr/switchboard.hpp
${CMAKE_SOURCE_DIR}/utils/serialization/openxr_view_frame.cpp
${CMAKE_SOURCE_DIR}/utils/serialization/quest_controller.cpp
)
# Match the pose layout used by both consumers of the local stereo_frame event.
target_compile_definitions(${PLUGIN_NAME} PRIVATE USING_OPENXR)
target_link_libraries(${PLUGIN_NAME} PRIVATE
OpenXR::headers
Eigen3::Eigen
Boost::serialization
Threads::Threads
spdlog::spdlog
)
target_compile_features(${PLUGIN_NAME} PRIVATE cxx_std_17)
install(TARGETS ${PLUGIN_NAME} DESTINATION lib)
install(PROGRAMS ${CMAKE_SOURCE_DIR}/scripts/setup_boba_immersive.sh DESTINATION bin)
endif()