#
# Copyright (c) 2025 INRIA
#

function(ADD_PINOCCHIO_CPP_CASADI_EXAMPLE EXAMPLE)
    add_pinocchio_cpp_example(${EXAMPLE} CASADI)
endfunction()

if(BUILD_WITH_CASADI_SUPPORT)
    if(NOT BUILD_STANDALONE_PYTHON_INTERFACE)
        add_pinocchio_cpp_casadi_example(casadi-aba)
        add_pinocchio_cpp_casadi_example(casadi-crba)
        add_pinocchio_cpp_casadi_example(casadi-rnea)
    endif()

    if(BUILD_PYTHON_INTERFACE)
        set(${PROJECT_NAME}_CASADI_PYTHON_EXAMPLES quadrotor-ocp)
        if(BUILD_WITH_COLLISION_SUPPORT)
            list(APPEND ${PROJECT_NAME}_CASADI_PYTHON_EXAMPLES cartpole)
        endif()

        foreach(EXAMPLE ${${PROJECT_NAME}_CASADI_PYTHON_EXAMPLES})
            set(EXAMPLE_NAME "${PROJECT_NAME}-example-py-casadi-${EXAMPLE}")
            add_python_unit_test(${EXAMPLE_NAME} "examples/casadi/${EXAMPLE}.py" "bindings/python")
            get_test_property(${EXAMPLE_NAME} ENVIRONMENT _ENVIRONMENT)
            set_tests_properties(
                "${EXAMPLE_NAME}"
                PROPERTIES
                    ENVIRONMENT
                        "${_ENVIRONMENT};EXAMPLE_ROBOT_DATA_MODEL_DIR=${EXAMPLE_ROBOT_DATA_MODEL_DIR}"
            )
            add_windows_dll_path_to_test(${EXAMPLE_NAME})
        endforeach()
    endif()
endif()
