Skip to content

File CMakeLists.txt

File List > 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()