monado/src/xrt/state_trackers/oxr/CMakeLists.txt

122 lines
2.4 KiB
CMake

# Copyright 2019-2020, Collabora, Ltd.
# SPDX-License-Identifier: BSL-1.0
###
# Binding generation
#
function(bindings_gen output)
add_custom_command(OUTPUT ${output}
COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/bindings.py
${CMAKE_CURRENT_SOURCE_DIR}/bindings.json
${output}
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/bindings.py
${CMAKE_CURRENT_SOURCE_DIR}/bindings.json
)
endfunction(bindings_gen)
bindings_gen(${CMAKE_CURRENT_BINARY_DIR}/oxr_generated_bindings.h)
bindings_gen(${CMAKE_CURRENT_BINARY_DIR}/oxr_generated_bindings.c)
###
# Main code
#
set(OXR_SOURCE_FILES
${CMAKE_CURRENT_BINARY_DIR}/oxr_generated_bindings.h
${CMAKE_CURRENT_BINARY_DIR}/oxr_generated_bindings.c
oxr_api_action.c
oxr_api_funcs.h
oxr_api_instance.c
oxr_api_negotiate.c
oxr_api_session.c
oxr_api_space.c
oxr_api_swapchain.c
oxr_api_system.c
oxr_api_verify.h
oxr_binding.c
oxr_chain.h
oxr_event.c
oxr_extension_support.h
oxr_handle_base.c
oxr_input.c
oxr_input_transform.c
oxr_input_transform.h
oxr_instance.c
oxr_logger.c
oxr_logger.h
oxr_objects.h
oxr_path.c
oxr_session.c
oxr_space.c
oxr_swapchain.c
oxr_system.c
oxr_two_call.h
oxr_verify.c
oxr_xdev.c
)
if(XRT_HAVE_VULKAN)
list(APPEND OXR_SOURCE_FILES
oxr_session_vk.c
oxr_swapchain_vk.c
oxr_vulkan.c
)
endif()
if(XRT_HAVE_OPENGL)
add_definitions(-DXR_USE_GRAPHICS_API_OPENGL)
endif()
if(XRT_HAVE_OPENGLES)
add_definitions(-DXR_USE_GRAPHICS_API_OPENGL_ES)
endif()
if(XRT_HAVE_OPENGL OR XRT_HAVE_OPENGLES)
list(APPEND OXR_SOURCE_FILES
oxr_session_gl.c
oxr_swapchain_gl.c
)
endif()
if(XRT_HAVE_XLIB)
add_definitions(-DXR_USE_PLATFORM_XLIB)
endif()
if(XRT_HAVE_EGL)
add_definitions(-DXR_USE_PLATFORM_EGL)
list(APPEND OXR_SOURCE_FILES oxr_session_egl.c)
endif()
if(ANDROID)
add_definitions(-DXR_USE_PLATFORM_ANDROID)
list(APPEND OXR_SOURCE_FILES
oxr_session_gles_android.c
)
endif()
add_library(st_oxr STATIC ${OXR_SOURCE_FILES})
target_link_libraries(st_oxr PRIVATE
xrt-interfaces
xrt-external-openxr
aux_util
aux_math
comp_client
)
if(XRT_HAVE_VULKAN)
target_link_libraries(st_oxr PRIVATE Vulkan::Vulkan)
endif()
if(XRT_HAVE_OPENGL OR XRT_HAVE_OPENGLES)
target_link_libraries(st_oxr PRIVATE aux_ogl)
endif()
if(ANDROID)
target_link_libraries(st_oxr PRIVATE aux_android)
endif()
target_include_directories(st_oxr
PRIVATE
${CMAKE_CURRENT_BINARY_DIR}
INTERFACE
${CMAKE_CURRENT_SOURCE_DIR}/..)