#-------------------------------------------------------------------------------
# Build the mlir bytecode modules with iree-compile. Note the last two flags
# are for RVV support.
#-------------------------------------------------------------------------------

springbok_modules(
  NAME
    mobilenet_v1
  SRC
    "$ENV{ROOTDIR}/ml/ml-models-public/quant_models/mobilenet_v1_0.25_224_quant.tflite"
  C_IDENTIFIER
    "samples_quant_model_mobilenet_v1"
  FLAGS
    "-iree-input-type=tosa"
    "-riscv-v-vector-bits-min=512"
    "-riscv-v-fixed-length-vector-lmul-max=8"
  PUBLIC
)

springbok_modules(
  NAME
    mobilenet_v2
  SRC
    "$ENV{ROOTDIR}/ml/ml-models-public/quant_models/mobilenet_v2_1.0_224_quant.tflite"
  C_IDENTIFIER
    "samples_quant_model_mobilenet_v2"
  FLAGS
    "-iree-input-type=tosa"
    "-riscv-v-vector-bits-min=512"
    "-riscv-v-fixed-length-vector-lmul-max=8"
  PUBLIC
)

springbok_modules(
  NAME
    person_detection
  SRC
    "$ENV{ROOTDIR}/ml/ml-models-public/quant_models/person_detection.tflite"
  C_IDENTIFIER
    "samples_quant_model_person_detection"
  FLAGS
    "-iree-input-type=tosa"
    "-riscv-v-vector-bits-min=512"
    "-riscv-v-fixed-length-vector-lmul-max=8"
  PUBLIC
)

if(${BUILD_INTERNAL_MODELS})

springbok_modules(
  NAME
    barcode
  SRC
    "$ENV{ROOTDIR}/ml/ml-models/quant_models/barcode_quant.tflite"
  C_IDENTIFIER
    "samples_quant_model_barcode"
  FLAGS
    "-iree-input-type=tosa"
    "-riscv-v-vector-bits-min=512"
    "-riscv-v-fixed-length-vector-lmul-max=8"
  PUBLIC
)

springbok_modules(
  NAME
    daredevil
  SRC
    "$ENV{ROOTDIR}/ml/ml-models/quant_models/daredevil_quant.tflite"
  C_IDENTIFIER
    "samples_quant_model_daredevil"
  FLAGS
    "-iree-input-type=tosa"
    "-riscv-v-vector-bits-min=512"
    "-riscv-v-fixed-length-vector-lmul-max=8"
  PUBLIC
)

springbok_modules(
  NAME
    fssd_25_8bit_v2
  SRC
    "$ENV{ROOTDIR}/ml/ml-models/quant_models/fssd_25_8bit_v2_quant.tflite"
  C_IDENTIFIER
    "samples_quant_model_fssd_25_8bit_v2"
  FLAGS
    "-iree-input-type=tosa"
    "-riscv-v-vector-bits-min=512"
    "-riscv-v-fixed-length-vector-lmul-max=8"
  PUBLIC
)

springbok_modules(
  NAME
    scenenet_v2
  SRC
    "$ENV{ROOTDIR}/ml/ml-models/quant_models/scenenet_v2_quant.tflite"
  C_IDENTIFIER
    "samples_quant_model_scenenet_v2"
  FLAGS
    "-iree-input-type=tosa"
    "-riscv-v-vector-bits-min=512"
    "-riscv-v-fixed-length-vector-lmul-max=8"
  PUBLIC
)

springbok_modules(
  NAME
    semantic_lift
  SRC
    "$ENV{ROOTDIR}/ml/ml-models/quant_models/semantic_lift_quant.tflite"
  C_IDENTIFIER
    "samples_quant_model_semantic_lift"
  FLAGS
    "-iree-input-type=tosa"
    "-riscv-v-vector-bits-min=512"
    "-riscv-v-fixed-length-vector-lmul-max=8"
  PUBLIC
)

springbok_modules(
  NAME
    voice_commands
  SRC
    "$ENV{ROOTDIR}/ml/ml-models/quant_models/voice_commands_quant.tflite"
  C_IDENTIFIER
    "samples_quant_model_voice_commands"
  FLAGS
    "-iree-input-type=tosa"
    "-riscv-v-vector-bits-min=512"
    "-riscv-v-fixed-length-vector-lmul-max=8"
  PUBLIC
)

endif(${BUILD_INTERNAL_MODELS})

#-------------------------------------------------------------------------------
# Binaries to execute the IREE model input
#-------------------------------------------------------------------------------

iree_model_input(
  NAME
    mobilenet_quant_input
  SHAPE
    "1, 224, 224, 3"
  SRC
    "https://storage.googleapis.com/download.tensorflow.org/ \
    example_images/YellowLabradorLooking_new.jpg"
  QUANT
)

iree_model_input(
  NAME
    person_detection_quant_input
  SHAPE
    "1, 96, 96, 1"
  SRC
    "https://github.com/tensorflow/tflite-micro/raw/aeac6f39e5c7475cea20c54e86d41e3a38312546/ \
    tensorflow/lite/micro/examples/person_detection/testdata/person.bmp"
  QUANT
)

