# Copyright (c) 2021 Intel Corporation
# Copyright 2022 Arm Limited and/or its affiliates <open-source-office@arm.com>
# SPDX-License-Identifier: Apache-2.0

config ZEPHYR_TFLITE-MICRO_MODULE
	bool

config TENSORFLOW_LITE_MICRO
	bool "TensorFlow Lite Micro Support"
	select REQUIRES_FULL_LIBCPP
	help
	  This option enables the TensorFlow Lite Micro library.

if CPU_CORTEX_M

config TENSORFLOW_LITE_MICRO_CMSIS_NN_KERNELS
	bool "TensorFlow Lite Micro with optimized CMSIS-NN kernels"
	depends on TENSORFLOW_LITE_MICRO
	select CMSIS_NN
	select CMSIS_NN_ACTIVATION
	select CMSIS_NN_BASICMATH
	select CMSIS_NN_CONCATENATION
	select CMSIS_NN_CONVOLUTION
	select CMSIS_NN_FULLYCONNECTED
	select CMSIS_NN_NNSUPPORT
	select CMSIS_NN_POOLING
	select CMSIS_NN_RESHAPE
	select CMSIS_NN_SOFTMAX
	select CMSIS_NN_SVD
	help
	  This option adds support for CMSIS-NN optimized kernels when using TensorFlow Lite Micro.

endif # CPU_CORTEX_M
