set(SDK_AUTO_HEADERS
	voltu/types/channel.hpp
	voltu/types/frame.hpp
	voltu/types/image.hpp
	voltu/types/intrinsics.hpp
	voltu/observer.hpp
	voltu/feed.hpp
	voltu/initialise.hpp
	voltu/room.hpp
	voltu/source.hpp
	voltu/system.hpp
)

add_custom_command(
	OUTPUT automatic_bindings.cpp
	COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/gen.py
			automatic_bindings.cpp
			${CMAKE_CURRENT_SOURCE_DIR}/../include
			${SDK_AUTO_HEADERS}

	DEPENDS voltu_sdk gen.py
)

pybind11_add_module(voltu_sdk_py MODULE
	automatic_bindings.cpp
	module.cpp
)

target_include_directories(voltu_sdk_py PUBLIC include)
target_include_directories(voltu_sdk_py PRIVATE .)

target_link_libraries(voltu_sdk_py PUBLIC voltu_sdk)
set_target_properties(voltu_sdk_py PROPERTIES OUTPUT_NAME voltu)