if(${BUILD_INTERNAL_MODELS})

iree_model_input(
  NAME
    daredevil_quant_input
  SHAPE
    "1, 15360, 1"
  SRC
    "$ENV{ROOTDIR}/ml/ml-models/test_data/golden_whistle.wav"
  QUANT
)

iree_model_input(
  NAME
    fssd_quant_input
  SHAPE
    "1, 480, 640, 1"
  SRC
    "$ENV{ROOTDIR}/sw/vec_iree/samples/risp4ml/test_data/faces_480x640_uint8_numpy_bayer.bin"
  QUANT
)

endif(${BUILD_INTERNAL_MODELS})

#-------------------------------------------------------------------------------
# Binaries to execute the MLIR bytecode modules
#-------------------------------------------------------------------------------


# If the program requires a larger stack size, add
#
#   LINKOPTS
#     "LINKER:--defsym=__stack_size__=<new stack size>"
#
# to increase it.

iree_cc_binary(
  NAME
    mobilenet_v1_bytecode_static
  SRCS
    "mobilenet_v1.c"
  DEPS
    ::mobilenet_quant_input_c
    ::mobilenet_v1_bytecode_module_static
    ::mobilenet_v1_bytecode_module_static_c
    iree::vm::bytecode_module
    samples::util::util
  LINKOPTS
    "LINKER:--defsym=__itcm_length__=1M"
    "LINKER:--defsym=__stack_size__=300k"
)

iree_cc_binary(
  NAME
    mobilenet_v1_emitc_static
  SRCS
    "mobilenet_v1.c"
  DEPS
    ::mobilenet_quant_input_c
    ::mobilenet_v1_c_module_static_c
    ::mobilenet_v1_c_module_static_emitc
    samples::util::util
  LINKOPTS
    "LINKER:--defsym=__itcm_length__=1M"
    "LINKER:--defsym=__stack_size__=300k"
  COPTS
    "-DBUILD_EMITC"
)

# TODO(lundong): Temporarily disable some models due to ITCM overflow
#iree_cc_binary(
#  NAME
#    mobilenet_v2_bytecode_static
#  SRCS
#    "mobilenet_v2.c"
#  DEPS
#    ::mobilenet_quant_input_c
#    ::mobilenet_v2_bytecode_module_static
#    ::mobilenet_v2_bytecode_module_static_c
#    iree::vm::bytecode_module
#    samples::util::util
#  LINKOPTS
#    "LINKER:--defsym=__itcm_length__=1500K"
#    "LINKER:--defsym=__stack_size__=150k"
#)

#iree_cc_binary(
#  NAME
#    mobilenet_v2_emitc_static
#  SRCS
#    "mobilenet_v2.c"
#  DEPS
#    ::mobilenet_quant_input_c
#    ::mobilenet_v2_c_module_static_c
#    ::mobilenet_v2_c_module_static_emitc
#    samples::util::util
#  LINKOPTS
#    "LINKER:--defsym=__itcm_length__=1500K"
#    "LINKER:--defsym=__stack_size__=150k"
#  COPTS
#    "-DBUILD_EMITC"
#)

iree_cc_binary(
  NAME
    person_detection_bytecode_static
  SRCS
    "person_detection.c"
  DEPS
    ::person_detection_bytecode_module_static
    ::person_detection_bytecode_module_static_c
    ::person_detection_quant_input_c
    iree::vm::bytecode_module
    samples::util::util
  LINKOPTS
    "LINKER:--defsym=__itcm_length__=1M"
    "LINKER:--defsym=__stack_size__=128k"
)

iree_cc_binary(
  NAME
    person_detection_emitc_static
  SRCS
    "person_detection.c"
  DEPS
    ::person_detection_c_module_static_c
    ::person_detection_c_module_static_emitc
    ::person_detection_quant_input_c
    samples::util::util
  LINKOPTS
    "LINKER:--defsym=__itcm_length__=1M"
    "LINKER:--defsym=__stack_size__=128k"
  COPTS
    "-DBUILD_EMITC"
)

if(NOT ${BUILD_INTERNAL_MODELS})
  return()
endif()

iree_cc_binary(
  NAME
    barcode_bytecode_static
  SRCS
    "barcode.c"
  DEPS
    ::barcode_bytecode_module_static
    ::barcode_bytecode_module_static_c
    iree::vm::bytecode_module
    samples::util::util
  LINKOPTS
    "LINKER:--defsym=__itcm_length__=1M"
    "LINKER:--defsym=__stack_size__=150k"
)

#iree_cc_binary(
#  NAME
#    barcode_emitc_static
#  SRCS
#    "barcode.c"
#  DEPS
#    ::barcode_c_module_static_c
#    ::barcode_c_module_static_emitc
#    iree::samples::util::util
#  LINKOPTS
#    "LINKER:--defsym=__itcm_length__=1100K"
#    "LINKER:--defsym=__stack_size__=100k"
#  COPTS
#    "-DBUILD_EMITC"
#)

