PROJECT(ml_interface)

INCLUDE(extras)

INCLUDE(frameworks/${CONFIG_MLONMCU_FRAMEWORK}_mlif)

IF(CONFIG_MODEL_DIR)
    GET_FILENAME_COMPONENT(MODEL_SUPPORT_DIR ${CONFIG_MODEL_DIR}/support REALPATH)
    GET_FILENAME_COMPONENT(MODEL_NAME ${CONFIG_MODEL_DIR} NAME)
ENDIF()

IF(MODEL_SUPPORT_DIR AND EXISTS ${MODEL_SUPPORT_DIR})
    ADD_SUBDIRECTORY(${MODEL_SUPPORT_DIR} model_support_bin_${MODEL_NAME})
ELSE()
    ADD_SUBDIRECTORY(default_model_support)
ENDIF()

IF(NOT CONFIG_DATA_SRC)
    SET(CONFIG_DATA_SRC "default_data.c")
ENDIF()

ADD_LIBRARY(${PROJECT_NAME}_base STATIC ${CONFIG_DATA_SRC})
TARGET_LINK_LIBRARIES(${PROJECT_NAME}_base PUBLIC support ${EXTRA_LIBS})
TARGET_INCLUDE_DIRECTORIES(${PROJECT_NAME}_base PUBLIC . ${EXTRA_INC})

ADD_LIBRARY(${PROJECT_NAME} STATIC ml_interface.c ${EXTRA_SRC})
TARGET_LINK_LIBRARIES(${PROJECT_NAME} PUBLIC ${PROJECT_NAME}_base model_support)
TARGET_LINK_LIBRARIES(${PROJECT_NAME} PUBLIC ${PROJECT_NAME}_base model_support zephyr)
IF(CONFIG_NUM_RUNS)
    TARGET_COMPILE_DEFINITIONS(${PROJECT_NAME} PUBLIC NUM_RUNS=${CONFIG_NUM_RUNS})
ENDIF()
