#
# Copyright (c) 2020-2023 INRIA
#

if(cppadcg_FOUND
   AND BUILD_WITH_CODEGEN_SUPPORT
   AND BUILD_WITH_URDF_SUPPORT)
  function(ADD_PINOCCHIO_CPP_CODEGEN_EXAMPLE EXAMPLE)
    add_pinocchio_cpp_example(
      ${EXAMPLE}
      CPPADCG
      PARSERS)
    target_link_libraries(${PROJECT_NAME}-example-cpp-${EXAMPLE} PUBLIC ${CMAKE_DL_LIBS})
    target_compile_definitions(${PROJECT_NAME}-example-cpp-${EXAMPLE}
                               PUBLIC PINOCCHIO_CXX_COMPILER=\"${CMAKE_CXX_COMPILER}\")
  endfunction()

  if(NOT BUILD_STANDALONE_PYTHON_INTERFACE)
    add_pinocchio_cpp_codegen_example(codegen-crba)
    add_pinocchio_cpp_codegen_example(codegen-rnea)
  endif()

  if(BUILD_PYTHON_INTERFACE)
    set(${PROJECT_NAME}_CODEGEN_PYTHON_EXAMPLES codegen-rnea)

    foreach(EXAMPLE ${${PROJECT_NAME}_CODEGEN_PYTHON_EXAMPLES})
      set(EXAMPLE_NAME "${PROJECT_NAME}-example-py-${EXAMPLE}")
      add_python_unit_test(${EXAMPLE_NAME} "examples/codegen/${EXAMPLE}.py" "bindings/python")
      add_windows_dll_path_to_test(${EXAMPLE_NAME})
    endforeach()
  endif()

endif()