iree_cc_binary(
  NAME
    daredevil_bytecode_static
  SRCS
    "daredevil.c"
  DEPS
    ::daredevil_bytecode_module_static
    ::daredevil_bytecode_module_static_c
    ::daredevil_quant_input_c
    iree::vm::bytecode_module
    samples::audio_prep::mfcc
    samples::util::util
  LINKOPTS
    "LINKER:--defsym=__itcm_length__=1M"
    "LINKER:--defsym=__stack_size__=300k"
)

iree_cc_binary(
  NAME
    daredevil_emitc_static
  SRCS
    "daredevil.c"
  DEPS
    ::daredevil_c_module_static_c
    ::daredevil_c_module_static_emitc
    ::daredevil_quant_input_c
    samples::audio_prep::mfcc
    samples::util::util
  LINKOPTS
    "LINKER:--defsym=__itcm_length__=1M"
    "LINKER:--defsym=__stack_size__=300k"
  COPTS
    "-DBUILD_EMITC"
)

iree_cc_binary(
  NAME
    fssd_25_8bit_v2_bytecode_static
  SRCS
    "fssd_25_8bit_v2.c"
  DEPS
    ::fssd_quant_input_c
    ::fssd_25_8bit_v2_bytecode_module_static
    ::fssd_25_8bit_v2_bytecode_module_static_c
    iree::vm::bytecode_module
    samples::risp4ml::pipeline::pipeline
    samples::util::util
  LINKOPTS
    "LINKER:--defsym=__itcm_length__=1M"
    "LINKER:--defsym=__stack_size__=300k"
)

iree_cc_binary(
  NAME
    fssd_25_8bit_v2_emitc_static
  SRCS
    "fssd_25_8bit_v2.c"
  DEPS
    ::fssd_quant_input_c
    ::fssd_25_8bit_v2_c_module_static_c
    ::fssd_25_8bit_v2_c_module_static_emitc
    samples::risp4ml::pipeline::pipeline
    samples::util::util
  LINKOPTS
    "LINKER:--defsym=__itcm_length__=1M"
    "LINKER:--defsym=__stack_size__=300k"
  COPTS
    "-DBUILD_EMITC"
)

#iree_cc_binary(
#  NAME
#    scenenet_v2_bytecode_static
#  SRCS
#    "scenenet_v2.c"
#  DEPS
#    ::scenenet_v2_bytecode_module_static
#    ::scenenet_v2_bytecode_module_static_c
#    iree::vm::bytecode_module
#    samples::util::util
#  LINKOPTS
#    "LINKER:--defsym=__itcm_length__=1500K"
#    "LINKER:--defsym=__stack_size__=150k"
#)

#iree_cc_binary(
#  NAME
#    scenenet_v2_emitc_static
#  SRCS
#    "scenenet_v2.c"
#  DEPS
#    ::scenenet_v2_c_module_static_c
#    ::scenenet_v2_c_module_static_emitc
#    samples::util::util
#  LINKOPTS
#    "LINKER:--defsym=__itcm_length__=1500K"
#    "LINKER:--defsym=__stack_size__=150k"
#  COPTS
#    "-DBUILD_EMITC"
#)

iree_cc_binary(
  NAME
    semantic_lift_bytecode_static
  SRCS
    "semantic_lift.c"
  DEPS
    ::semantic_lift_bytecode_module_static
    ::semantic_lift_bytecode_module_static_c
    iree::vm::bytecode_module
    samples::util::util
  LINKOPTS
    "LINKER:--defsym=__itcm_length__=1M"
    "LINKER:--defsym=__stack_size__=300k"
)

iree_cc_binary(
  NAME
    semantic_lift_emitc_static
  SRCS
    "semantic_lift.c"
  DEPS
    ::semantic_lift_c_module_static_c
    ::semantic_lift_c_module_static_emitc
    samples::util::util
  LINKOPTS
    "LINKER:--defsym=__itcm_length__=1M"
    "LINKER:--defsym=__stack_size__=300k"
  COPTS
    "-DBUILD_EMITC"
)

iree_cc_binary(
  NAME
    voice_commands_bytecode_static
  SRCS
    "voice_commands.c"
  DEPS
    ::voice_commands_bytecode_module_static
    ::voice_commands_bytecode_module_static_c
    iree::vm::bytecode_module
    samples::util::util
  LINKOPTS
    "LINKER:--defsym=__stack_size__=250k"
)

iree_cc_binary(
  NAME
    voice_commands_emitc_static
  SRCS
    "voice_commands.c"
  DEPS
    ::voice_commands_c_module_static_c
    ::voice_commands_c_module_static_emitc
    samples::util::util
  LINKOPTS
    "LINKER:--defsym=__stack_size__=250k"
  COPTS
    "-DBUILD_EMITC"
)
