if(NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${QOCO_ALGEBRA_BACKEND})
  message(FATAL_ERROR "Algebra target directory does not exist:" ${QOCO_ALGEBRA_BACKEND})
endif()

set_property(GLOBAL APPEND PROPERTY QOCO_INCLUDE ${CMAKE_CURRENT_SOURCE_DIR}/${QOCO_ALGEBRA_BACKEND})
set_property(GLOBAL APPEND PROPERTY QOCO_INCLUDE ${CMAKE_CURRENT_SOURCE_DIR})

# Set backend define
if(${QOCO_ALGEBRA_BACKEND} STREQUAL "cuda")
  add_compile_definitions(QOCO_ALGEBRA_BACKEND_CUDA)
else()
  add_compile_definitions(QOCO_ALGEBRA_BACKEND_BUILTIN)
endif()

add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/${QOCO_ALGEBRA_BACKEND})
