mirror of
https://gitlab.freedesktop.org/monado/monado.git
synced 2025-01-11 09:25:26 +00:00
125 lines
2.4 KiB
CMake
125 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
|
|
PUBLIC
|
|
aux_os
|
|
Vulkan::Vulkan
|
|
)
|
|
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}/..)
|