monado/src/xrt/auxiliary/util/CMakeLists.txt
Moshi Turner 7485afbeaa xrt: Refactor oxr_sdl2_hack to u_debug_gui
And OXR_DEBUG_GUI to XRT_DEBUG_GUI

Co-authored-by: Jakob Bornecrantz <jakob@collabora.com>
2023-03-06 16:39:52 -06:00

218 lines
4.3 KiB
CMake

# Copyright 2019-2022, Collabora, Ltd.
# SPDX-License-Identifier: BSL-1.0
####
# Main util library
#
# Avoid linking with libraries that brings in DSOs as this
# library is used everywhere. Including libraries loaded in
# by applications like the OpenXR runtime library.
#
configure_file(
"${CMAKE_CURRENT_SOURCE_DIR}/u_git_tag.c.in" "${CMAKE_CURRENT_BINARY_DIR}/u_git_tag.c"
@ONLY
)
add_library(
aux_util STATIC
u_autoexpgain.c
u_autoexpgain.h
u_bitwise.c
u_bitwise.h
u_builders.c
u_builders.h
u_debug.c
u_debug.h
u_deque.cpp
u_deque.h
u_device.c
u_device.h
u_distortion.c
u_distortion.h
u_distortion_mesh.c
u_distortion_mesh.h
u_documentation.h
u_file.c
u_file.cpp
u_file.h
u_format.c
u_format.h
u_frame.c
u_frame.h
u_generic_callbacks.hpp
u_git_tag.h
u_hand_tracking.c
u_hand_tracking.h
u_hand_simulation.c
u_hand_simulation.h
u_handles.c
u_handles.h
u_hashmap.cpp
u_hashmap.h
u_hashset.cpp
u_hashset.h
u_id_ringbuffer.cpp
u_id_ringbuffer.h
u_imu_sink_split.c
u_imu_sink_force_monotonic.c
u_json.c
u_json.h
u_json.hpp
u_logging.c
u_logging.h
u_metrics.c
u_metrics.h
u_misc.c
u_misc.h
u_pacing.h
u_pacing_app.c
u_pacing_compositor.c
u_pacing_compositor_fake.c
u_pretty_print.c
u_pretty_print.h
u_prober.c
u_prober.h
u_string_list.cpp
u_string_list.h
u_string_list.hpp
u_system_helpers.c
u_system_helpers.h
u_template_historybuf.hpp
u_time.cpp
u_time.h
u_trace_marker.c
u_trace_marker.h
u_tracked_imu_3dof.c
u_tracked_imu_3dof.h
u_var.cpp
u_var.h
u_vector.cpp
u_vector.h
u_config_json.c
u_config_json.h
u_verify.h
u_win32_com_guard.cpp
u_win32_com_guard.hpp
u_worker.c
u_worker.cpp
u_worker.h
u_worker.hpp
"${CMAKE_CURRENT_BINARY_DIR}/u_git_tag.c"
)
target_link_libraries(
aux_util
PUBLIC
xrt-external-nanopb
aux-includes
aux_generated_bindings
aux_os
aux_math
)
# Only uses normal Windows libraries, doesn't add anything extra.
if(WIN32)
target_sources(aux_util PRIVATE u_windows.c u_windows.h)
endif()
# Is basically used everywhere, unavoidable.
if(XRT_HAVE_SYSTEM_CJSON)
target_link_libraries(aux_util PUBLIC cJSON::cJSON)
target_compile_definitions(aux_util PRIVATE XRT_HAVE_SYSTEM_CJSON)
else()
target_link_libraries(aux_util PUBLIC xrt-external-cjson)
endif()
# Is basically used everywhere, only used in debugging.
if(XRT_FEATURE_TRACING AND XRT_HAVE_PERCETTO)
target_link_libraries(aux_util PUBLIC percetto::percetto)
endif()
# Is basically used everywhere, only used in debugging.
if(XRT_FEATURE_TRACING AND XRT_HAVE_TRACY)
target_link_libraries(aux_util PUBLIC xrt-external-tracy)
endif()
# Is basically used everywhere, so link with here.
if(ANDROID)
target_link_libraries(aux_util PUBLIC ${ANDROID_LOG_LIBRARY})
endif()
# Internal dependency and doesn't bring in any DSO.
target_include_directories(aux_util PRIVATE ${EIGEN3_INCLUDE_DIR})
####
# Debug UI library
#
add_library(aux_util_debug_gui STATIC u_debug_gui.c u_debug_gui.h) # Always built, for stubs.
target_link_libraries(
aux_util_debug_gui
INTERFACE xrt-interfaces
PRIVATE aux-includes
)
if(XRT_FEATURE_DEBUG_GUI)
target_link_libraries(aux_util_debug_gui PRIVATE aux_util)
if(XRT_HAVE_OPENGL)
target_link_libraries(aux_util_debug_gui PUBLIC aux_ogl)
endif()
if(XRT_HAVE_SDL2)
target_link_libraries(
aux_util_debug_gui PRIVATE st_gui xrt-external-imgui-sdl2 ${SDL2_LIBRARIES}
)
if(XRT_BUILD_DRIVER_QWERTY)
target_link_libraries(
aux_util_debug_gui PRIVATE drv_qwerty drv_qwerty_includes
)
endif()
endif()
endif()
####
# Sink library
#
add_library(
aux_util_sink STATIC
u_sink.h
u_sink_combiner.c
u_sink_force_genlock.c
u_sink_converter.c
u_sink_deinterleaver.c
u_sink_queue.c
u_sink_simple_queue.c
u_sink_quirk.c
u_sink_split.c
u_sink_stereo_sbs_to_slam_sbs.c
)
target_link_libraries(
aux_util_sink
PUBLIC
aux-includes
xrt-pthreads
aux_os
aux_math
aux_util
)
if(XRT_HAVE_JPEG)
target_link_libraries(aux_util_sink PRIVATE ${JPEG_LIBRARIES})
target_include_directories(aux_util_sink PRIVATE ${JPEG_INCLUDE_DIRS})
endif()
####
# Process library
#
add_library(aux_util_process STATIC u_process.c u_process.h)
target_link_libraries(aux_util_process PUBLIC aux-includes aux_util)
if(XRT_HAVE_LIBBSD)
target_include_directories(aux_util_process SYSTEM PRIVATE ${LIBBSD_INCLUDE_DIRS})
target_link_libraries(aux_util_process PUBLIC ${LIBBSD_LIBRARIES})
endif()