# 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/freertos.gni")
import("${chip_root}/config/standalone/args.gni")
import("${chip_root}/examples/platform/cc13x4_26x4/args.gni")

ti_simplelink_sdk_target = get_label_info(":sdk", "label_no_toolchain")
ti_simplelink_sysconfig_target =
    get_label_info(":sysconfig", "label_no_toolchain")

ti_simplelink_board = "LP_EM_CC1354P10_6"

# Size Optimizations
# use -Os instead of -Og, LWIP release build
optimize_debug_level = "s"
lwip_debug = false

chip_enable_ota_requestor = true

ot_ti_lib_dir = ""
openthread_external_platform =
    "${chip_root}/third_party/openthread/platforms/ti:libopenthread-ti"

# When using TI Certified Openthread libs set to ${chip_root}/third_party/openthread/platforms/ti:ot-ti-cert
# For source builds, set to empty string.
chip_openthread_target =
    "${chip_root}/third_party/openthread/platforms/ti:ot-ti-cert"

chip_openthread_ftd = true

# Disable CHIP Logging
chip_progress_logging = true
chip_detail_logging = true
chip_automation_logging = true

# BLE options
chip_config_network_layer_ble = true

# Disable lock tracking, since our FreeRTOS configuration does not set
# INCLUDE_xSemaphoreGetMutexHolder
chip_stack_lock_tracking = "none"

matter_device_vid = "0xFFF1"
matter_device_pid = "0x800A"
matter_software_ver = "0x0001"
matter_software_ver_str = "1.0.1+1"

custom_factory_data = true

# ICD Default configurations
chip_enable_icd_server = false
chip_persist_subscriptions = false
chip_subscription_timeout_resumption = false

freertos_root = "//third_party/connectedhomeip/third_party/ti_simplelink_sdk/repo_cc13xx_cc26xx/source/third_party/freertos"

if (chip_openthread_target != "") {
  openthread_root =
      "//third_party/connectedhomeip/third_party/openthread/ot-ti/openthread"
}
