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

import("//build_overrides/asr.gni")

# Defines an asr SDK build target.
#
# Parameters:
#   sources - The sources files to build.
#
template("asr_sdk_sources") {
  if (defined(invoker.asr_project_dir)) {
    asr_project_dir = invoker.asr_project_dir
  }

  # While most asr sdk includes come from the asr_sdk_config config (in
  # BUILD.gn), this template gets instantiated by each project each of which
  # provides a few extra includes/defines. Handle those here.
  config("project_configs") {
    include_dirs = []
    if (defined(invoker.include_dirs)) {
      include_dirs += invoker.include_dirs
    }
    include_dirs += [ "${asr_project_dir}/include" ]

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

  sdk_target_name = target_name

  # Add sources here
  source_set(sdk_target_name) {
    sources = []
    if (defined(invoker.sources)) {
      sources += invoker.sources
    }

    _third_party_src = [
      #at
      "at_cmd/atcmd_comm.c",
      "at_cmd/atcmd_user.c",
      "at_cmd/atcmd_matter.c",

      #peripheral
      "peripheral/duet/src/duet_boot.c",
      "peripheral/duet/src/duet_board.c",
      "peripheral/duet/src/duet_efuse.c",
      "peripheral/duet/src/duet_flash.c",
      "peripheral/duet/src/duet_flash_alg.c",
      "peripheral/duet/src/duet_wdg.c",
      "peripheral/duet/src/duet_timer.c",
      "peripheral/duet/src/duet_gpio.c",
      "peripheral/duet/src/duet_i2c.c",
      "peripheral/duet/src/duet_rf_spi.c",
      "peripheral/duet/src/duet_pwm.c",
      "peripheral/duet/src/duet_rtc.c",
      "peripheral/duet/src/duet_pinmux.c",
      "peripheral/duet/src/duet_uart.c",
      "peripheral/duet/src/duet_adc.c",
      "peripheral/duet/src/duet_dma.c",

      #platform
      "platform/duet/system/sysCalls.c",
      "platform/duet/system/soc_init.c",
      "platform/duet/system/printf_uart.c",
      "platform/duet/system/printf-stdarg.c",
      "platform/duet/system/system_cm4.c",
      "platform/duet/system/startup_cm4.S",
      "platform/duet/ethernetif_wifi.c",

      #rtos
      "platform/duet/lega_rtos.c",
      "freertos/Source/croutine.c",
      "freertos/Source/event_groups.c",
      "freertos/Source/list.c",
      "freertos/Source/queue.c",
      "freertos/Source/tasks.c",
      "freertos/Source/timers.c",
      "freertos/Source/portable/MemMang/heap_5.c",
      "freertos/Source/portable/GCC/ARM_CM4F/port.c",

      #ble
      "demo/matter_demo/app/ble_demo/duet_hl_matter/app.c",
      "demo/matter_demo/app/ble_demo/duet_hl_matter/user_platform.c",

      #matter
      "matter/asr_factory_config.c",

      #elog
      "common/duet/easylogger/elog_async.c",
      "common/duet/easylogger/elog_buf.c",
      "common/duet/easylogger/elog_module.c",
      "common/duet/easylogger/elog_port.c",
      "common/duet/easylogger/elog_utils.c",
      "common/duet/easylogger/elog.c",

      #lwip
      "lwip/lwip_2.1.2/netif/ethernet.c",
      "lwip/lwip_2.1.2/port/sys_arch.c",
      "lwip/lwip_2.1.2/api/api_lib.c",
      "lwip/lwip_2.1.2/api/api_msg.c",
      "lwip/lwip_2.1.2/api/err.c",
      "lwip/lwip_2.1.2/api/if_api.c",
      "lwip/lwip_2.1.2/api/netbuf.c",
      "lwip/lwip_2.1.2/api/netdb.c",
      "lwip/lwip_2.1.2/api/netifapi.c",
      "lwip/lwip_2.1.2/api/sockets.c",
      "lwip/lwip_2.1.2/api/tcpip.c",
      "lwip/lwip_2.1.2/core/altcp.c",
      "lwip/lwip_2.1.2/core/altcp_alloc.c",
      "lwip/lwip_2.1.2/core/altcp_tcp.c",
      "lwip/lwip_2.1.2/core/def.c",
      "lwip/lwip_2.1.2/core/dns.c",
      "lwip/lwip_2.1.2/core/inet_chksum.c",
      "lwip/lwip_2.1.2/core/init.c",
      "lwip/lwip_2.1.2/core/ip.c",
      "lwip/lwip_2.1.2/core/ipv4/autoip.c",
      "lwip/lwip_2.1.2/core/ipv4/dhcp.c",
      "lwip/lwip_2.1.2/core/ipv4/etharp.c",
      "lwip/lwip_2.1.2/core/ipv4/icmp.c",
      "lwip/lwip_2.1.2/core/ipv4/igmp.c",
      "lwip/lwip_2.1.2/core/ipv4/ip4.c",
      "lwip/lwip_2.1.2/core/ipv4/ip4_addr.c",
      "lwip/lwip_2.1.2/core/ipv4/ip4_frag.c",
      "lwip/lwip_2.1.2/core/ipv6/dhcp6.c",
      "lwip/lwip_2.1.2/core/ipv6/ethip6.c",
      "lwip/lwip_2.1.2/core/ipv6/icmp6.c",
      "lwip/lwip_2.1.2/core/ipv6/inet6.c",
      "lwip/lwip_2.1.2/core/ipv6/ip6.c",
      "lwip/lwip_2.1.2/core/ipv6/ip6_addr.c",
      "lwip/lwip_2.1.2/core/ipv6/ip6_frag.c",
      "lwip/lwip_2.1.2/core/ipv6/mld6.c",
      "lwip/lwip_2.1.2/core/ipv6/nd6.c",
      "lwip/lwip_2.1.2/core/lwip_hooks.c",
      "lwip/lwip_2.1.2/core/mem.c",
      "lwip/lwip_2.1.2/core/memp.c",
      "lwip/lwip_2.1.2/core/netif.c",
      "lwip/lwip_2.1.2/core/pbuf.c",
      "lwip/lwip_2.1.2/core/raw.c",
      "lwip/lwip_2.1.2/core/stats.c",
      "lwip/lwip_2.1.2/core/sys.c",
      "lwip/lwip_2.1.2/core/tcp.c",
      "lwip/lwip_2.1.2/core/tcp_in.c",
      "lwip/lwip_2.1.2/core/tcp_out.c",
      "lwip/lwip_2.1.2/core/timeouts.c",
      "lwip/lwip_2.1.2/core/udp.c",

      #mbedtls
      "lwip/mbedtls-mbedtls-2.18/library/aes.c",
      "lwip/mbedtls-mbedtls-2.18/library/aesni.c",
      "lwip/mbedtls-mbedtls-2.18/library/arc4.c",
      "lwip/mbedtls-mbedtls-2.18/library/aria.c",
      "lwip/mbedtls-mbedtls-2.18/library/asn1parse.c",
      "lwip/mbedtls-mbedtls-2.18/library/asn1write.c",
      "lwip/mbedtls-mbedtls-2.18/library/base64.c",
      "lwip/mbedtls-mbedtls-2.18/library/bignum.c",
      "lwip/mbedtls-mbedtls-2.18/library/blowfish.c",
      "lwip/mbedtls-mbedtls-2.18/library/camellia.c",
      "lwip/mbedtls-mbedtls-2.18/library/ccm.c",
      "lwip/mbedtls-mbedtls-2.18/library/certs.c",
      "lwip/mbedtls-mbedtls-2.18/library/chacha20.c",
      "lwip/mbedtls-mbedtls-2.18/library/chachapoly.c",
      "lwip/mbedtls-mbedtls-2.18/library/cipher.c",
      "lwip/mbedtls-mbedtls-2.18/library/cipher_wrap.c",
      "lwip/mbedtls-mbedtls-2.18/library/cmac.c",
      "lwip/mbedtls-mbedtls-2.18/library/ctr_drbg.c",
      "lwip/mbedtls-mbedtls-2.18/library/debug.c",
      "lwip/mbedtls-mbedtls-2.18/library/des.c",
      "lwip/mbedtls-mbedtls-2.18/library/dhm.c",
      "lwip/mbedtls-mbedtls-2.18/library/ecdh.c",
      "lwip/mbedtls-mbedtls-2.18/library/ecdsa.c",
      "lwip/mbedtls-mbedtls-2.18/library/ecjpake.c",
      "lwip/mbedtls-mbedtls-2.18/library/ecp.c",
      "lwip/mbedtls-mbedtls-2.18/library/ecp_curves.c",
      "lwip/mbedtls-mbedtls-2.18/library/entropy.c",
      "lwip/mbedtls-mbedtls-2.18/library/entropy_poll.c",
      "lwip/mbedtls-mbedtls-2.18/library/error.c",
      "lwip/mbedtls-mbedtls-2.18/library/gcm.c",
      "lwip/mbedtls-mbedtls-2.18/library/havege.c",
      "lwip/mbedtls-mbedtls-2.18/library/hkdf.c",
      "lwip/mbedtls-mbedtls-2.18/library/hmac_drbg.c",
      "lwip/mbedtls-mbedtls-2.18/library/md.c",
      "lwip/mbedtls-mbedtls-2.18/library/md2.c",
      "lwip/mbedtls-mbedtls-2.18/library/md4.c",
      "lwip/mbedtls-mbedtls-2.18/library/md5.c",
      "lwip/mbedtls-mbedtls-2.18/library/md_wrap.c",
      "lwip/mbedtls-mbedtls-2.18/library/memory_buffer_alloc.c",
      "lwip/mbedtls-mbedtls-2.18/library/nist_kw.c",
      "lwip/mbedtls-mbedtls-2.18/library/oid.c",
      "lwip/mbedtls-mbedtls-2.18/library/padlock.c",
      "lwip/mbedtls-mbedtls-2.18/library/pem.c",
      "lwip/mbedtls-mbedtls-2.18/library/pk.c",
      "lwip/mbedtls-mbedtls-2.18/library/pk_wrap.c",
      "lwip/mbedtls-mbedtls-2.18/library/pkcs11.c",
      "lwip/mbedtls-mbedtls-2.18/library/pkcs12.c",
      "lwip/mbedtls-mbedtls-2.18/library/pkcs5.c",
      "lwip/mbedtls-mbedtls-2.18/library/pkparse.c",
      "lwip/mbedtls-mbedtls-2.18/library/pkwrite.c",
      "lwip/mbedtls-mbedtls-2.18/library/platform.c",
      "lwip/mbedtls-mbedtls-2.18/library/platform_util.c",
      "lwip/mbedtls-mbedtls-2.18/library/poly1305.c",
      "lwip/mbedtls-mbedtls-2.18/library/ripemd160.c",
      "lwip/mbedtls-mbedtls-2.18/library/rsa.c",
      "lwip/mbedtls-mbedtls-2.18/library/rsa_internal.c",
      "lwip/mbedtls-mbedtls-2.18/library/sha1.c",
      "lwip/mbedtls-mbedtls-2.18/library/sha256.c",
      "lwip/mbedtls-mbedtls-2.18/library/sha512.c",
      "lwip/mbedtls-mbedtls-2.18/library/ssl_cache.c",
      "lwip/mbedtls-mbedtls-2.18/library/ssl_ciphersuites.c",
      "lwip/mbedtls-mbedtls-2.18/library/ssl_cli.c",
      "lwip/mbedtls-mbedtls-2.18/library/ssl_cookie.c",
      "lwip/mbedtls-mbedtls-2.18/library/ssl_srv.c",
      "lwip/mbedtls-mbedtls-2.18/library/ssl_ticket.c",
      "lwip/mbedtls-mbedtls-2.18/library/ssl_tls.c",
      "lwip/mbedtls-mbedtls-2.18/library/threading.c",
      "lwip/mbedtls-mbedtls-2.18/library/timing.c",
      "lwip/mbedtls-mbedtls-2.18/library/version.c",
      "lwip/mbedtls-mbedtls-2.18/library/version_features.c",
      "lwip/mbedtls-mbedtls-2.18/library/x509.c",
      "lwip/mbedtls-mbedtls-2.18/library/x509_create.c",
      "lwip/mbedtls-mbedtls-2.18/library/x509_crl.c",
      "lwip/mbedtls-mbedtls-2.18/library/x509_crt.c",
      "lwip/mbedtls-mbedtls-2.18/library/x509_csr.c",
      "lwip/mbedtls-mbedtls-2.18/library/x509write_crt.c",
      "lwip/mbedtls-mbedtls-2.18/library/x509write_csr.c",
      "lwip/mbedtls-mbedtls-2.18/library/xtea.c",
      "lwip/mbedtls-mbedtls-2.18/asr_mbedtls/alt/entropy_hardware_alt.c",
      "lwip/mbedtls-mbedtls-2.18/asr_mbedtls/alt/aes_alt.c",
      "lwip/mbedtls-mbedtls-2.18/asr_mbedtls/alt/sha1_alt.c",
      "lwip/mbedtls-mbedtls-2.18/asr_mbedtls/alt/sha256_alt.c",
    ]

    foreach(src, _third_party_src) {
      sources += [ rebase_path(src,
                               "${asr_project_dir}",
                               "${asr_sdk_build_root}/asr_sdk/") ]
    }

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

    public_configs = [ ":project_configs" ]
    if (defined(invoker.public_configs)) {
      public_configs += invoker.public_configs
    }
  }
}
