The open source OpenXR runtime

cmake: Introduce a new module category

+47 -32
+19 -11
CMakeLists.txt
··· 242 242 option_with_deps(XRT_HAVE_BASALT_SLAM "Enable Basalt support" DEPENDS basalt_FOUND) 243 243 option_with_deps(XRT_HAVE_KIMERA_SLAM "Enable Kimera support" DEPENDS kimera_vio_FOUND) 244 244 245 + option(XRT_MODULE_IPC "Enable the build of the IPC layer" ON) 246 + option(XRT_MODULE_COMPOSITOR "Enable the compositor at all" ON) 247 + option_with_deps(XRT_MODULE_COMPOSITOR_MAIN "Build main compositor host functionality" DEPENDS 248 + XRT_MODULE_COMPOSITOR 249 + XRT_HAVE_VULKAN 250 + "XRT_HAVE_WAYLAND OR XRT_HAVE_XCB OR ANDROID OR WIN32" 251 + ) 252 + option_with_deps(XRT_MODULE_COMPOSITOR_NULL "Build testing null compositor" DEPENDS XRT_MODULE_COMPOSITOR XRT_HAVE_VULKAN) 253 + 245 254 # Feature configuration (sorted) 246 255 option(XRT_FEATURE_COLOR_LOG "Enable logging in color on supported platforms" ON) 247 - option_with_deps(XRT_FEATURE_COMPOSITOR_MAIN "Build main compositor host functionality" DEPENDS XRT_HAVE_VULKAN "XRT_HAVE_WAYLAND OR XRT_HAVE_XCB OR ANDROID OR WIN32") 248 - option_with_deps(XRT_FEATURE_COMPOSITOR_NULL "Build testing null compositor" DEPENDS XRT_HAVE_VULKAN) 249 - option(XRT_FEATURE_IPC "Enable the build of the IPC layer" ON) 250 - option_with_deps(XRT_FEATURE_OPENXR "Build OpenXR runtime target" DEPENDS "XRT_FEATURE_COMPOSITOR_MAIN OR XRT_FEATURE_COMPOSITOR_NULL") 256 + option_with_deps(XRT_FEATURE_OPENXR "Build OpenXR runtime target" DEPENDS "XRT_MODULE_COMPOSITOR_MAIN OR XRT_MODULE_COMPOSITOR_NULL") 251 257 option_with_deps(XRT_FEATURE_RENDERDOC "Enable RenderDoc API" DEPENDS "RT_LIBRARY OR WIN32") 252 - option_with_deps(XRT_FEATURE_SERVICE "Enable separate service module for OpenXR runtime" DEPENDS XRT_FEATURE_IPC XRT_FEATURE_OPENXR) 258 + option_with_deps(XRT_FEATURE_SERVICE "Enable separate service module for OpenXR runtime" DEPENDS XRT_MODULE_IPC XRT_FEATURE_OPENXR) 253 259 option_with_deps(XRT_FEATURE_SERVICE_SYSTEMD "Enable systemd socket activation of the service" DEPENDS XRT_HAVE_SYSTEMD XRT_FEATURE_SERVICE) 254 260 option_with_deps(XRT_FEATURE_SLAM "Enable SLAM tracking support" DEPENDS XRT_HAVE_OPENCV "XRT_HAVE_BASALT_SLAM OR XRT_HAVE_KIMERA_SLAM") 255 261 option_with_deps(XRT_FEATURE_STEAMVR_PLUGIN "Build SteamVR plugin" DEPENDS "NOT ANDROID") ··· 318 324 # cmake-format: on 319 325 320 326 # Most users won't touch these. 321 - mark_as_advanced(XRT_FEATURE_COMPOSITOR_MAIN XRT_FEATURE_COMPOSITOR_NULL XRT_FEATURE_OPENXR) 327 + mark_as_advanced(XRT_MODULE_COMPOSITOR_MAIN XRT_MODULE_COMPOSITOR_NULL XRT_FEATURE_OPENXR) 322 328 323 329 # Defaults for OpenXR layer support 324 330 if(NOT DEFINED XRT_FEATURE_OPENXR_LAYER_DEPTH) ··· 502 508 message(STATUS "# XLIB: ${XRT_HAVE_XLIB}") 503 509 message(STATUS "# XRANDR: ${XRT_HAVE_XRANDR}") 504 510 message(STATUS "#") 511 + message(STATUS "# MODULE_IPC ${XRT_MODULE_IPC}") 512 + message(STATUS "# MODULE_COMPOSITOR ${XRT_MODULE_COMPOSITOR}") 513 + message(STATUS "# MODULE_COMPOSITOR_MAIN ${XRT_MODULE_COMPOSITOR_MAIN}") 514 + message(STATUS "# MODULE_COMPOSITOR_NULL ${XRT_MODULE_COMPOSITOR_NULL}") 515 + message(STATUS "#") 505 516 message(STATUS "# FEATURE_CLIENT_DEBUG_GUI: ${XRT_FEATURE_CLIENT_DEBUG_GUI}") 506 517 message(STATUS "# FEATURE_COLOR_LOG: ${XRT_FEATURE_COLOR_LOG}") 507 - message(STATUS "# FEATURE_COMPOSITOR_MAIN: ${XRT_FEATURE_COMPOSITOR_MAIN}") 508 - message(STATUS "# FEATURE_COMPOSITOR_NULL: ${XRT_FEATURE_COMPOSITOR_NULL}") 509 - message(STATUS "# FEATURE_IPC: ${XRT_FEATURE_IPC}") 510 518 message(STATUS "# FEATURE_OPENXR: ${XRT_FEATURE_OPENXR}") 511 519 message(STATUS "# FEATURE_OPENXR_LAYER_CUBE: ${XRT_FEATURE_OPENXR_LAYER_CUBE}") 512 520 message(STATUS "# FEATURE_OPENXR_LAYER_CYLINDER: ${XRT_FEATURE_OPENXR_LAYER_CYLINDER}") ··· 549 557 if(XRT_FEATURE_SERVICE AND NOT XRT_FEATURE_OPENXR) 550 558 message(FATAL_ERROR "XRT_FEATURE_SERVICE requires XRT_FEATURE_OPENXR to be enabled") 551 559 endif() 552 - if(XRT_FEATURE_SERVICE AND NOT XRT_FEATURE_IPC) 553 - message(FATAL_ERROR "XRT_FEATURE_SERVICE requires XRT_FEATURE_IPC to be enabled") 560 + if(XRT_FEATURE_SERVICE AND NOT XRT_MODULE_IPC) 561 + message(FATAL_ERROR "XRT_FEATURE_SERVICE requires XRT_MODULE_IPC to be enabled") 554 562 endif()
+6 -5
src/xrt/CMakeLists.txt
··· 1 - # Copyright 2019-2022, Collabora, Ltd. 1 + # Copyright 2019-2023, Collabora, Ltd. 2 2 # SPDX-License-Identifier: BSL-1.0 3 3 4 4 # Order matters. ··· 6 6 add_subdirectory(auxiliary) 7 7 add_subdirectory(tracking) 8 8 add_subdirectory(drivers) 9 - add_subdirectory(compositor) 9 + if(XRT_MODULE_COMPOSITOR) 10 + add_subdirectory(compositor) 11 + endif() 10 12 add_subdirectory(state_trackers) 11 - add_subdirectory(targets) 12 - 13 - if(XRT_FEATURE_IPC) 13 + if(XRT_MODULE_IPC) 14 14 add_subdirectory(ipc) 15 15 endif() 16 + add_subdirectory(targets)
+4 -4
src/xrt/compositor/CMakeLists.txt
··· 1 - # Copyright 2019-2022, Collabora, Ltd. 1 + # Copyright 2019-2023, Collabora, Ltd. 2 2 # SPDX-License-Identifier: BSL-1.0 3 3 4 4 ### ··· 167 167 # Main library 168 168 # 169 169 170 - if(XRT_FEATURE_COMPOSITOR_MAIN) 170 + if(XRT_MODULE_COMPOSITOR_MAIN) 171 171 172 172 add_library( 173 173 comp_main STATIC ··· 295 295 # Null compositor 296 296 # 297 297 298 - if(XRT_FEATURE_COMPOSITOR_NULL) 298 + if(XRT_MODULE_COMPOSITOR_NULL) 299 299 add_subdirectory(null) 300 300 endif() 301 301 ··· 314 314 ) 315 315 target_include_directories(comp_multi PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) 316 316 317 - if(XRT_FEATURE_COMPOSITOR_MAIN) 317 + if(XRT_MODULE_COMPOSITOR_MAIN) 318 318 target_link_libraries(comp_main PRIVATE comp_multi) 319 319 endif() 320 320
+10 -4
src/xrt/include/xrt/xrt_config_build.h.cmake_in
··· 1 - // Copyright 2020-2022, Collabora, Ltd. 1 + // Copyright 2020-2023, Collabora, Ltd. 2 2 // SPDX-License-Identifier: BSL-1.0 3 3 /*! 4 4 * @file ··· 9 9 10 10 #pragma once 11 11 12 + 13 + /* keep sorted */ 14 + 15 + #cmakedefine XRT_MODULE_IPC 16 + #cmakedefine XRT_MODULE_COMPOSITOR 17 + #cmakedefine XRT_MODULE_COMPOSITOR_MAIN 18 + #cmakedefine XRT_MODULE_COMPOSITOR_NULL 19 + 20 + 12 21 /* keep sorted */ 13 22 14 23 #cmakedefine XRT_FEATURE_COLOR_LOG 15 - #cmakedefine XRT_FEATURE_COMPOSITOR_MAIN 16 - #cmakedefine XRT_FEATURE_COMPOSITOR_NULL 17 - #cmakedefine XRT_FEATURE_IPC 18 24 #cmakedefine XRT_FEATURE_OPENXR 19 25 #cmakedefine XRT_FEATURE_OPENXR_DEBUG_UTILS 20 26 #cmakedefine XRT_FEATURE_OPENXR_LAYER_CUBE
+4 -4
src/xrt/targets/common/CMakeLists.txt
··· 1 - # Copyright 2019-2022, Collabora, Ltd. 1 + # Copyright 2019-2023, Collabora, Ltd. 2 2 # SPDX-License-Identifier: BSL-1.0 3 3 4 4 #### ··· 165 165 # Instance 166 166 # 167 167 168 - if(XRT_FEATURE_COMPOSITOR_MAIN OR XRT_FEATURE_COMPOSITOR_NULL) 168 + if(XRT_MODULE_COMPOSITOR_MAIN OR XRT_MODULE_COMPOSITOR_NULL) 169 169 add_library(target_instance STATIC target_instance.c) 170 170 target_link_libraries( 171 171 target_instance ··· 178 178 ) 179 179 target_include_directories(target_instance PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) 180 180 181 - if(XRT_FEATURE_COMPOSITOR_MAIN) 181 + if(XRT_MODULE_COMPOSITOR_MAIN) 182 182 target_link_libraries(target_instance PRIVATE comp_main) 183 183 endif() 184 184 185 - if(XRT_FEATURE_COMPOSITOR_NULL) 185 + if(XRT_MODULE_COMPOSITOR_NULL) 186 186 target_link_libraries(target_instance PRIVATE comp_null) 187 187 endif() 188 188 endif()
+4 -4
src/xrt/targets/common/target_instance.c
··· 15 15 #include "util/u_trace_marker.h" 16 16 #include "util/u_system_helpers.h" 17 17 18 - #ifdef XRT_FEATURE_COMPOSITOR_MAIN 18 + #ifdef XRT_MODULE_COMPOSITOR_MAIN 19 19 #include "main/comp_main_interface.h" 20 20 #endif 21 21 ··· 24 24 #include <assert.h> 25 25 26 26 27 - #ifdef XRT_FEATURE_COMPOSITOR_MAIN 27 + #ifdef XRT_MODULE_COMPOSITOR_MAIN 28 28 #define USE_NULL_DEFAULT (false) 29 29 #else 30 30 #define USE_NULL_DEFAULT (true) ··· 73 73 74 74 bool use_null = debug_get_bool_option_use_null(); 75 75 76 - #ifdef XRT_FEATURE_COMPOSITOR_NULL 76 + #ifdef XRT_MODULE_COMPOSITOR_NULL 77 77 if (use_null) { 78 78 xret = null_compositor_create_system(head, &xsysc); 79 79 } ··· 84 84 } 85 85 #endif 86 86 87 - #ifdef XRT_FEATURE_COMPOSITOR_MAIN 87 + #ifdef XRT_MODULE_COMPOSITOR_MAIN 88 88 if (xret == XRT_SUCCESS && xsysc == NULL) { 89 89 xret = comp_main_create_system_compositor(head, NULL, &xsysc); 90 90 }