tangled
alpha
login
or
join now
matrixfurry.com
/
monado
0
fork
atom
The open source OpenXR runtime
0
fork
atom
overview
issues
pulls
pipelines
cmake: Introduce a new module category
Jakob Bornecrantz
3 years ago
4b6491aa
2a3157b0
+47
-32
6 changed files
expand all
collapse all
unified
split
CMakeLists.txt
src
xrt
CMakeLists.txt
compositor
CMakeLists.txt
include
xrt
xrt_config_build.h.cmake_in
targets
common
CMakeLists.txt
target_instance.c
+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
245
+
option(XRT_MODULE_IPC "Enable the build of the IPC layer" ON)
246
246
+
option(XRT_MODULE_COMPOSITOR "Enable the compositor at all" ON)
247
247
+
option_with_deps(XRT_MODULE_COMPOSITOR_MAIN "Build main compositor host functionality" DEPENDS
248
248
+
XRT_MODULE_COMPOSITOR
249
249
+
XRT_HAVE_VULKAN
250
250
+
"XRT_HAVE_WAYLAND OR XRT_HAVE_XCB OR ANDROID OR WIN32"
251
251
+
)
252
252
+
option_with_deps(XRT_MODULE_COMPOSITOR_NULL "Build testing null compositor" DEPENDS XRT_MODULE_COMPOSITOR XRT_HAVE_VULKAN)
253
253
+
245
254
# Feature configuration (sorted)
246
255
option(XRT_FEATURE_COLOR_LOG "Enable logging in color on supported platforms" ON)
247
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
248
-
option_with_deps(XRT_FEATURE_COMPOSITOR_NULL "Build testing null compositor" DEPENDS XRT_HAVE_VULKAN)
249
249
-
option(XRT_FEATURE_IPC "Enable the build of the IPC layer" ON)
250
250
-
option_with_deps(XRT_FEATURE_OPENXR "Build OpenXR runtime target" DEPENDS "XRT_FEATURE_COMPOSITOR_MAIN OR XRT_FEATURE_COMPOSITOR_NULL")
256
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
252
-
option_with_deps(XRT_FEATURE_SERVICE "Enable separate service module for OpenXR runtime" DEPENDS XRT_FEATURE_IPC XRT_FEATURE_OPENXR)
258
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
321
-
mark_as_advanced(XRT_FEATURE_COMPOSITOR_MAIN XRT_FEATURE_COMPOSITOR_NULL XRT_FEATURE_OPENXR)
327
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
511
+
message(STATUS "# MODULE_IPC ${XRT_MODULE_IPC}")
512
512
+
message(STATUS "# MODULE_COMPOSITOR ${XRT_MODULE_COMPOSITOR}")
513
513
+
message(STATUS "# MODULE_COMPOSITOR_MAIN ${XRT_MODULE_COMPOSITOR_MAIN}")
514
514
+
message(STATUS "# MODULE_COMPOSITOR_NULL ${XRT_MODULE_COMPOSITOR_NULL}")
515
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
507
-
message(STATUS "# FEATURE_COMPOSITOR_MAIN: ${XRT_FEATURE_COMPOSITOR_MAIN}")
508
508
-
message(STATUS "# FEATURE_COMPOSITOR_NULL: ${XRT_FEATURE_COMPOSITOR_NULL}")
509
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
552
-
if(XRT_FEATURE_SERVICE AND NOT XRT_FEATURE_IPC)
553
553
-
message(FATAL_ERROR "XRT_FEATURE_SERVICE requires XRT_FEATURE_IPC to be enabled")
560
560
+
if(XRT_FEATURE_SERVICE AND NOT XRT_MODULE_IPC)
561
561
+
message(FATAL_ERROR "XRT_FEATURE_SERVICE requires XRT_MODULE_IPC to be enabled")
554
562
endif()
+6
-5
src/xrt/CMakeLists.txt
···
1
1
-
# Copyright 2019-2022, Collabora, Ltd.
1
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
9
-
add_subdirectory(compositor)
9
9
+
if(XRT_MODULE_COMPOSITOR)
10
10
+
add_subdirectory(compositor)
11
11
+
endif()
10
12
add_subdirectory(state_trackers)
11
11
-
add_subdirectory(targets)
12
12
-
13
13
-
if(XRT_FEATURE_IPC)
13
13
+
if(XRT_MODULE_IPC)
14
14
add_subdirectory(ipc)
15
15
endif()
16
16
+
add_subdirectory(targets)
+4
-4
src/xrt/compositor/CMakeLists.txt
···
1
1
-
# Copyright 2019-2022, Collabora, Ltd.
1
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
170
-
if(XRT_FEATURE_COMPOSITOR_MAIN)
170
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
298
-
if(XRT_FEATURE_COMPOSITOR_NULL)
298
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
317
-
if(XRT_FEATURE_COMPOSITOR_MAIN)
317
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
1
-
// Copyright 2020-2022, Collabora, Ltd.
1
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
12
+
13
13
+
/* keep sorted */
14
14
+
15
15
+
#cmakedefine XRT_MODULE_IPC
16
16
+
#cmakedefine XRT_MODULE_COMPOSITOR
17
17
+
#cmakedefine XRT_MODULE_COMPOSITOR_MAIN
18
18
+
#cmakedefine XRT_MODULE_COMPOSITOR_NULL
19
19
+
20
20
+
12
21
/* keep sorted */
13
22
14
23
#cmakedefine XRT_FEATURE_COLOR_LOG
15
15
-
#cmakedefine XRT_FEATURE_COMPOSITOR_MAIN
16
16
-
#cmakedefine XRT_FEATURE_COMPOSITOR_NULL
17
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
1
-
# Copyright 2019-2022, Collabora, Ltd.
1
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
168
-
if(XRT_FEATURE_COMPOSITOR_MAIN OR XRT_FEATURE_COMPOSITOR_NULL)
168
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
181
-
if(XRT_FEATURE_COMPOSITOR_MAIN)
181
181
+
if(XRT_MODULE_COMPOSITOR_MAIN)
182
182
target_link_libraries(target_instance PRIVATE comp_main)
183
183
endif()
184
184
185
185
-
if(XRT_FEATURE_COMPOSITOR_NULL)
185
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
18
-
#ifdef XRT_FEATURE_COMPOSITOR_MAIN
18
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
27
-
#ifdef XRT_FEATURE_COMPOSITOR_MAIN
27
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
76
-
#ifdef XRT_FEATURE_COMPOSITOR_NULL
76
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
87
-
#ifdef XRT_FEATURE_COMPOSITOR_MAIN
87
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
}