···11+# Copyright 2019-2025, Collabora, Ltd.
22+# SPDX-License-Identifier: BSL-1.0
33+44+# Binding generation: pass filename to generate
55+# Need to use ${CMAKE_COMMAND} to be able to set environment with -e
66+# Need to use $<TARGET_FILE:${PYTHON_EXECUTABLE}> to unwrap the cmake target to be able to run with ${CMAKE_COMMAND}
77+function(oxr_bindings_gen output)
88+ add_custom_command(
99+ OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/${output}"
1010+ COMMAND
1111+ ${CMAKE_COMMAND} -E env PYTHONPATH=${AUX_BINDINGS_DIR};$ENV{PYTHONPATH}
1212+ $<TARGET_FILE:${PYTHON_EXECUTABLE}>
1313+ ${CMAKE_CURRENT_SOURCE_DIR}/oxr_bindings.py
1414+ ${AUX_BINDINGS_DIR}/bindings.json "${CMAKE_CURRENT_BINARY_DIR}/${output}"
1515+ VERBATIM
1616+ DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/oxr_bindings.py
1717+ ${AUX_BINDINGS_DIR}/bindings.json
1818+ COMMENT "Generating ${output}"
1919+ )
2020+endfunction()
2121+2222+oxr_bindings_gen(b_oxr_generated_bindings.h)
2323+oxr_bindings_gen(b_oxr_generated_bindings.c)
2424+2525+add_custom_target(
2626+ generate_oxr_bindings DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/b_oxr_generated_bindings.h"
2727+ "${CMAKE_CURRENT_BINARY_DIR}/b_oxr_generated_bindings.c"
2828+ )
···11+# Copyright 2019-2025, Collabora, Ltd.
22+# SPDX-License-Identifier: BSL-1.0
33+44+# Binding generation: pass filename to generate
55+# Need to use ${CMAKE_COMMAND} to be able to set environment with -e
66+# Need to use $<TARGET_FILE:${PYTHON_EXECUTABLE}> to unwrap the cmake target to be able to run with ${CMAKE_COMMAND}
77+function(ovrd_bindings_gen output)
88+ add_custom_command(
99+ OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/${output}"
1010+ COMMAND
1111+ ${CMAKE_COMMAND} -E env PYTHONPATH=${AUX_BINDINGS_DIR};$ENV{PYTHONPATH}
1212+ $<TARGET_FILE:${PYTHON_EXECUTABLE}>
1313+ ${CMAKE_CURRENT_SOURCE_DIR}/ovrd_bindings.py
1414+ ${AUX_BINDINGS_DIR}/bindings.json "${CMAKE_CURRENT_BINARY_DIR}/${output}"
1515+ VERBATIM
1616+ DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/ovrd_bindings.py
1717+ ${AUX_BINDINGS_DIR}/bindings.json
1818+ COMMENT "Generating ${output}"
1919+ )
2020+endfunction()
2121+2222+ovrd_bindings_gen(b_ovrd_generated_bindings.h)
2323+ovrd_bindings_gen(b_ovrd_generated_bindings.c)
2424+2525+# Bindings library.
2626+add_library(
2727+ ovrd_generated_bindings STATIC ${CMAKE_CURRENT_BINARY_DIR}/b_ovrd_generated_bindings.c
2828+ ${CMAKE_CURRENT_BINARY_DIR}/b_ovrd_generated_bindings.h
2929+ )
3030+3131+target_link_libraries(ovrd_generated_bindings PRIVATE xrt-interfaces)
3232+3333+# So that linking ovrd_generated_bindings makes it possible to include the generated header
3434+target_include_directories(ovrd_generated_bindings PUBLIC ${CMAKE_CURRENT_BINARY_DIR})