# Copyright (c) 2020 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("//build_overrides/chip.gni")
import("//build_overrides/efr32_sdk.gni")
import("//build_overrides/jlink.gni")
import("//build_overrides/mbedtls.gni")

import("${chip_root}/src/lib/lib.gni")
import("efr32_board.gni")

declare_args() {
  # Location of the efr32 SDK.
  efr32_sdk_root = "${chip_root}/third_party/silabs/gecko_sdk"
  sdk_support_root = "${chip_root}/third_party/silabs/matter_support"

  #Build openthread with prebuilt silabs lib
  use_silabs_thread_lib = false
  enable_openthread_cli = true
  kvs_max_entries = 75

  use_external_flash = true
}

# Explorer Kit does not have external flash
if (efr32_board == "BRD2703A") {
  use_external_flash = false
}

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

# Defines an efr32 SDK build target.
#
# Parameters:
#   efr32_sdk_root - The location of the erf32 SDK.
#   sources - The sources files to build.
template("efr32_sdk") {
  if (defined(invoker.efr32_sdk_root)) {
    efr32_sdk_root = invoker.efr32_sdk_root
  }

  assert(efr32_sdk_root != "", "efr32_sdk_root must be specified")
  use_wf200 = false
  if (defined(invoker.use_wf200)) {
    if (invoker.use_wf200) {
      use_wf200 = true
    }
  }

  sdk_target_name = target_name

  config("${sdk_target_name}_config") {
    include_dirs = []
    libs = []
    if (defined(invoker.include_dirs)) {
      include_dirs += invoker.include_dirs
    }

    # Treat these includes as system includes, so warnings in them are not fatal.
    _include_dirs = [
      "${efr32_sdk_root}",
      "${efr32_sdk_root}/hardware/kit/common/bsp",
      "${efr32_sdk_root}/hardware/board/inc",
      "${efr32_sdk_root}/hardware/driver/memlcd/inc",
      "${efr32_sdk_root}/hardware/driver/memlcd/src/ls013b7dh03",
      "${efr32_sdk_root}/platform/bootloader",
      "${efr32_sdk_root}/platform/bootloader/config",
      "${efr32_sdk_root}/platform/bootloader/config/s2/btl_interface",
      "${efr32_sdk_root}/platform/bootloader/api",
      "${efr32_sdk_root}/platform/CMSIS/Core/Include",
      "${efr32_sdk_root}/platform/CMSIS/RTOS2/Include",
      "${efr32_sdk_root}/platform/common/inc",
      "${efr32_sdk_root}/platform/driver/button/inc",
      "${efr32_sdk_root}/platform/driver/leddrv/inc",
      "${efr32_sdk_root}/platform/emdrv/common/inc",
      "${efr32_sdk_root}/platform/emdrv/gpiointerrupt/inc",
      "${efr32_sdk_root}/platform/emdrv/dmadrv/config",
      "${efr32_sdk_root}/platform/emdrv/dmadrv/inc",
      "${efr32_sdk_root}/platform/emdrv/nvm3/inc",
      "${efr32_sdk_root}/platform/emdrv/rtcdrv/inc",
      "${efr32_sdk_root}/platform/emlib/inc",
      "${efr32_sdk_root}/platform/halconfig/inc/hal-config",
      "${efr32_sdk_root}/platform/peripheral/inc",
      "${efr32_sdk_root}/platform/radio/rail_lib/common",
      "${efr32_sdk_root}/platform/radio/rail_lib/chip/efr32",
      "${efr32_sdk_root}/platform/radio/rail_lib/chip/efr32/rf/common/cortex",
      "${efr32_sdk_root}/platform/radio/rail_lib/hal",
      "${efr32_sdk_root}/platform/radio/rail_lib/hal/efr32",
      "${efr32_sdk_root}/platform/radio/rail_lib/protocol/ieee802154",
      "${efr32_sdk_root}/platform/radio/rail_lib/plugin/pa-conversions",
      "${efr32_sdk_root}/platform/radio/rail_lib/plugin/rail_util_pti",
      "${efr32_sdk_root}/platform/radio/rail_lib/plugin/rail_util_rf_path",
      "${efr32_sdk_root}/platform/service/device_init/inc",
      "${efr32_sdk_root}/platform/service/hfxo_manager/config/",
      "${efr32_sdk_root}/platform/service/hfxo_manager/inc",
      "${efr32_sdk_root}/platform/service/hfxo_manager/src",
      "${efr32_sdk_root}/platform/service/mpu/inc",
      "${efr32_sdk_root}/platform/service/power_manager/config/",
      "${efr32_sdk_root}/platform/service/power_manager/inc/",
      "${efr32_sdk_root}/platform/service/power_manager/src/",
      "${efr32_sdk_root}/platform/service/sleeptimer/inc",
      "${efr32_sdk_root}/platform/service/sleeptimer/config",
      "${efr32_sdk_root}/platform/service/system/inc",
      "${efr32_sdk_root}/platform/service/udelay/inc",
      "${efr32_sdk_root}/platform/service/legacy_hal/inc",
      "${efr32_sdk_root}/platform/service/token_manager/config",
      "${efr32_sdk_root}/platform/service/token_manager/inc",
      "${efr32_sdk_root}/platform/service/token_manager/test",
      "${efr32_sdk_root}/platform/service/token_manager/test/include",
      "${efr32_sdk_root}/platform/service/token_manager/test/stack/config",
      "${efr32_sdk_root}/platform/service/token_manager/test/stack/include",
      "${efr32_sdk_root}/platform/middleware/glib",
      "${efr32_sdk_root}/platform/middleware/glib/glib",
      "${efr32_sdk_root}/platform/middleware/glib/dmd",
      "${efr32_sdk_root}/platform/base/hal/plugin/psstore",
      "${efr32_sdk_root}/platform/base/hal/plugin/antenna",
      "${efr32_sdk_root}/protocol/bluetooth/inc/",
      "${efr32_sdk_root}/util/plugin/plugin-common/fem-control",
      "${efr32_sdk_root}/util/silicon_labs/silabs_core/graphics",
      "${efr32_sdk_root}/util/silicon_labs/silabs_core/memory_manager",
      "${efr32_sdk_root}/util/third_party/crypto/mbedtls/include",
      "${efr32_sdk_root}/util/third_party/crypto/mbedtls/include/psa",
      "${efr32_sdk_root}/util/third_party/crypto/mbedtls/library",
      "${efr32_sdk_root}/util/third_party/crypto/sl_component/sl_alt/include",
      "${efr32_sdk_root}/util/third_party/crypto/sl_component/sl_protocol_crypto/src",
      "${efr32_sdk_root}/util/third_party/crypto/sl_component/sl_mbedtls_support/inc",
      "${efr32_sdk_root}/util/third_party/crypto/sl_component/sl_mbedtls_support/config/",
      "${efr32_sdk_root}/util/third_party/crypto/sl_component/sl_psa_driver/inc",
      "${efr32_sdk_root}/util/third_party/crypto/sl_component/sl_psa_driver/inc/public",
      "${efr32_sdk_root}/util/third_party/crypto/sl_component/se_manager/inc",
      "${efr32_sdk_root}/util/third_party/crypto/sl_component/se_manager/src/",
      "${efr32_sdk_root}/util/third_party/freertos/cmsis/Include",
      "${efr32_sdk_root}/util/third_party/freertos/kernel/include",
      "${sdk_support_root}/matter/efr32/${efr32_family}/${efr32_board}/config",
      "${sdk_support_root}/matter/efr32/${efr32_family}/${efr32_board}/autogen",
    ]

    # Note that we're setting the mbedTLS and PSA configuration files through a
    # define. This means the build system by default does not pick up changes in
    # the content of these, only when changing the filename itself.
    # To fix this, these files are also manually depended upon in the source set
    # declared in efr32_mbedtls_config further down this file.
    defines = [
      "MBEDTLS_CONFIG_FILE=\"efr32-chip-mbedtls-config.h\"",
      "MBEDTLS_PSA_CRYPTO_CONFIG_FILE=\"efr32-mbedtls-psa-crypto-config.h\"",
      "__STARTUP_CLEAR_BSS",
      "HARD_FAULT_LOG_ENABLE",
      "CORTEXM3_EFM32_MICRO",
      "EFR32_LOG_ENABLED=1",
      "NVM3_DEFAULT_NVM_SIZE=40960",
      "NVM3_DEFAULT_MAX_OBJECT_SIZE=4092",
      "KVS_MAX_ENTRIES=${kvs_max_entries}",
      "EFR32_OPENTHREAD_API",
      "PHY=EMBER_PHY_RAIL",
      "CORTEXM3",
      "MICRO=EMBER_MICRO_CORTEXM3_EFR32",
      "PLAT=EMBER_PLATFORM_CORTEXM3",
      "${efr32_mcu}=1",
      "${efr32_board}=1",
      "SL_SUPRESS_DEPRECATION_WARNINGS_SDK_3_1",
      "__HEAP_SIZE=0",
      "SL_CATALOG_FREERTOS_KERNEL_PRESENT=1",
      "MBEDTLS_THREADING_C=1",
      "MBEDTLS_THREADING_ALT=1",
      "SL_THREADING_ALT=1",
      "SL_COMPONENT_CATALOG_PRESENT",
      "PLATFORM_HEADER=\"platform-header.h\"",
      "USE_NVM3=1",

      #"__STACK_SIZE=0",
    ]

    defines += board_defines

    if (defined(invoker.enable_sleepy_device)) {
      if (invoker.enable_sleepy_device) {
        defines += [
          "CHIP_DEVICE_CONFIG_ENABLE_SED=1",
          "SL_CATALOG_POWER_MANAGER_PRESENT",
          "SL_CATALOG_SLEEPTIMER_PRESENT",
        ]
      }
    }

    if (chip_build_libshell) {  # matter shell
      defines += [
        "ENABLE_CHIP_SHELL",
        "OPENTHREAD_CONFIG_CLI_TRANSPORT=OT_CLI_TRANSPORT_CONSOLE",
        "CHIP_DEVICE_CONFIG_THREAD_ENABLE_CLI=1",
      ]
    } else {
      if (enable_openthread_cli) {  # ot-cli only
        defines += [ "CHIP_DEVICE_CONFIG_THREAD_ENABLE_CLI=1" ]
      }
    }

    # USART include files
    if ((defined(invoker.chip_enable_pw_rpc) && invoker.chip_enable_pw_rpc) ||
        chip_build_libshell || enable_openthread_cli ||
        (defined(invoker.use_wf200) && invoker.use_wf200) ||
        (defined(invoker.show_qr_code) && invoker.show_qr_code) ||
        (defined(invoker.disable_lcd) && !invoker.disable_lcd) ||
        (defined(invoker.use_external_flash) && use_external_flash)) {
      defines += [ "CONFIG_ENABLE_UART" ]

      if (defined(invoker.use_external_flash) && use_external_flash) {
        defines += [ "CONFIG_USE_EXTERNAL_FLASH" ]

        _include_dirs += [ "${efr32_sdk_root}/hardware/driver/mx25_flash_shutdown/inc/sl_mx25_flash_shutdown_usart" ]
      }

      _include_dirs += [
        "${efr32_sdk_root}/platform/emdrv/uartdrv/inc",
        "${efr32_sdk_root}/platform/emdrv/uartdrv/config",
        "${efr32_sdk_root}/hardware/driver/memlcd/inc/memlcd_usart",
      ]
    }

    if (efr32_family == "efr32mg12") {
      _include_dirs += [
        "${efr32_sdk_root}/platform/Device/SiliconLabs/EFR32MG12P/Include",
        "${efr32_sdk_root}/platform/radio/rail_lib/chip/efr32/efr32xg1x",
        "${efr32_sdk_root}/util/third_party/freertos/kernel/portable/GCC/ARM_CM4F",
        "${efr32_sdk_root}/platform/radio/rail_lib/plugin/pa-conversions/efr32xg1x/config",
        "${efr32_sdk_root}/platform/service/device_init/config/s1/",
      ]

      libs += [
        "${sdk_support_root}/protocol/bluetooth/lib/EFR32MG12P/GCC/binapploader.o",
        "${sdk_support_root}/protocol/bluetooth/lib/EFR32MG12P/GCC/libbluetooth.a",
        "${sdk_support_root}/platform/radio/rail_lib/autogen/librail_release/librail_multiprotocol_efr32xg12_gcc_release.a",
        "${sdk_support_root}/platform/emdrv/nvm3/lib/libnvm3_CM4_gcc.a",
      ]

      defines += [ "EFR32MG12" ]
    } else if (efr32_family == "efr32mg21") {
      _include_dirs += [
        "${efr32_sdk_root}/platform/Device/SiliconLabs/EFR32MG21/Include",
        "${efr32_sdk_root}/platform/radio/rail_lib/chip/efr32/efr32xg2x",
        "${efr32_sdk_root}/util/third_party/freertos/kernel/portable/GCC/ARM_CM33_NTZ/non_secure",
        "${efr32_sdk_root}/platform/radio/rail_lib/plugin/pa-conversions/efr32xg21",
        "${efr32_sdk_root}/platform/radio/rail_lib/plugin/pa-conversions/efr32xg21/config",
        "${efr32_sdk_root}/platform/service/device_init/config/s2/",
      ]

      libs += [
        "${sdk_support_root}/protocol/bluetooth/lib/EFR32MG21/GCC/binapploader.o",
        "${sdk_support_root}/protocol/bluetooth/lib/EFR32MG21/GCC/libbluetooth.a",
        "${sdk_support_root}/platform/radio/rail_lib/autogen/librail_release/librail_multiprotocol_efr32xg21_gcc_release.a",
        "${sdk_support_root}/platform/emdrv/nvm3/lib/libnvm3_CM33_gcc.a",
      ]

      defines += [
        "EFR32MG21",
        "EFR32_SERIES2_CONFIG1_MICRO",
      ]
    } else if (efr32_family == "efr32mg24") {
      _include_dirs += [
        "${efr32_sdk_root}/platform/Device/SiliconLabs/EFR32MG24/Include",
        "${efr32_sdk_root}/platform/radio/rail_lib/chip/efr32/efr32xg2x",
        "${efr32_sdk_root}/util/third_party/freertos/kernel/portable/GCC/ARM_CM33_NTZ/non_secure",
        "${efr32_sdk_root}/platform/radio/rail_lib/plugin/pa-conversions/efr32xg24",
        "${efr32_sdk_root}/platform/radio/rail_lib/plugin/pa-conversions/efr32xg24/config",
        "${efr32_sdk_root}/platform/service/device_init/config/s2/",
      ]

      libs += [
        "${sdk_support_root}/protocol/bluetooth/lib/EFR32MG24/GCC/libapploader.a",
        "${sdk_support_root}/protocol/bluetooth/lib/EFR32MG24/GCC/libbluetooth.a",
        "${sdk_support_root}/platform/radio/rail_lib/autogen/librail_release/librail_multiprotocol_efr32xg24_gcc_release.a",
        "${sdk_support_root}/platform/emdrv/nvm3/lib/libnvm3_CM33_gcc.a",
      ]

      defines += [
        "EFR32MG24",
        "EFR32_SERIES2_CONFIG4_MICRO",
      ]
    }
    if (use_wf200) {
      _include_dirs += [
        "${efr32_sdk_root}/platform/radio/wifi/wfx_fmac_driver",
        "${efr32_sdk_root}/platform/radio/wifi/wfx_fmac_driver/bus",
        "${efr32_sdk_root}/platform/radio/wifi/wfx_fmac_driver/firmware",
        "${efr32_sdk_root}/platform/radio/wifi/wfx_fmac_driver/pds/brd8022a",
        "${efr32_sdk_root}/platform/radio/wifi/wfx_fmac_driver/secure_link",
      ]
    }

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

    cflags += [
      "-Wno-maybe-uninitialized",
      "-Wno-shadow",
    ]

    if (efr32_family == "efr32mg24") {
      cflags += [ "-mcmse" ]
    }

    if (defined(invoker.use_rs911x)) {
      if (invoker.use_rs911x == true) {
        #add compilation flags for rs991x build. This will be addressed directly in wiseconnect sdk in the next version release of that sdk
        cflags += invoker.rs911x_cflags
      }
    }

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

  source_set("efr32_mbedtls_config") {
    # We're setting the mbedTLS config flags here as the efr32_sdk target
    # acts as the mbedTLS target for EFR32 builds. We need this for the build
    # system to recompile mbedTLS (= the SDK) when the mbedTLS config gets
    # edited.
    sources = [
      "${chip_root}/src/platform/EFR32/efr32-chip-mbedtls-config.h",
      "${chip_root}/src/platform/EFR32/efr32-mbedtls-psa-crypto-config.h",
    ]

    public_deps = [ "${chip_root}/src/crypto:crypto_buildconfig" ]
  }

  source_set(sdk_target_name) {
    sources = [
      "${chip_root}/third_party/mbedtls/repo/include/mbedtls/platform.h",
      "${efr32_sdk_root}/hardware/board/src/sl_board_control_gpio.c",
      "${efr32_sdk_root}/hardware/board/src/sl_board_init.c",
      "${efr32_sdk_root}/platform/CMSIS/RTOS2/Source/os_systick.c",
      "${efr32_sdk_root}/platform/bootloader/api/btl_interface.c",
      "${efr32_sdk_root}/platform/bootloader/api/btl_interface_storage.c",
      "${efr32_sdk_root}/platform/bootloader/security/sha/crypto_sha.c",
      "${efr32_sdk_root}/platform/common/src/sl_slist.c",
      "${efr32_sdk_root}/platform/driver/button/src/sl_button.c",
      "${efr32_sdk_root}/platform/driver/button/src/sl_simple_button.c",
      "${efr32_sdk_root}/platform/driver/leddrv/src/sl_led.c",
      "${efr32_sdk_root}/platform/driver/leddrv/src/sl_pwm_led.c",
      "${efr32_sdk_root}/platform/driver/leddrv/src/sl_simple_led.c",
      "${efr32_sdk_root}/platform/driver/leddrv/src/sl_simple_rgb_pwm_led.c",
      "${efr32_sdk_root}/platform/emdrv/dmadrv/src/dmadrv.c",
      "${efr32_sdk_root}/platform/emdrv/gpiointerrupt/src/gpiointerrupt.c",
      "${efr32_sdk_root}/platform/emdrv/nvm3/src/nvm3_default.c",
      "${efr32_sdk_root}/platform/emdrv/nvm3/src/nvm3_hal_flash.c",
      "${efr32_sdk_root}/platform/emdrv/nvm3/src/nvm3_lock.c",
      "${efr32_sdk_root}/platform/emlib/src/em_adc.c",
      "${efr32_sdk_root}/platform/emlib/src/em_cmu.c",
      "${efr32_sdk_root}/platform/emlib/src/em_core.c",
      "${efr32_sdk_root}/platform/emlib/src/em_crypto.c",
      "${efr32_sdk_root}/platform/emlib/src/em_emu.c",
      "${efr32_sdk_root}/platform/emlib/src/em_gpio.c",
      "${efr32_sdk_root}/platform/emlib/src/em_ldma.c",
      "${efr32_sdk_root}/platform/emlib/src/em_msc.c",
      "${efr32_sdk_root}/platform/emlib/src/em_prs.c",
      "${efr32_sdk_root}/platform/emlib/src/em_rmu.c",
      "${efr32_sdk_root}/platform/emlib/src/em_rtcc.c",
      "${efr32_sdk_root}/platform/emlib/src/em_se.c",
      "${efr32_sdk_root}/platform/emlib/src/em_system.c",
      "${efr32_sdk_root}/platform/emlib/src/em_timer.c",
      "${efr32_sdk_root}/platform/peripheral/src/peripheral_sysrtc.c",
      "${efr32_sdk_root}/platform/radio/rail_lib/hal/efr32/hal_efr.c",
      "${efr32_sdk_root}/platform/radio/rail_lib/plugin/pa-conversions/pa_conversions_efr32.c",
      "${efr32_sdk_root}/platform/radio/rail_lib/plugin/rail_util_pti/sl_rail_util_pti.c",
      "${efr32_sdk_root}/platform/service/device_init/src/sl_device_init_lfrco.c",
      "${efr32_sdk_root}/platform/service/device_init/src/sl_device_init_nvic.c",
      "${efr32_sdk_root}/platform/service/hfxo_manager/src/sl_hfxo_manager.c",
      "${efr32_sdk_root}/platform/service/legacy_hal/src/token_legacy.c",
      "${efr32_sdk_root}/platform/service/mpu/src/sl_mpu.c",
      "${efr32_sdk_root}/platform/service/power_manager/src/sl_power_manager.c",
      "${efr32_sdk_root}/platform/service/power_manager/src/sl_power_manager_debug.c",
      "${efr32_sdk_root}/platform/service/power_manager/src/sl_power_manager_hal_s0_s1.c",
      "${efr32_sdk_root}/platform/service/power_manager/src/sl_power_manager_hal_s2.c",
      "${efr32_sdk_root}/platform/service/sleeptimer/src/sl_sleeptimer.c",
      "${efr32_sdk_root}/platform/service/sleeptimer/src/sl_sleeptimer_hal_rtcc.c",
      "${efr32_sdk_root}/platform/service/sleeptimer/src/sl_sleeptimer_hal_sysrtc.c",
      "${efr32_sdk_root}/platform/service/system/src/sl_system_init.c",
      "${efr32_sdk_root}/platform/service/system/src/sl_system_kernel.c",
      "${efr32_sdk_root}/platform/service/system/src/sl_system_process_action.c",
      "${efr32_sdk_root}/platform/service/token_manager/src/sl_token_def.c",
      "${efr32_sdk_root}/platform/service/token_manager/src/sl_token_manager.c",
      "${efr32_sdk_root}/platform/service/token_manager/src/sl_token_manufacturing.c",
      "${efr32_sdk_root}/platform/service/udelay/src/sl_udelay.c",
      "${efr32_sdk_root}/platform/service/udelay/src/sl_udelay_armv6m_gcc.S",
      "${efr32_sdk_root}/protocol/bluetooth/src/sl_bt_mbedtls_context.c",
      "${efr32_sdk_root}/protocol/bluetooth/src/sl_bt_stack_init.c",
      "${efr32_sdk_root}/protocol/bluetooth/src/sli_bt_advertiser_config.c",
      "${efr32_sdk_root}/protocol/bluetooth/src/sli_bt_connection_config.c",
      "${efr32_sdk_root}/util/silicon_labs/silabs_core/memory_manager/sl_malloc.c",
      "${efr32_sdk_root}/util/third_party/crypto/mbedtls/library/aes.c",
      "${efr32_sdk_root}/util/third_party/crypto/mbedtls/library/aesni.c",
      "${efr32_sdk_root}/util/third_party/crypto/mbedtls/library/asn1parse.c",
      "${efr32_sdk_root}/util/third_party/crypto/mbedtls/library/asn1write.c",
      "${efr32_sdk_root}/util/third_party/crypto/mbedtls/library/base64.c",
      "${efr32_sdk_root}/util/third_party/crypto/mbedtls/library/bignum.c",
      "${efr32_sdk_root}/util/third_party/crypto/mbedtls/library/camellia.c",
      "${efr32_sdk_root}/util/third_party/crypto/mbedtls/library/ccm.c",
      "${efr32_sdk_root}/util/third_party/crypto/mbedtls/library/chacha20.c",
      "${efr32_sdk_root}/util/third_party/crypto/mbedtls/library/chachapoly.c",
      "${efr32_sdk_root}/util/third_party/crypto/mbedtls/library/cipher.c",
      "${efr32_sdk_root}/util/third_party/crypto/mbedtls/library/cipher_wrap.c",
      "${efr32_sdk_root}/util/third_party/crypto/mbedtls/library/cmac.c",
      "${efr32_sdk_root}/util/third_party/crypto/mbedtls/library/constant_time.c",
      "${efr32_sdk_root}/util/third_party/crypto/mbedtls/library/ctr_drbg.c",
      "${efr32_sdk_root}/util/third_party/crypto/mbedtls/library/debug.c",
      "${efr32_sdk_root}/util/third_party/crypto/mbedtls/library/des.c",
      "${efr32_sdk_root}/util/third_party/crypto/mbedtls/library/dhm.c",
      "${efr32_sdk_root}/util/third_party/crypto/mbedtls/library/ecdh.c",
      "${efr32_sdk_root}/util/third_party/crypto/mbedtls/library/ecdsa.c",
      "${efr32_sdk_root}/util/third_party/crypto/mbedtls/library/ecjpake.c",
      "${efr32_sdk_root}/util/third_party/crypto/mbedtls/library/ecp.c",
      "${efr32_sdk_root}/util/third_party/crypto/mbedtls/library/ecp_curves.c",
      "${efr32_sdk_root}/util/third_party/crypto/mbedtls/library/entropy.c",
      "${efr32_sdk_root}/util/third_party/crypto/mbedtls/library/entropy_poll.c",
      "${efr32_sdk_root}/util/third_party/crypto/mbedtls/library/gcm.c",
      "${efr32_sdk_root}/util/third_party/crypto/mbedtls/library/hkdf.c",
      "${efr32_sdk_root}/util/third_party/crypto/mbedtls/library/hmac_drbg.c",
      "${efr32_sdk_root}/util/third_party/crypto/mbedtls/library/md.c",
      "${efr32_sdk_root}/util/third_party/crypto/mbedtls/library/md5.c",
      "${efr32_sdk_root}/util/third_party/crypto/mbedtls/library/oid.c",
      "${efr32_sdk_root}/util/third_party/crypto/mbedtls/library/pem.c",
      "${efr32_sdk_root}/util/third_party/crypto/mbedtls/library/pk.c",
      "${efr32_sdk_root}/util/third_party/crypto/mbedtls/library/pk_wrap.c",
      "${efr32_sdk_root}/util/third_party/crypto/mbedtls/library/pkcs12.c",
      "${efr32_sdk_root}/util/third_party/crypto/mbedtls/library/pkcs5.c",
      "${efr32_sdk_root}/util/third_party/crypto/mbedtls/library/pkparse.c",
      "${efr32_sdk_root}/util/third_party/crypto/mbedtls/library/pkwrite.c",
      "${efr32_sdk_root}/util/third_party/crypto/mbedtls/library/platform.c",
      "${efr32_sdk_root}/util/third_party/crypto/mbedtls/library/platform_util.c",
      "${efr32_sdk_root}/util/third_party/crypto/mbedtls/library/poly1305.c",
      "${efr32_sdk_root}/util/third_party/crypto/mbedtls/library/psa_crypto.c",
      "${efr32_sdk_root}/util/third_party/crypto/mbedtls/library/psa_crypto_aead.c",
      "${efr32_sdk_root}/util/third_party/crypto/mbedtls/library/psa_crypto_cipher.c",
      "${efr32_sdk_root}/util/third_party/crypto/mbedtls/library/psa_crypto_client.c",
      "${efr32_sdk_root}/util/third_party/crypto/mbedtls/library/psa_crypto_driver_wrappers.c",
      "${efr32_sdk_root}/util/third_party/crypto/mbedtls/library/psa_crypto_ecp.c",
      "${efr32_sdk_root}/util/third_party/crypto/mbedtls/library/psa_crypto_hash.c",
      "${efr32_sdk_root}/util/third_party/crypto/mbedtls/library/psa_crypto_mac.c",
      "${efr32_sdk_root}/util/third_party/crypto/mbedtls/library/psa_crypto_rsa.c",
      "${efr32_sdk_root}/util/third_party/crypto/mbedtls/library/psa_crypto_se.c",
      "${efr32_sdk_root}/util/third_party/crypto/mbedtls/library/psa_crypto_slot_management.c",
      "${efr32_sdk_root}/util/third_party/crypto/mbedtls/library/psa_crypto_storage.c",
      "${efr32_sdk_root}/util/third_party/crypto/mbedtls/library/psa_its_file.c",
      "${efr32_sdk_root}/util/third_party/crypto/mbedtls/library/ripemd160.c",
      "${efr32_sdk_root}/util/third_party/crypto/mbedtls/library/rsa.c",
      "${efr32_sdk_root}/util/third_party/crypto/mbedtls/library/sha1.c",
      "${efr32_sdk_root}/util/third_party/crypto/mbedtls/library/sha256.c",
      "${efr32_sdk_root}/util/third_party/crypto/mbedtls/library/sha512.c",
      "${efr32_sdk_root}/util/third_party/crypto/mbedtls/library/ssl_cache.c",
      "${efr32_sdk_root}/util/third_party/crypto/mbedtls/library/ssl_ciphersuites.c",
      "${efr32_sdk_root}/util/third_party/crypto/mbedtls/library/ssl_cli.c",
      "${efr32_sdk_root}/util/third_party/crypto/mbedtls/library/ssl_cookie.c",
      "${efr32_sdk_root}/util/third_party/crypto/mbedtls/library/ssl_msg.c",
      "${efr32_sdk_root}/util/third_party/crypto/mbedtls/library/ssl_srv.c",
      "${efr32_sdk_root}/util/third_party/crypto/mbedtls/library/ssl_ticket.c",
      "${efr32_sdk_root}/util/third_party/crypto/mbedtls/library/ssl_tls.c",
      "${efr32_sdk_root}/util/third_party/crypto/mbedtls/library/ssl_tls13_keys.c",
      "${efr32_sdk_root}/util/third_party/crypto/mbedtls/library/threading.c",
      "${efr32_sdk_root}/util/third_party/crypto/mbedtls/library/timing.c",
      "${efr32_sdk_root}/util/third_party/crypto/mbedtls/library/version.c",
      "${efr32_sdk_root}/util/third_party/crypto/mbedtls/library/x509.c",
      "${efr32_sdk_root}/util/third_party/crypto/mbedtls/library/x509_create.c",
      "${efr32_sdk_root}/util/third_party/crypto/mbedtls/library/x509_crl.c",
      "${efr32_sdk_root}/util/third_party/crypto/mbedtls/library/x509_crt.c",
      "${efr32_sdk_root}/util/third_party/crypto/mbedtls/library/x509_csr.c",
      "${efr32_sdk_root}/util/third_party/crypto/mbedtls/library/x509write_crt.c",
      "${efr32_sdk_root}/util/third_party/crypto/mbedtls/library/x509write_csr.c",
      "${efr32_sdk_root}/util/third_party/crypto/sl_component/sl_mbedtls_support/src/aes_aes.c",
      "${efr32_sdk_root}/util/third_party/crypto/sl_component/sl_mbedtls_support/src/crypto_aes.c",
      "${efr32_sdk_root}/util/third_party/crypto/sl_component/sl_mbedtls_support/src/crypto_ecp.c",
      "${efr32_sdk_root}/util/third_party/crypto/sl_component/sl_mbedtls_support/src/error.c",
      "${efr32_sdk_root}/util/third_party/crypto/sl_component/sl_mbedtls_support/src/mbedtls_ccm.c",
      "${efr32_sdk_root}/util/third_party/crypto/sl_component/sl_mbedtls_support/src/mbedtls_cmac.c",
      "${efr32_sdk_root}/util/third_party/crypto/sl_component/sl_mbedtls_support/src/mbedtls_ecdsa_ecdh.c",
      "${efr32_sdk_root}/util/third_party/crypto/sl_component/sl_mbedtls_support/src/mbedtls_sha.c",
      "${efr32_sdk_root}/util/third_party/crypto/sl_component/sl_mbedtls_support/src/sl_entropy_hardware.c",
      "${efr32_sdk_root}/util/third_party/crypto/sl_component/sl_mbedtls_support/src/sl_mbedtls.c",
      "${efr32_sdk_root}/util/third_party/crypto/sl_component/sl_mbedtls_support/src/version_features.c",
      "${efr32_sdk_root}/util/third_party/crypto/sl_component/sl_protocol_crypto/src/sli_protocol_crypto_crypto.c",
      "${efr32_sdk_root}/util/third_party/crypto/sl_component/sl_protocol_crypto/src/sli_protocol_crypto_radioaes.c",
      "${efr32_sdk_root}/util/third_party/crypto/sl_component/sl_psa_driver/src/crypto_management.c",
      "${efr32_sdk_root}/util/third_party/crypto/sl_component/sl_psa_driver/src/sl_psa_its_nvm3.c",
      "${efr32_sdk_root}/util/third_party/crypto/sl_component/sl_psa_driver/src/sli_crypto_transparent_driver_aead.c",
      "${efr32_sdk_root}/util/third_party/crypto/sl_component/sl_psa_driver/src/sli_crypto_transparent_driver_cipher.c",
      "${efr32_sdk_root}/util/third_party/crypto/sl_component/sl_psa_driver/src/sli_crypto_transparent_driver_hash.c",
      "${efr32_sdk_root}/util/third_party/crypto/sl_component/sl_psa_driver/src/sli_crypto_transparent_driver_mac.c",
      "${efr32_sdk_root}/util/third_party/crypto/sl_component/sl_psa_driver/src/sli_crypto_trng_driver.c",
      "${efr32_sdk_root}/util/third_party/crypto/sl_component/sl_psa_driver/src/sli_psa_driver_common.c",
      "${efr32_sdk_root}/util/third_party/crypto/sl_component/sl_psa_driver/src/sli_psa_driver_init.c",
      "${efr32_sdk_root}/util/third_party/crypto/sl_component/sl_psa_driver/src/sli_psa_trng.c",
      "${efr32_sdk_root}/util/third_party/crypto/sl_component/sl_psa_driver/src/sli_se_driver_builtin_keys.c",
      "${efr32_sdk_root}/util/third_party/crypto/sl_component/sl_psa_driver/src/sli_se_driver_signature.c",
      "${efr32_sdk_root}/util/third_party/freertos/cmsis/Source/cmsis_os2.c",
      "${efr32_sdk_root}/util/third_party/freertos/kernel/croutine.c",
      "${efr32_sdk_root}/util/third_party/freertos/kernel/event_groups.c",
      "${efr32_sdk_root}/util/third_party/freertos/kernel/list.c",
      "${efr32_sdk_root}/util/third_party/freertos/kernel/queue.c",
      "${efr32_sdk_root}/util/third_party/freertos/kernel/stream_buffer.c",
      "${efr32_sdk_root}/util/third_party/freertos/kernel/tasks.c",
      "${efr32_sdk_root}/util/third_party/freertos/kernel/timers.c",
      "${sdk_support_root}/matter/efr32/${efr32_family}/${efr32_board}/autogen/sl_board_default_init.c",
      "${sdk_support_root}/matter/efr32/${efr32_family}/${efr32_board}/autogen/sl_device_init_clocks.c",
      "${sdk_support_root}/matter/efr32/${efr32_family}/${efr32_board}/autogen/sl_event_handler.c",
      "${sdk_support_root}/matter/efr32/${efr32_family}/${efr32_board}/autogen/sl_simple_button_instances.c",
      "${sdk_support_root}/matter/efr32/${efr32_family}/${efr32_board}/autogen/sl_simple_led_instances.c",
    ]

    if (defined(invoker.enable_sleepy_device)) {
      if (invoker.enable_sleepy_device) {
        sources += [ "${efr32_sdk_root}/util/third_party/freertos/kernel/portable/SiliconLabs/tick_power_manager.c" ]
      }
    }

    if (defined(enable_fem)) {
      sources += [
        "${efr32_sdk_root}/util/plugin/plugin-common/fem-control/fem-control.c",
      ]
    }

    # USART sources files
    if ((defined(invoker.chip_enable_pw_rpc) && invoker.chip_enable_pw_rpc) ||
        chip_build_libshell || enable_openthread_cli ||
        (defined(invoker.use_wf200) && invoker.use_wf200) ||
        (defined(invoker.show_qr_code) && invoker.show_qr_code) ||
        (defined(invoker.disable_lcd) && !invoker.disable_lcd) ||
        (defined(invoker.use_external_flash) && use_external_flash)) {
      sources += [
        "${efr32_sdk_root}/hardware/driver/memlcd/src/memlcd_usart/sl_memlcd_spi.c",
        "${efr32_sdk_root}/platform/emdrv/uartdrv/src/uartdrv.c",
        "${efr32_sdk_root}/platform/emlib/src/em_eusart.c",
        "${efr32_sdk_root}/platform/emlib/src/em_leuart.c",
        "${efr32_sdk_root}/platform/emlib/src/em_usart.c",
        "${sdk_support_root}/matter/efr32/${efr32_family}/${efr32_board}/autogen/sl_uartdrv_init.c",
      ]

      if (defined(invoker.use_external_flash) && use_external_flash) {
        sources += [ "${efr32_sdk_root}/hardware/driver/mx25_flash_shutdown/src/sl_mx25_flash_shutdown_usart/sl_mx25_flash_shutdown.c" ]
      }
    }

    if ((defined(invoker.show_qr_code) && invoker.show_qr_code) ||
        (defined(invoker.disable_lcd) && !invoker.disable_lcd)) {
      sources += [
        "${efr32_sdk_root}/hardware/driver/memlcd/src/sl_memlcd.c",
        "${efr32_sdk_root}/hardware/driver/memlcd/src/sl_memlcd_display.c",
        "${efr32_sdk_root}/platform/middleware/glib/dmd/display/dmd_memlcd.c",
        "${efr32_sdk_root}/platform/middleware/glib/glib/bmp.c",
        "${efr32_sdk_root}/platform/middleware/glib/glib/glib.c",
        "${efr32_sdk_root}/platform/middleware/glib/glib/glib_bitmap.c",
        "${efr32_sdk_root}/platform/middleware/glib/glib/glib_circle.c",
        "${efr32_sdk_root}/platform/middleware/glib/glib/glib_font_narrow_6x8.c",
        "${efr32_sdk_root}/platform/middleware/glib/glib/glib_font_normal_8x8.c",
        "${efr32_sdk_root}/platform/middleware/glib/glib/glib_font_number_16x20.c",
        "${efr32_sdk_root}/platform/middleware/glib/glib/glib_line.c",
        "${efr32_sdk_root}/platform/middleware/glib/glib/glib_polygon.c",
        "${efr32_sdk_root}/platform/middleware/glib/glib/glib_rectangle.c",
        "${efr32_sdk_root}/platform/middleware/glib/glib/glib_string.c",
      ]
    }

    if (use_wf200) {
      sources += [
        "${efr32_sdk_root}/platform/radio/wifi/wfx_fmac_driver/bus/sl_wfx_bus.c",
        "${efr32_sdk_root}/platform/radio/wifi/wfx_fmac_driver/bus/sl_wfx_bus_spi.c",
        "${efr32_sdk_root}/platform/radio/wifi/wfx_fmac_driver/secure_link/sl_wfx_secure_link.c",
        "${efr32_sdk_root}/platform/radio/wifi/wfx_fmac_driver/sl_wfx.c",
      ]
    }

    if (efr32_family == "efr32mg12") {
      sources += [
        "${efr32_sdk_root}/platform/Device/SiliconLabs/EFR32MG12P/Source/startup_efr32mg12p.c",
        "${efr32_sdk_root}/platform/Device/SiliconLabs/EFR32MG12P/Source/system_efr32mg12p.c",
        "${efr32_sdk_root}/platform/service/device_init/src/sl_device_init_dcdc_s1.c",
        "${efr32_sdk_root}/platform/service/device_init/src/sl_device_init_emu_s1.c",
        "${efr32_sdk_root}/platform/service/device_init/src/sl_device_init_hfxo_s1.c",
        "${efr32_sdk_root}/platform/service/device_init/src/sl_device_init_lfxo_s1.c",
        "${efr32_sdk_root}/util/third_party/freertos/kernel/portable/GCC/ARM_CM4F/port.c",
      ]
    } else if (efr32_family == "efr32mg21") {
      sources += [
        "${efr32_sdk_root}/platform/Device/SiliconLabs/EFR32MG21/Source/startup_efr32mg21.c",
        "${efr32_sdk_root}/platform/Device/SiliconLabs/EFR32MG21/Source/system_efr32mg21.c",
        "${efr32_sdk_root}/platform/radio/rail_lib/plugin/rail_util_rf_path/sl_rail_util_rf_path.c",
        "${efr32_sdk_root}/platform/service/device_init/src/sl_device_init_emu_s2.c",
        "${efr32_sdk_root}/platform/service/device_init/src/sl_device_init_hfrco.c",
        "${efr32_sdk_root}/platform/service/device_init/src/sl_device_init_hfxo_s2.c",
        "${efr32_sdk_root}/platform/service/device_init/src/sl_device_init_lfxo_s2.c",
        "${efr32_sdk_root}/platform/service/hfxo_manager/src/sl_hfxo_manager_hal_s2.c",
        "${efr32_sdk_root}/util/third_party/crypto/sl_component/se_manager/src/sl_se_manager.c",
        "${efr32_sdk_root}/util/third_party/crypto/sl_component/se_manager/src/sl_se_manager_cipher.c",
        "${efr32_sdk_root}/util/third_party/crypto/sl_component/se_manager/src/sl_se_manager_entropy.c",
        "${efr32_sdk_root}/util/third_party/crypto/sl_component/se_manager/src/sl_se_manager_hash.c",
        "${efr32_sdk_root}/util/third_party/crypto/sl_component/se_manager/src/sl_se_manager_key_derivation.c",
        "${efr32_sdk_root}/util/third_party/crypto/sl_component/se_manager/src/sl_se_manager_key_handling.c",
        "${efr32_sdk_root}/util/third_party/crypto/sl_component/se_manager/src/sl_se_manager_signature.c",
        "${efr32_sdk_root}/util/third_party/crypto/sl_component/se_manager/src/sl_se_manager_util.c",
        "${efr32_sdk_root}/util/third_party/crypto/sl_component/sl_alt/source/sl_se_management.c",
        "${efr32_sdk_root}/util/third_party/crypto/sl_component/sl_mbedtls_support/src/se_aes.c",
        "${efr32_sdk_root}/util/third_party/crypto/sl_component/sl_mbedtls_support/src/se_gcm.c",
        "${efr32_sdk_root}/util/third_party/crypto/sl_component/sl_mbedtls_support/src/se_jpake.c",
        "${efr32_sdk_root}/util/third_party/crypto/sl_component/sl_protocol_crypto/src/sli_radioaes_management.c",
        "${efr32_sdk_root}/util/third_party/crypto/sl_component/sl_psa_driver/src/sli_se_driver_aead.c",
        "${efr32_sdk_root}/util/third_party/crypto/sl_component/sl_psa_driver/src/sli_se_driver_cipher.c",
        "${efr32_sdk_root}/util/third_party/crypto/sl_component/sl_psa_driver/src/sli_se_driver_key_derivation.c",
        "${efr32_sdk_root}/util/third_party/crypto/sl_component/sl_psa_driver/src/sli_se_driver_key_management.c",
        "${efr32_sdk_root}/util/third_party/crypto/sl_component/sl_psa_driver/src/sli_se_driver_mac.c",
        "${efr32_sdk_root}/util/third_party/crypto/sl_component/sl_psa_driver/src/sli_se_opaque_driver_aead.c",
        "${efr32_sdk_root}/util/third_party/crypto/sl_component/sl_psa_driver/src/sli_se_opaque_driver_cipher.c",
        "${efr32_sdk_root}/util/third_party/crypto/sl_component/sl_psa_driver/src/sli_se_opaque_driver_mac.c",
        "${efr32_sdk_root}/util/third_party/crypto/sl_component/sl_psa_driver/src/sli_se_opaque_key_derivation.c",
        "${efr32_sdk_root}/util/third_party/crypto/sl_component/sl_psa_driver/src/sli_se_transparent_driver_cipher.c",
        "${efr32_sdk_root}/util/third_party/crypto/sl_component/sl_psa_driver/src/sli_se_transparent_driver_hash.c",
        "${efr32_sdk_root}/util/third_party/crypto/sl_component/sl_psa_driver/src/sli_se_transparent_driver_mac.c",
        "${efr32_sdk_root}/util/third_party/crypto/sl_component/sl_psa_driver/src/sli_se_transparent_key_derivation.c",
        "${efr32_sdk_root}/util/third_party/freertos/kernel/portable/GCC/ARM_CM33_NTZ/non_secure/port.c",
        "${efr32_sdk_root}/util/third_party/freertos/kernel/portable/GCC/ARM_CM33_NTZ/non_secure/portasm.c",
      ]
    } else if (efr32_family == "efr32mg24") {
      sources += [
        "${efr32_sdk_root}/platform/Device/SiliconLabs/EFR32MG24/Source/startup_efr32mg24.c",
        "${efr32_sdk_root}/platform/Device/SiliconLabs/EFR32MG24/Source/system_efr32mg24.c",
        "${efr32_sdk_root}/platform/radio/rail_lib/plugin/pa-conversions/pa_curves_efr32.c",
        "${efr32_sdk_root}/platform/service/device_init/src/sl_device_init_dcdc_s2.c",
        "${efr32_sdk_root}/platform/service/device_init/src/sl_device_init_dpll_s2.c",
        "${efr32_sdk_root}/platform/service/device_init/src/sl_device_init_emu_s2.c",
        "${efr32_sdk_root}/platform/service/device_init/src/sl_device_init_hfxo_s2.c",
        "${efr32_sdk_root}/platform/service/device_init/src/sl_device_init_lfxo_s2.c",
        "${efr32_sdk_root}/platform/service/hfxo_manager/src/sl_hfxo_manager_hal_s2.c",
        "${efr32_sdk_root}/util/third_party/crypto/sl_component/se_manager/src/sl_se_manager.c",
        "${efr32_sdk_root}/util/third_party/crypto/sl_component/se_manager/src/sl_se_manager_attestation.c",
        "${efr32_sdk_root}/util/third_party/crypto/sl_component/se_manager/src/sl_se_manager_cipher.c",
        "${efr32_sdk_root}/util/third_party/crypto/sl_component/se_manager/src/sl_se_manager_entropy.c",
        "${efr32_sdk_root}/util/third_party/crypto/sl_component/se_manager/src/sl_se_manager_hash.c",
        "${efr32_sdk_root}/util/third_party/crypto/sl_component/se_manager/src/sl_se_manager_key_derivation.c",
        "${efr32_sdk_root}/util/third_party/crypto/sl_component/se_manager/src/sl_se_manager_key_handling.c",
        "${efr32_sdk_root}/util/third_party/crypto/sl_component/se_manager/src/sl_se_manager_signature.c",
        "${efr32_sdk_root}/util/third_party/crypto/sl_component/se_manager/src/sl_se_manager_util.c",
        "${efr32_sdk_root}/util/third_party/crypto/sl_component/sl_mbedtls_support/src/se_aes.c",
        "${efr32_sdk_root}/util/third_party/crypto/sl_component/sl_mbedtls_support/src/se_jpake.c",
        "${efr32_sdk_root}/util/third_party/crypto/sl_component/sl_protocol_crypto/src/sli_radioaes_management.c",
        "${efr32_sdk_root}/util/third_party/crypto/sl_component/sl_psa_driver/src/sli_se_driver_aead.c",
        "${efr32_sdk_root}/util/third_party/crypto/sl_component/sl_psa_driver/src/sli_se_driver_cipher.c",
        "${efr32_sdk_root}/util/third_party/crypto/sl_component/sl_psa_driver/src/sli_se_driver_key_derivation.c",
        "${efr32_sdk_root}/util/third_party/crypto/sl_component/sl_psa_driver/src/sli_se_driver_key_management.c",
        "${efr32_sdk_root}/util/third_party/crypto/sl_component/sl_psa_driver/src/sli_se_driver_mac.c",
        "${efr32_sdk_root}/util/third_party/crypto/sl_component/sl_psa_driver/src/sli_se_opaque_driver_aead.c",
        "${efr32_sdk_root}/util/third_party/crypto/sl_component/sl_psa_driver/src/sli_se_opaque_driver_cipher.c",
        "${efr32_sdk_root}/util/third_party/crypto/sl_component/sl_psa_driver/src/sli_se_opaque_driver_mac.c",
        "${efr32_sdk_root}/util/third_party/crypto/sl_component/sl_psa_driver/src/sli_se_opaque_key_derivation.c",
        "${efr32_sdk_root}/util/third_party/crypto/sl_component/sl_psa_driver/src/sli_se_transparent_driver_aead.c",
        "${efr32_sdk_root}/util/third_party/crypto/sl_component/sl_psa_driver/src/sli_se_transparent_driver_cipher.c",
        "${efr32_sdk_root}/util/third_party/crypto/sl_component/sl_psa_driver/src/sli_se_transparent_driver_hash.c",
        "${efr32_sdk_root}/util/third_party/crypto/sl_component/sl_psa_driver/src/sli_se_transparent_driver_mac.c",
        "${efr32_sdk_root}/util/third_party/crypto/sl_component/sl_psa_driver/src/sli_se_transparent_key_derivation.c",
        "${efr32_sdk_root}/util/third_party/freertos/kernel/portable/GCC/ARM_CM33_NTZ/non_secure/port.c",
        "${efr32_sdk_root}/util/third_party/freertos/kernel/portable/GCC/ARM_CM33_NTZ/non_secure/portasm.c",
      ]
    }

    public_deps = [
      ":efr32_mbedtls_config",
      "${segger_rtt_root}:segger_rtt",
      "${segger_rtt_root}:segger_rtt_printf",
      "${segger_rtt_root}:segger_rtt_syscalls",
    ]

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

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