; Common settings for ESP32 OG (without suffix)
; See 'esp32_common' for common ESP32-family settings
[esp32_base]
extends = esp32_common
custom_esp32_kind = esp32

build_src_filter =
  ${esp32_common.build_src_filter}
  -<modules/esp32/PaxcounterModule.cpp>
  -<mesh/http/>

build_flags =
  ${esp32_common.build_flags}
  -mtext-section-literals
  -D ESP32_FORCE_IRAM_MEMSET
  -Wl,--wrap=memset
  -Wl,--wrap=memcpy
  -DMESHTASTIC_EXCLUDE_AUDIO=1
  -DMESHTASTIC_EXCLUDE_ACCELEROMETER=1
  -DMESHTASTIC_EXCLUDE_PAXCOUNTER=1
  -DMESHTASTIC_EXCLUDE_WEBSERVER=1
  -DMESHTASTIC_EXCLUDE_RANGETEST=1
  ; HACK HACK HACK this is just a proof of concept ESP32+NimBLE but these
  ; includes need to be done properly somehow
  -I${platformio.packages_dir}/framework-espidf/components/bt/host/nimble/nimble/nimble/host/include
  -I${platformio.packages_dir}/framework-espidf/components/bt/host/nimble/nimble/nimble/include
  -I${platformio.packages_dir}/framework-espidf/components/bt/host/nimble/nimble/porting/nimble/include
  -I${platformio.packages_dir}/framework-espidf/components/bt/host/nimble/port/include
  -I${platformio.packages_dir}/framework-espidf/components/bt/host/nimble/nimble/porting/npl/freertos/include
  -I${platformio.packages_dir}/framework-espidf/components/bt/host/nimble/nimble/nimble/transport/include
  -I${platformio.packages_dir}/framework-espidf/components/bt/host/nimble/nimble/nimble/host/services/gap/include
  -I${platformio.packages_dir}/framework-espidf/components/bt/host/nimble/esp-hci/include
  -I${platformio.packages_dir}/framework-espidf/components/bt/host/nimble/nimble/nimble/host/services/gatt/include
  -I${platformio.packages_dir}/framework-espidf/components/bt/host/nimble/nimble/nimble/host/util/include

custom_sdkconfig =
  ${esp32_common.custom_sdkconfig}
  CONFIG_BTDM_CTRL_MODE_BLE_ONLY=y
  '# CONFIG_BTDM_CTRL_MODE_BR_EDR_ONLY is not set'
  '# CONFIG_BTDM_CTRL_MODE_BTDM is not set'
  '# CONFIG_BT_BLUEDROID_ENABLED is not set'
  CONFIG_BT_NIMBLE_ENABLED=y
  CONFIG_SPI_FLASH_SUPPORT_BOYA_CHIP=y

; Override lib_deps to use environmental_extra_no_bsec instead of environmental_extra
; BSEC library uses ~3.5KB DRAM which causes overflow on original ESP32 targets
lib_deps =
  ${arduino_base.lib_deps}
  ${networking_base.lib_deps}
  ${networking_extra.lib_deps}
  ${radiolib_base.lib_deps}
  ${environmental_base.lib_deps}
  ${environmental_extra_no_bsec.lib_deps}
  # TODO renovate
  https://github.com/mverch67/libpax/archive/6f52ee989301cdabaeef00bcbf93bff55708ce2f.zip
  # renovate: datasource=custom.pio depName=XPowersLib packageName=lewisxhe/library/XPowersLib
  lewisxhe/XPowersLib@0.3.3
  # renovate: datasource=git-refs depName=meshtastic/Crypto packageName=https://github.com/meshtastic/Crypto gitBranch=master
  https://github.com/meshtastic/Crypto/archive/1aa30eb536bd52a576fde6dfa393bf7349cf102d.zip
