# Copyright (c) 2021 Project CHIP Authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
import("//args.gni")
import("//build_overrides/bouffalolab_iot_sdk.gni")
import("//build_overrides/chip.gni")
import("//build_overrides/mbedtls.gni")
import("//build_overrides/openthread.gni")
import("${chip_root}/src/lib/lib.gni")

declare_args() {
  bl_iot_sdk_root = "${chip_root}/third_party/bouffalolab/repo"

  enable_cdc_module = false
}

assert(bl_iot_sdk_root != "", "bl_iot_sdk_root must be specified")

# Defines an Bouffa Lab IOT SDK build target.
#
# Parameters:
#   bl_iot_sdk_root - The location of Bouffalo Lab IOT SDK.
#   sources - The sources files to build.
template("bl_iot_sdk") {
  sdk_target_name = target_name

  if (defined(invoker.enable_zigbee)) {
    enable_zigbee = invoker.enable_zigbee
  }

  if (defined(invoker.enable_cdc_module)) {
    enable_cdc_module = invoker.enable_cdc_module
  }

  config("${sdk_target_name}_config") {
    defines = [
      "__FILENAME__=strrchr(__FILE__,'/')?strrchr(__FILE__,'/')+1:__FILE__",
      "ARCH_RISCV",
      "BL702=BL702",
      "BFLB_USE_ROM_DRIVER=1",
      "BFLB_USE_HAL_DRIVER=1",
    ]

    include_dirs = []
    if (defined(invoker.include_dirs)) {
      include_dirs += invoker.include_dirs
    }

    if (defined(invoker.defines)) {
      defines += invoker.defines
    }

    cflags_c = [
      "-include",
      rebase_path("${invoker.freertos_config}", root_build_dir),
    ]
    cflags_cc = [
      "-include",
      rebase_path("${invoker.freertos_config}", root_build_dir),
    ]
  }

  config("${sdk_target_name}_config_soc") {
    include_dirs =
        [ "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702_rf/include" ]
  }

  source_set("${sdk_target_name}_soc") {
    defines = [ "CFG_CPP_ENABLE" ]

    sources = [
      "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702/evb/src/boot/gcc/start.S",
      "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702/evb/src/debug.c",
      "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702/evb/src/strntoumax.c",
      "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702/evb/src/vprint.c",
    ]

    libs = [ "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702_rf/lib/libbl702_rf.a" ]

    cflags_c = [ "-Wno-format-truncation" ]

    configs += [
      ":${sdk_target_name}_config",
      ":${sdk_target_name}_config_freertos",
    ]
  }

  config("${sdk_target_name}_config_BSP_Driver") {
    include_dirs = [
      "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702_std/BSP_Driver/std_drv/inc",
      "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702_std/BSP_Driver/regs",
      "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702_std/BSP_Driver/startup",
      "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702_std/BSP_Driver/risc-v/Core/Include",
      "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702_std/MCU_Common/soft_crc",
      "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702_std/MCU_Common/misc",
      "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702_std/BSP_Common/platform/",
    ]

    defines = [ "bl706_iot" ]
  }

  source_set("${sdk_target_name}_BSP_Driver") {
    sources = [
      "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702_std/BSP_Driver/std_drv/src/bl702_acomp.c",
      "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702_std/BSP_Driver/std_drv/src/bl702_adc.c",
      "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702_std/BSP_Driver/std_drv/src/bl702_aon.c",
      "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702_std/BSP_Driver/std_drv/src/bl702_cam.c",
      "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702_std/BSP_Driver/std_drv/src/bl702_clock.c",
      "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702_std/BSP_Driver/std_drv/src/bl702_common.c",
      "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702_std/BSP_Driver/std_drv/src/bl702_dac.c",
      "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702_std/BSP_Driver/std_drv/src/bl702_dma.c",
      "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702_std/BSP_Driver/std_drv/src/bl702_ef_ctrl.c",
      "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702_std/BSP_Driver/std_drv/src/bl702_emac.c",
      "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702_std/BSP_Driver/std_drv/src/bl702_glb.c",
      "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702_std/BSP_Driver/std_drv/src/bl702_hbn.c",
      "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702_std/BSP_Driver/std_drv/src/bl702_i2c.c",
      "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702_std/BSP_Driver/std_drv/src/bl702_i2c_gpio_sim.c",
      "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702_std/BSP_Driver/std_drv/src/bl702_i2s.c",
      "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702_std/BSP_Driver/std_drv/src/bl702_ir.c",
      "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702_std/BSP_Driver/std_drv/src/bl702_kys.c",
      "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702_std/BSP_Driver/std_drv/src/bl702_l1c.c",
      "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702_std/BSP_Driver/std_drv/src/bl702_mjpeg.c",
      "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702_std/BSP_Driver/std_drv/src/bl702_pds.c",
      "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702_std/BSP_Driver/std_drv/src/bl702_psram.c",
      "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702_std/BSP_Driver/std_drv/src/bl702_pwm.c",
      "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702_std/BSP_Driver/std_drv/src/bl702_qdec.c",
      "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702_std/BSP_Driver/std_drv/src/bl702_romapi.c",
      "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702_std/BSP_Driver/std_drv/src/bl702_sec_dbg.c",
      "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702_std/BSP_Driver/std_drv/src/bl702_sec_eng.c",
      "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702_std/BSP_Driver/std_drv/src/bl702_sf_cfg.c",
      "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702_std/BSP_Driver/std_drv/src/bl702_sf_cfg_ext.c",
      "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702_std/BSP_Driver/std_drv/src/bl702_sf_ctrl.c",
      "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702_std/BSP_Driver/std_drv/src/bl702_sflash.c",
      "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702_std/BSP_Driver/std_drv/src/bl702_sflash_ext.c",
      "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702_std/BSP_Driver/std_drv/src/bl702_spi.c",
      "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702_std/BSP_Driver/std_drv/src/bl702_timer.c",
      "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702_std/BSP_Driver/std_drv/src/bl702_uart.c",
      "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702_std/BSP_Driver/std_drv/src/bl702_usb.c",
      "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702_std/BSP_Driver/std_drv/src/bl702_xip_sflash.c",
      "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702_std/BSP_Driver/std_drv/src/bl702_xip_sflash_ext.c",
    ]

    configs += [ ":${sdk_target_name}_config_freertos" ]
    public_configs = [
      ":${sdk_target_name}_config",
      ":${sdk_target_name}_config_BSP_Driver",
    ]
    cflags_c = [
      "-Wno-sign-compare",
      "-Wno-unused-variable",
    ]
  }

  config("${sdk_target_name}_config_freertos") {
    include_dirs = [
      "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702_freertos/config",
      "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702_freertos/portable/GCC/RISC-V",
      "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702_freertos/panic",
    ]
  }

  source_set("${sdk_target_name}_bl702_freertos") {
    defines = [ "portasmHANDLE_INTERRUPT=interrupt_entry" ]
    include_dirs = [ "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702_freertos/portable/GCC/RISC-V/chip_specific_extensions/RV32F_float_abi_single" ]

    sources = [
      "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702_freertos/event_groups.c",
      "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702_freertos/list.c",
      "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702_freertos/misaligned/fp_asm.S",
      "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702_freertos/misaligned/misaligned_ldst.c",
      "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702_freertos/panic/panic_c.c",
      "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702_freertos/portable/GCC/RISC-V/port.c",
      "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702_freertos/portable/GCC/RISC-V/portASM.S",
      "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702_freertos/portable/MemMang/heap_5.c",
      "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702_freertos/portable/MemMang/heap_5_psram.c",
      "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702_freertos/queue.c",
      "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702_freertos/stream_buffer.c",
      "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702_freertos/tasks.c",
      "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702_freertos/timers.c",
    ]

    cflags_c = [
      "-Wno-sign-compare",
      "-Wno-old-style-declaration",
    ]

    public_configs = [
      ":${sdk_target_name}_config",
      ":${sdk_target_name}_config_freertos",
    ]
  }

  source_set("${sdk_target_name}_bl702_usb_cdc") {
    include_dirs = [
      "${bl_iot_sdk_root}/components/fs/vfs/include",
      "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702_usb_cdc/Inc",
    ]

    sources = [
      "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702_usb_cdc/Src/bl702_hal_pcd.c",
      "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702_usb_cdc/Src/bl702_usb_cdc.c",
      "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702_usb_cdc/Src/usb_device.c",
      "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702_usb_cdc/Src/usbd_cdc.c",
      "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702_usb_cdc/Src/usbd_cdc_if.c",
      "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702_usb_cdc/Src/usbd_conf.c",
      "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702_usb_cdc/Src/usbd_core.c",
      "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702_usb_cdc/Src/usbd_ctlreq.c",
      "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702_usb_cdc/Src/usbd_desc.c",
      "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702_usb_cdc/Src/usbd_ioreq.c",
    ]

    cflags_c = [ "-Wno-sign-compare" ]
    configs += [
      ":${sdk_target_name}_config_hosal",
      ":${sdk_target_name}_config_BSP_Driver",
      ":${sdk_target_name}_config_freertos",
      ":${sdk_target_name}_config_stage",
    ]
    public_configs = [ ":${sdk_target_name}_config" ]
  }

  config("${sdk_target_name}_config_hosal") {
    include_dirs = [
      "${bl_iot_sdk_root}/components/platform/hosal/include",
      "${bl_iot_sdk_root}/components/platform/hosal/bl702_hal/include",
      "${bl_iot_sdk_root}/components/platform/hosal/bl702_hal",
      "${bl_iot_sdk_root}/components/platform/hosal/sec_common",
    ]

    cflags_cc = [ "-Wno-literal-suffix" ]
  }

  source_set("${sdk_target_name}_hosal") {
    defines = [ "CFG_USE_XTAL32K=1" ]

    sources = [
      "${bl_iot_sdk_root}/components/platform/hosal/bl702_hal/bl_adc.c",
      "${bl_iot_sdk_root}/components/platform/hosal/bl702_hal/bl_boot2.c",
      "${bl_iot_sdk_root}/components/platform/hosal/bl702_hal/bl_chip.c",
      "${bl_iot_sdk_root}/components/platform/hosal/bl702_hal/bl_dma.c",
      "${bl_iot_sdk_root}/components/platform/hosal/bl702_hal/bl_efuse.c",
      "${bl_iot_sdk_root}/components/platform/hosal/bl702_hal/bl_emac.c",
      "${bl_iot_sdk_root}/components/platform/hosal/bl702_hal/bl_flash.c",
      "${bl_iot_sdk_root}/components/platform/hosal/bl702_hal/bl_gpio.c",
      "${bl_iot_sdk_root}/components/platform/hosal/bl702_hal/bl_hbn.c",
      "${bl_iot_sdk_root}/components/platform/hosal/bl702_hal/bl_ir.c",
      "${bl_iot_sdk_root}/components/platform/hosal/bl702_hal/bl_irq.c",
      "${bl_iot_sdk_root}/components/platform/hosal/bl702_hal/bl_pds.c",
      "${bl_iot_sdk_root}/components/platform/hosal/bl702_hal/bl_psram.c",
      "${bl_iot_sdk_root}/components/platform/hosal/bl702_hal/bl_pwm.c",
      "${bl_iot_sdk_root}/components/platform/hosal/bl702_hal/bl_rtc.c",
      "${bl_iot_sdk_root}/components/platform/hosal/bl702_hal/bl_sec.c",
      "${bl_iot_sdk_root}/components/platform/hosal/bl702_hal/bl_sys.c",
      "${bl_iot_sdk_root}/components/platform/hosal/bl702_hal/bl_timer.c",
      "${bl_iot_sdk_root}/components/platform/hosal/bl702_hal/bl_uart.c",
      "${bl_iot_sdk_root}/components/platform/hosal/bl702_hal/bl_wdt.c",
      "${bl_iot_sdk_root}/components/platform/hosal/bl702_hal/bl_wireless.c",
      "${bl_iot_sdk_root}/components/platform/hosal/bl702_hal/hal_board.c",
      "${bl_iot_sdk_root}/components/platform/hosal/bl702_hal/hal_boot2.c",
      "${bl_iot_sdk_root}/components/platform/hosal/bl702_hal/hal_button.c",
      "${bl_iot_sdk_root}/components/platform/hosal/bl702_hal/hal_gpio.c",
      "${bl_iot_sdk_root}/components/platform/hosal/bl702_hal/hal_hbn.c",
      "${bl_iot_sdk_root}/components/platform/hosal/bl702_hal/hal_hwtimer.c",
      "${bl_iot_sdk_root}/components/platform/hosal/bl702_hal/hal_pds.c",
      "${bl_iot_sdk_root}/components/platform/hosal/bl702_hal/hal_sys.c",
      "${bl_iot_sdk_root}/components/platform/hosal/bl702_hal/hal_tcal.c",
      "${bl_iot_sdk_root}/components/platform/hosal/bl702_hal/hosal_adc.c",
      "${bl_iot_sdk_root}/components/platform/hosal/bl702_hal/hosal_dac.c",
      "${bl_iot_sdk_root}/components/platform/hosal/bl702_hal/hosal_dma.c",
      "${bl_iot_sdk_root}/components/platform/hosal/bl702_hal/hosal_flash.c",
      "${bl_iot_sdk_root}/components/platform/hosal/bl702_hal/hosal_gpio.c",
      "${bl_iot_sdk_root}/components/platform/hosal/bl702_hal/hosal_i2c.c",
      "${bl_iot_sdk_root}/components/platform/hosal/bl702_hal/hosal_ota.c",
      "${bl_iot_sdk_root}/components/platform/hosal/bl702_hal/hosal_pwm.c",
      "${bl_iot_sdk_root}/components/platform/hosal/bl702_hal/hosal_rng.c",
      "${bl_iot_sdk_root}/components/platform/hosal/bl702_hal/hosal_rtc.c",
      "${bl_iot_sdk_root}/components/platform/hosal/bl702_hal/hosal_spi.c",
      "${bl_iot_sdk_root}/components/platform/hosal/bl702_hal/hosal_timer.c",
      "${bl_iot_sdk_root}/components/platform/hosal/bl702_hal/hosal_uart.c",
      "${bl_iot_sdk_root}/components/platform/hosal/bl702_hal/hosal_wdg.c",
      "${bl_iot_sdk_root}/components/platform/hosal/sec_common/bl_sec_aes.c",
      "${bl_iot_sdk_root}/components/platform/hosal/sec_common/bl_sec_common.c",
      "${bl_iot_sdk_root}/components/platform/hosal/sec_common/bl_sec_pka.c",
      "${bl_iot_sdk_root}/components/platform/hosal/sec_common/bl_sec_sha.c",
    ]

    cflags_c = [
      "-Wno-unused-variable",
      "-Wno-sign-compare",
      "-Wno-enum-conversion",
      "-Wno-old-style-declaration",
      "-Wno-stringop-overflow",
      "-Wno-format-truncation",
      "-Wno-shadow",
    ]
    configs += [
      ":${sdk_target_name}_config_soc",
      ":${sdk_target_name}_config_BSP_Driver",
      ":${sdk_target_name}_config_stage",
      ":${sdk_target_name}_config_sys",
      ":${sdk_target_name}_config_fs",
      ":${sdk_target_name}_config_utils",
      ":${sdk_target_name}_config_freertos",
    ]
    public_configs = [
      ":${sdk_target_name}_config",
      ":${sdk_target_name}_config_hosal",
    ]
  }

  config("${sdk_target_name}_config_fs") {
    include_dirs = [ "${bl_iot_sdk_root}/components/fs/vfs/include" ]
  }

  source_set("${sdk_target_name}_fs") {
    sources = [
      "${bl_iot_sdk_root}/components/fs/vfs/device/vfs_adc.c",
      "${bl_iot_sdk_root}/components/fs/vfs/device/vfs_gpio.c",
      "${bl_iot_sdk_root}/components/fs/vfs/device/vfs_pwm.c",
      "${bl_iot_sdk_root}/components/fs/vfs/device/vfs_spi.c",
      "${bl_iot_sdk_root}/components/fs/vfs/device/vfs_uart.c",
      "${bl_iot_sdk_root}/components/fs/vfs/src/vfs.c",
      "${bl_iot_sdk_root}/components/fs/vfs/src/vfs_file.c",
      "${bl_iot_sdk_root}/components/fs/vfs/src/vfs_inode.c",
      "${bl_iot_sdk_root}/components/fs/vfs/src/vfs_register.c",
    ]
    cflags_c = [
      "-Wno-sign-compare",
      "-Wno-builtin-declaration-mismatch",
    ]
    configs += [
      ":${sdk_target_name}_config_hosal",
      ":${sdk_target_name}_config_stage",
      ":${sdk_target_name}_config_fs",
      ":${sdk_target_name}_config_utils",
      ":${sdk_target_name}_config_freertos",
    ]
    public_configs = [
      ":${sdk_target_name}_config",
      ":${sdk_target_name}_config_fs",
    ]
  }

  source_set("${sdk_target_name}_libc") {
    sources = [
      "${bl_iot_sdk_root}/components/libc/newlibc/assert.c",
      "${bl_iot_sdk_root}/components/libc/newlibc/stdatomic.c",
      "${bl_iot_sdk_root}/components/libc/newlibc/syscalls.c",
    ]
    cflags_c = [ "-Wno-builtin-declaration-mismatch" ]
    configs += [ ":${sdk_target_name}_config_freertos" ]
    public_configs = [ ":${sdk_target_name}_config" ]
  }

  config("${sdk_target_name}_config_stage") {
    include_dirs = [
      "${bl_iot_sdk_root}/components/stage/easyflash4/inc",
      "${bl_iot_sdk_root}/components/stage/yloop/include",
      "${bl_iot_sdk_root}/components/stage/blog",
      "${bl_iot_sdk_root}/components/stage/yloop/include/aos",
      "${bl_iot_sdk_root}/components/stage/blfdt/inc",
      "${bl_iot_sdk_root}/components/stage/cli/cli/include",
    ]
  }

  source_set("${sdk_target_name}_stage") {
    sources = [
      "${bl_iot_sdk_root}/components/stage/blfdt/src/fdt.c",
      "${bl_iot_sdk_root}/components/stage/blfdt/src/fdt_addresses.c",
      "${bl_iot_sdk_root}/components/stage/blfdt/src/fdt_empty_tree.c",
      "${bl_iot_sdk_root}/components/stage/blfdt/src/fdt_overlay.c",
      "${bl_iot_sdk_root}/components/stage/blfdt/src/fdt_ro.c",
      "${bl_iot_sdk_root}/components/stage/blfdt/src/fdt_rw.c",
      "${bl_iot_sdk_root}/components/stage/blfdt/src/fdt_strerror.c",
      "${bl_iot_sdk_root}/components/stage/blfdt/src/fdt_sw.c",
      "${bl_iot_sdk_root}/components/stage/blfdt/src/fdt_wip.c",
      "${bl_iot_sdk_root}/components/stage/blog/blog.c",
      "${bl_iot_sdk_root}/components/stage/easyflash4/src/easyflash.c",
      "${bl_iot_sdk_root}/components/stage/easyflash4/src/ef_env.c",
      "${bl_iot_sdk_root}/components/stage/easyflash4/src/ef_port.c",
      "${bl_iot_sdk_root}/components/stage/easyflash4/src/ef_utils.c",
      "${bl_iot_sdk_root}/components/stage/yloop/src/aos_freertos.c",
      "${bl_iot_sdk_root}/components/stage/yloop/src/device.c",
      "${bl_iot_sdk_root}/components/stage/yloop/src/local_event.c",
      "${bl_iot_sdk_root}/components/stage/yloop/src/select.c",
      "${bl_iot_sdk_root}/components/stage/yloop/src/yloop.c",
    ]
    defines = [ "EF_ENV_CACHE_TABLE_SIZE=32" ]
    cflags_c = [ "-Wno-sign-compare" ]
    configs += [
      ":${sdk_target_name}_config_BSP_Driver",
      ":${sdk_target_name}_config_freertos",
      ":${sdk_target_name}_config_fs",
      ":${sdk_target_name}_config_sys",
      ":${sdk_target_name}_config_utils",
    ]
    public_configs = [
      ":${sdk_target_name}_config",
      ":${sdk_target_name}_config_stage",
    ]
  }

  config("${sdk_target_name}_config_sys") {
    include_dirs = [
      "${bl_iot_sdk_root}/components/sys/bloop/bloop/include",
      "${bl_iot_sdk_root}/components/sys/bloop/looprt/include",
      "${bl_iot_sdk_root}/components/sys/bloop/loopset/include",
      "${bl_iot_sdk_root}/components/sys/blmtd/include",
    ]
  }

  source_set("${sdk_target_name}_sys") {
    include_dirs = [ "${bl_iot_sdk_root}/components/sys/bltime/include" ]
    sources = [
      "${bl_iot_sdk_root}/components/sys/blmtd/bl_mtd.c",
      "${bl_iot_sdk_root}/components/sys/bltime/bl_sys_time.c",
    ]
    configs += [
      ":${sdk_target_name}_config_BSP_Driver",
      ":${sdk_target_name}_config_hosal",
      ":${sdk_target_name}_config_utils",
      ":${sdk_target_name}_config_freertos",
    ]
    public_configs = [
      ":${sdk_target_name}_config",
      ":${sdk_target_name}_config_sys",
    ]
  }

  config("${sdk_target_name}_config_utils") {
    include_dirs = [ "${bl_iot_sdk_root}/components/utils/include/" ]
  }

  source_set("${sdk_target_name}_utils") {
    sources = [
      "${bl_iot_sdk_root}/components/utils/src/utils_base64.c",
      "${bl_iot_sdk_root}/components/utils/src/utils_crc.c",
      "${bl_iot_sdk_root}/components/utils/src/utils_dns.c",
      "${bl_iot_sdk_root}/components/utils/src/utils_fec.c",
      "${bl_iot_sdk_root}/components/utils/src/utils_getopt.c",
      "${bl_iot_sdk_root}/components/utils/src/utils_hex.c",
      "${bl_iot_sdk_root}/components/utils/src/utils_hexdump.c",
      "${bl_iot_sdk_root}/components/utils/src/utils_hmac_sha1_fast.c",
      "${bl_iot_sdk_root}/components/utils/src/utils_list.c",
      "${bl_iot_sdk_root}/components/utils/src/utils_log.c",
      "${bl_iot_sdk_root}/components/utils/src/utils_memp.c",
      "${bl_iot_sdk_root}/components/utils/src/utils_notifier.c",
      "${bl_iot_sdk_root}/components/utils/src/utils_psk_fast.c",
      "${bl_iot_sdk_root}/components/utils/src/utils_rbtree.c",
      "${bl_iot_sdk_root}/components/utils/src/utils_sha256.c",
      "${bl_iot_sdk_root}/components/utils/src/utils_string.c",
      "${bl_iot_sdk_root}/components/utils/src/utils_time.c",
      "${bl_iot_sdk_root}/components/utils/src/utils_tlv_bl.c",
    ]

    cflags_c = [
      "-Wno-shadow",
      "-Wno-sign-compare",
    ]
    configs += [
      ":${sdk_target_name}_config_hosal",
      ":${sdk_target_name}_config_utils",
      ":${sdk_target_name}_config_freertos",
    ]
    public_configs = [
      ":${sdk_target_name}_config",
      ":${sdk_target_name}_config_utils",
    ]
  }

  config("${sdk_target_name}_config_mbedtls") {
    include_dirs = [
      "${bl_iot_sdk_root}/components/security/mbedtls_lts/mbedtls/include",
      "${bl_iot_sdk_root}/components/security/mbedtls_lts/port",
    ]

    defines = [ "MBEDTLS_CONFIG_FILE=\"bl702-chip-mbedtls-config.h\"" ]
  }

  source_set("${sdk_target_name}_mbedtls") {
    include_dirs =
        [ "${bl_iot_sdk_root}/components/security/mbedtls_lts/mbedtls/library" ]

    sources = [
      "${bl_iot_sdk_root}/components/security/mbedtls_lts/port/hw_acc/aes_alt.c",
      "${bl_iot_sdk_root}/components/security/mbedtls_lts/port/hw_acc/bignum_hw.c",
      "${bl_iot_sdk_root}/components/security/mbedtls_lts/port/hw_acc/ecp_alt.c",
      "${bl_iot_sdk_root}/components/security/mbedtls_lts/port/hw_acc/ecp_curves_alt.c",
      "${bl_iot_sdk_root}/components/security/mbedtls_lts/port/hw_acc/hw_common.c",
      "${bl_iot_sdk_root}/components/security/mbedtls_lts/port/hw_acc/hw_common.h",
      "${bl_iot_sdk_root}/components/security/mbedtls_lts/port/hw_acc/sha1_alt.c",
      "${bl_iot_sdk_root}/components/security/mbedtls_lts/port/hw_acc/sha256_alt.c",
    ]

    sources += [
      "${bl_iot_sdk_root}/components/security/mbedtls_lts/port/bignum_ext.c",
      "${bl_iot_sdk_root}/components/security/mbedtls_lts/port/hw_entropy_poll.c",
      "${bl_iot_sdk_root}/components/security/mbedtls_lts/port/mbedtls_port_mem.c",
      "${bl_iot_sdk_root}/components/security/mbedtls_lts/port/net_sockets.c",
      "${bl_iot_sdk_root}/components/security/mbedtls_lts/port/pkparse.c",
    ]

    sources += [
      "${bl_iot_sdk_root}/components/security/mbedtls_lts/mbedtls/library/aes.c",
      "${bl_iot_sdk_root}/components/security/mbedtls_lts/mbedtls/library/asn1parse.c",
      "${bl_iot_sdk_root}/components/security/mbedtls_lts/mbedtls/library/asn1write.c",
      "${bl_iot_sdk_root}/components/security/mbedtls_lts/mbedtls/library/base64.c",
      "${bl_iot_sdk_root}/components/security/mbedtls_lts/mbedtls/library/bignum.c",
      "${bl_iot_sdk_root}/components/security/mbedtls_lts/mbedtls/library/ccm.c",
      "${bl_iot_sdk_root}/components/security/mbedtls_lts/mbedtls/library/cipher.c",
      "${bl_iot_sdk_root}/components/security/mbedtls_lts/mbedtls/library/cipher_wrap.c",
      "${bl_iot_sdk_root}/components/security/mbedtls_lts/mbedtls/library/cmac.c",
      "${bl_iot_sdk_root}/components/security/mbedtls_lts/mbedtls/library/constant_time.c",
      "${bl_iot_sdk_root}/components/security/mbedtls_lts/mbedtls/library/ctr_drbg.c",
      "${bl_iot_sdk_root}/components/security/mbedtls_lts/mbedtls/library/ecdh.c",
      "${bl_iot_sdk_root}/components/security/mbedtls_lts/mbedtls/library/ecdsa.c",
      "${bl_iot_sdk_root}/components/security/mbedtls_lts/mbedtls/library/ecp.c",
      "${bl_iot_sdk_root}/components/security/mbedtls_lts/mbedtls/library/ecp_curves.c",
      "${bl_iot_sdk_root}/components/security/mbedtls_lts/mbedtls/library/entropy.c",
      "${bl_iot_sdk_root}/components/security/mbedtls_lts/mbedtls/library/hkdf.c",
      "${bl_iot_sdk_root}/components/security/mbedtls_lts/mbedtls/library/hmac_drbg.c",
      "${bl_iot_sdk_root}/components/security/mbedtls_lts/mbedtls/library/md.c",
      "${bl_iot_sdk_root}/components/security/mbedtls_lts/mbedtls/library/oid.c",
      "${bl_iot_sdk_root}/components/security/mbedtls_lts/mbedtls/library/pem.c",
      "${bl_iot_sdk_root}/components/security/mbedtls_lts/mbedtls/library/pk.c",
      "${bl_iot_sdk_root}/components/security/mbedtls_lts/mbedtls/library/pk_wrap.c",
      "${bl_iot_sdk_root}/components/security/mbedtls_lts/mbedtls/library/pkcs5.c",
      "${bl_iot_sdk_root}/components/security/mbedtls_lts/mbedtls/library/pkwrite.c",
      "${bl_iot_sdk_root}/components/security/mbedtls_lts/mbedtls/library/platform.c",
      "${bl_iot_sdk_root}/components/security/mbedtls_lts/mbedtls/library/platform_util.c",
      "${bl_iot_sdk_root}/components/security/mbedtls_lts/mbedtls/library/sha256.c",
      "${bl_iot_sdk_root}/components/security/mbedtls_lts/mbedtls/library/sha512.c",
      "${bl_iot_sdk_root}/components/security/mbedtls_lts/mbedtls/library/x509_create.c",
      "${bl_iot_sdk_root}/components/security/mbedtls_lts/mbedtls/library/x509write_csr.c",
    ]

    cflags_c = [
      "-Wno-sign-compare",
      "-Wno-implicit-function-declaration",
    ]
    configs += [
      ":${sdk_target_name}_config_BSP_Driver",
      ":${sdk_target_name}_config_hosal",
      ":${sdk_target_name}_config_freertos",
    ]
    public_configs = [
      ":${sdk_target_name}_config",
      ":${sdk_target_name}_config_mbedtls",
    ]
  }

  config("${sdk_target_name}_ble_config") {
    include_dirs = [
      "${bl_iot_sdk_root}/components/network/ble/blecontroller/ble_inc",
      "${bl_iot_sdk_root}/components/network/ble/blestack/src/include",
      "${bl_iot_sdk_root}/components/network/ble/blestack/src/include/bluetooth",
      "${bl_iot_sdk_root}/components/network/ble/blestack/src/include/drivers/bluetooth",
      "${bl_iot_sdk_root}/components/network/ble/blestack/src/common/include",
      "${bl_iot_sdk_root}/components/network/ble/blestack/src/common/include/zephyr",
      "${bl_iot_sdk_root}/components/network/ble/blestack/src/port/include",
      "${bl_iot_sdk_root}/components/network/ble/blestack/src",
      "${bl_iot_sdk_root}/components/network/ble/blestack/src/host",
    ]

    defines = [
      "BFLB_BLE",
      "CONFIG_SET_TX_PWR",
      "CFG_CON=1",
      "CFG_BLE",
      "CFG_SLEEP",
      "CFG_BT_RESET",
      "CONFIG_BT_PERIPHERAL=1",
      "CFG_BLE_TX_BUFF_DATA=2",
      "CONFIG_BT_GATT_DYNAMIC_DB",
      "CONFIG_BT_GATT_SERVICE_CHANGED",
      "CONFIG_BT_SETTINGS_CCC_LAZY_LOADING",
      "CONFIG_BT_KEYS_OVERWRITE_OLDEST",
      "CONFIG_BT_GAP_PERIPHERAL_PREF_PARAMS",
      "CONFIG_BT_BONDABLE",
      "CONFIG_BT_ASSERT",
      "CFG_BLE_STACK_DBG_PRINT",
    ]

    cflags_cc = [ "-Wno-conversion" ]
  }

  source_set("${sdk_target_name}_ble") {
    defines = [
      "CONFIG_BT_L2CAP_DYNAMIC_CHANNEL",
      "CONFIG_BT_GATT_CLIENT",
      "CONFIG_BT_CONN=1",
      "CONFIG_BT_GATT_DIS_PNP",
      "CONFIG_BT_GATT_DIS_SERIAL_NUMBER",
      "CONFIG_BT_GATT_DIS_FW_REV",
      "CONFIG_BT_GATT_DIS_HW_REV",
      "CONFIG_BT_GATT_DIS_SW_REV",
      "CONFIG_BT_ECC",
      "CONFIG_BT_KEYS_SAVE_AGING_COUNTER_ON_PAIRING",
      "CONFIG_BT_HCI_VS_EVT_USER",
      "CONFIG_BT_SETTINGS_USE_PRINTK",
    ]

    libs = [ "${bl_iot_sdk_root}/components/network/ble/blecontroller_702_m1s1/lib/libblecontroller_702_m1s1.a" ]

    include_dirs = [
      "${bl_iot_sdk_root}/components/network/ble/blestack/src/common",
      "${bl_iot_sdk_root}/components/network/ble/blestack/src/common/include",
      "${bl_iot_sdk_root}/components/network/ble/blestack/src/common/include/misc",
      "${bl_iot_sdk_root}/components/network/ble/blestack/src/bl_hci_wrapper",
      "${bl_iot_sdk_root}/components/network/ble/blestack/src/common/tinycrypt/include/tinycrypt",
    ]

    sources = [
      "${bl_iot_sdk_root}/components/network/ble/blestack/src/bl_hci_wrapper/bl_hci_wrapper.c",
      "${bl_iot_sdk_root}/components/network/ble/blestack/src/common/atomic_c.c",
      "${bl_iot_sdk_root}/components/network/ble/blestack/src/common/buf.c",
      "${bl_iot_sdk_root}/components/network/ble/blestack/src/common/dec.c",
      "${bl_iot_sdk_root}/components/network/ble/blestack/src/common/log.c",
      "${bl_iot_sdk_root}/components/network/ble/blestack/src/common/poll.c",
      "${bl_iot_sdk_root}/components/network/ble/blestack/src/common/work_q.c",
      "${bl_iot_sdk_root}/components/network/ble/blestack/src/hci_onchip/hci_driver.c",
      "${bl_iot_sdk_root}/components/network/ble/blestack/src/host/att.c",
      "${bl_iot_sdk_root}/components/network/ble/blestack/src/host/bl_host_assist.c",
      "${bl_iot_sdk_root}/components/network/ble/blestack/src/host/conn.c",
      "${bl_iot_sdk_root}/components/network/ble/blestack/src/host/crypto.c",
      "${bl_iot_sdk_root}/components/network/ble/blestack/src/host/gatt.c",
      "${bl_iot_sdk_root}/components/network/ble/blestack/src/host/hci_core.c",
      "${bl_iot_sdk_root}/components/network/ble/blestack/src/host/l2cap.c",
      "${bl_iot_sdk_root}/components/network/ble/blestack/src/host/settings.c",
      "${bl_iot_sdk_root}/components/network/ble/blestack/src/host/uuid.c",
      "${bl_iot_sdk_root}/components/network/ble/blestack/src/port/bl_port.c",
    ]

    configs += [
      ":${sdk_target_name}_config_BSP_Driver",
      ":${sdk_target_name}_config_hosal",
      ":${sdk_target_name}_config_freertos",
      ":${sdk_target_name}_config_utils",
    ]
    public_configs = [
      ":${sdk_target_name}_config",
      ":${sdk_target_name}_ble_config",
    ]

    cflags_c = [
      "-Wno-sign-compare",
      "-Wno-unused-but-set-variable",
      "-Wno-misleading-indentation",
      "-Wno-format",
      "-Wno-format-nonliteral",
      "-Wno-format-security",
      "-Wno-unused-function",
      "-Wno-incompatible-pointer-types",
      "-Wno-discarded-qualifiers",
    ]
  }

  config("${sdk_target_name}_config_openthread_port") {
    defines = [ "OT_FREERTOS_ENABLE=1" ]

    include_dirs = [
      "${chip_root}/platform/bl702",
      "${chip_root}/third_party/openthread/repo/src/core",
      "${chip_root}/third_party/openthread/repo/examples/platforms",
      "${bl_iot_sdk_root}/components/network/thread/openthread_port/include",
    ]

    include_dirs += [
      "${bl_iot_sdk_root}/components/network/thread/openthread_utils/include",
    ]
  }

  source_set("${sdk_target_name}_openthread_port") {
    import("//build_overrides/openthread.gni")

    include_dirs = [
      "${bl_iot_sdk_root}/components/network/lmac154/include",
      "${bl_iot_sdk_root}/components/network/thread/openthread_port",
      "${openthread_root}/examples/platforms/utils/",
      "${openthread_root}/examples",
    ]

    sources = [
      "${bl_iot_sdk_root}/components/network/thread/openthread_port/ot_alarm.c",
      "${bl_iot_sdk_root}/components/network/thread/openthread_port/ot_diag.c",
      "${bl_iot_sdk_root}/components/network/thread/openthread_port/ot_entropy.c",
      "${bl_iot_sdk_root}/components/network/thread/openthread_port/ot_linkmetric.c",
      "${bl_iot_sdk_root}/components/network/thread/openthread_port/ot_logging.c",
      "${bl_iot_sdk_root}/components/network/thread/openthread_port/ot_misc.c",
      "${bl_iot_sdk_root}/components/network/thread/openthread_port/ot_radio.c",
      "${bl_iot_sdk_root}/components/network/thread/openthread_port/ot_settings.c",
    ]

    libs = [
      "${bl_iot_sdk_root}/components/network/lmac154/lib/liblmac154.a",
      "${bl_iot_sdk_root}/components/network/thread/openthread_utils_bl702/lib/libopenthread_utils_bl702.a",
    ]

    configs += [
      ":${sdk_target_name}_config_BSP_Driver",
      ":${sdk_target_name}_config_utils",
      ":${sdk_target_name}_config_hosal",
      ":${sdk_target_name}_config_stage",
      ":${sdk_target_name}_config_freertos",
    ]
    public_configs = [
      ":${sdk_target_name}_config",
      ":${sdk_target_name}_config_openthread_port",
    ]

    public_deps = [
      "${chip_root}/third_party/openthread/platforms:libopenthread-platform-utils",
      "${openthread_root}/src/core:libopenthread_core_headers",
    ]
  }

  config("${sdk_target_name}_config_lwip_port") {
    _include_dirs = [
      "${bl_iot_sdk_root}/components/network/lwip/lwip-port",
      "${bl_iot_sdk_root}/components/network/lwip/lwip-port/config",
      "${bl_iot_sdk_root}/components/stage/virt_net/include",
      "${bl_iot_sdk_root}/components/stage/throughput/bl702/inc",
    ]

    defines = [
      "TCPIP_THREAD_PRIO=24",
      "CFG_ETHERNET_ENABLE=1",
    ]

    cflags = []
    foreach(include_dir, _include_dirs) {
      cflags += [ "-isystem" + rebase_path(include_dir, root_build_dir) ]
    }

    cflags += [
      "-Wno-conversion",
      "-Wno-unused-function",
    ]
  }

  source_set("${sdk_target_name}_lwip_port") {
    defines = [
      "SPI_WIFI_RXBUFF_IN_PSRAM=1",
      "VIRT_NET_SPI_RX_TASK_PRIORITY=25",
    ]

    #    include_dirs = [
    #      "${bl_iot_sdk_root}/components/network/lwip/lwip-port/arch",
    #      "${bl_iot_sdk_root}/components/network/lwip/lwip-port/FreeRTOS",
    #      "${bl_iot_sdk_root}/components/stage/throughput"
    #    ]

    #    sources = [
    #      "${bl_iot_sdk_root}/components/network/lwip/lwip-port/FreeRTOS/ethernetif.c",
    #      "${bl_iot_sdk_root}/components/network/lwip/lwip-port/FreeRTOS/sys_arch.c"
    #    ]

    #    sources += [
    #      "${bl_iot_sdk_root}/components/stage/throughput/bl702/src/tp_spi_master.c",
    #    ]
    #    sources += [
    #      "${bl_iot_sdk_root}/components/stage/virt_net/src/virt_net.c",
    #      "${bl_iot_sdk_root}/components/stage/virt_net/src/virt_net_spi.c",
    #    ]

    public_configs = [
      ":${sdk_target_name}_config",
      ":${sdk_target_name}_config_lwip_port",
      ":${sdk_target_name}_config_lwip",
    ]

    cflags = [ "-Wno-sign-compare" ]
  }

  config("${sdk_target_name}_config_lwip") {
    include_dirs = [
      "${bl_iot_sdk_root}/components/network/lwip/lwip-port/config",
      "${bl_iot_sdk_root}/components/network/lwip/src/include",
      "${bl_iot_sdk_root}/components/network/lwip/src/include/lwip/apps",
      "${bl_iot_sdk_root}/components/network/lwip/lwip-port",
      "${bl_iot_sdk_root}/components/network/lwip/lwip-port/FreeRTOS",
      "${bl_iot_sdk_root}/components/network/lwip/lwip-port/hook",
    ]

    defines = [
      "LWIP_IPV6=1",
      "LWIP_IPV4=1",
      "LWIP_IPV6_DHCP6=1",
      "LWIP_IPV6_SCOPES=0",
      "PBUF_POOL_SIZE=20",
      "PBUF_POOL_BUFSIZE=(1280+150)",
    ]
  }

  source_set("${sdk_target_name}_lwip") {
    sources = [
      "${bl_iot_sdk_root}/components/network/lwip/lwip-port/FreeRTOS/ethernetif.c",
      "${bl_iot_sdk_root}/components/network/lwip/lwip-port/FreeRTOS/sys_arch.c",
    ]
    sources += [
      "${bl_iot_sdk_root}/components/network/lwip/src/netif/bridgeif.c",
      "${bl_iot_sdk_root}/components/network/lwip/src/netif/bridgeif_fdb.c",
      "${bl_iot_sdk_root}/components/network/lwip/src/netif/ethernet.c",
      "${bl_iot_sdk_root}/components/network/lwip/src/netif/slipif.c",
      "${bl_iot_sdk_root}/components/network/lwip/src/netif/zepif.c",
    ]
    sources += [
      "${bl_iot_sdk_root}/components/network/lwip/src/core/def.c",
      "${bl_iot_sdk_root}/components/network/lwip/src/core/dns.c",
      "${bl_iot_sdk_root}/components/network/lwip/src/core/inet_chksum.c",
      "${bl_iot_sdk_root}/components/network/lwip/src/core/init.c",
      "${bl_iot_sdk_root}/components/network/lwip/src/core/ip.c",
      "${bl_iot_sdk_root}/components/network/lwip/src/core/mem.c",
      "${bl_iot_sdk_root}/components/network/lwip/src/core/memp.c",
      "${bl_iot_sdk_root}/components/network/lwip/src/core/netif.c",
      "${bl_iot_sdk_root}/components/network/lwip/src/core/pbuf.c",
      "${bl_iot_sdk_root}/components/network/lwip/src/core/raw.c",
      "${bl_iot_sdk_root}/components/network/lwip/src/core/stats.c",
      "${bl_iot_sdk_root}/components/network/lwip/src/core/sys.c",
      "${bl_iot_sdk_root}/components/network/lwip/src/core/tcp.c",
      "${bl_iot_sdk_root}/components/network/lwip/src/core/tcp_in.c",
      "${bl_iot_sdk_root}/components/network/lwip/src/core/tcp_out.c",
      "${bl_iot_sdk_root}/components/network/lwip/src/core/timeouts.c",
      "${bl_iot_sdk_root}/components/network/lwip/src/core/udp.c",
    ]

    sources += [
      "${bl_iot_sdk_root}/components/network/lwip/src/core/ipv4/autoip.c",
      "${bl_iot_sdk_root}/components/network/lwip/src/core/ipv4/dhcp.c",
      "${bl_iot_sdk_root}/components/network/lwip/src/core/ipv4/etharp.c",
      "${bl_iot_sdk_root}/components/network/lwip/src/core/ipv4/icmp.c",
      "${bl_iot_sdk_root}/components/network/lwip/src/core/ipv4/igmp.c",
      "${bl_iot_sdk_root}/components/network/lwip/src/core/ipv4/ip4.c",
      "${bl_iot_sdk_root}/components/network/lwip/src/core/ipv4/ip4_addr.c",
      "${bl_iot_sdk_root}/components/network/lwip/src/core/ipv4/ip4_frag.c",
    ]

    sources += [
      "${bl_iot_sdk_root}/components/network/lwip/src/core/ipv6/dhcp6.c",
      "${bl_iot_sdk_root}/components/network/lwip/src/core/ipv6/ethip6.c",
      "${bl_iot_sdk_root}/components/network/lwip/src/core/ipv6/icmp6.c",
      "${bl_iot_sdk_root}/components/network/lwip/src/core/ipv6/inet6.c",
      "${bl_iot_sdk_root}/components/network/lwip/src/core/ipv6/ip6.c",
      "${bl_iot_sdk_root}/components/network/lwip/src/core/ipv6/ip6_addr.c",
      "${bl_iot_sdk_root}/components/network/lwip/src/core/ipv6/ip6_frag.c",

      #"${bl_iot_sdk_root}/components/network/lwip/src/core/ipv6/ip6_route_table.c",
      "${bl_iot_sdk_root}/components/network/lwip/src/core/ipv6/mld6.c",
      "${bl_iot_sdk_root}/components/network/lwip/src/core/ipv6/nd6.c",
    ]

    sources += [
      "${bl_iot_sdk_root}/components/network/lwip/src/api/api_lib.c",
      "${bl_iot_sdk_root}/components/network/lwip/src/api/api_msg.c",
      "${bl_iot_sdk_root}/components/network/lwip/src/api/err.c",
      "${bl_iot_sdk_root}/components/network/lwip/src/api/if_api.c",
      "${bl_iot_sdk_root}/components/network/lwip/src/api/netbuf.c",
      "${bl_iot_sdk_root}/components/network/lwip/src/api/netifapi.c",
      "${bl_iot_sdk_root}/components/network/lwip/src/api/sockets.c",
      "${bl_iot_sdk_root}/components/network/lwip/src/api/tcpip.c",
    ]
    sources +=
        [ "${bl_iot_sdk_root}/components/network/lwip/src/apps/mdns/mdns.c" ]

    configs += [ ":${sdk_target_name}_config_freertos" ]
    public_configs = [
      ":${sdk_target_name}_config",
      ":${sdk_target_name}_config_lwip",
    ]
  }

  group(sdk_target_name) {
    public_deps = [
      ":${sdk_target_name}_BSP_Driver",
      ":${sdk_target_name}_bl702_freertos",
      ":${sdk_target_name}_ble",
      ":${sdk_target_name}_fs",
      ":${sdk_target_name}_hosal",
      ":${sdk_target_name}_libc",
      ":${sdk_target_name}_mbedtls",
      ":${sdk_target_name}_soc",
      ":${sdk_target_name}_stage",
      ":${sdk_target_name}_sys",
      ":${sdk_target_name}_utils",
    ]

    if (chip_enable_openthread) {
      public_deps += [ ":${sdk_target_name}_openthread_port" ]
    }

    if (chip_enable_wifi) {
      public_deps += [ ":${sdk_target_name}_lwip_port" ]
      public_deps += [ ":${sdk_target_name}_lwip" ]
    }

    if (enable_cdc_module) {
      public_deps += [ ":${sdk_target_name}_bl702_usb_cdc" ]
    }
  }
}
