[stm32_base]
extends = arduino_base
platform =
  # renovate: datasource=custom.pio depName=platformio/ststm32 packageName=platformio/platform/ststm32
  platformio/ststm32@19.3.0
platform_packages =
  # TODO renovate
  platformio/framework-arduinoststm32@https://github.com/stm32duino/Arduino_Core_STM32/archive/2.10.1.zip
extra_scripts =
  ${env.extra_scripts}
  post:extra_scripts/extra_stm32.py

build_type = release

build_flags =
  ${arduino_base.build_flags}
  -flto
  -Isrc/platform/stm32wl -g
  -DMESHTASTIC_EXCLUDE_AUDIO=1
  -DMESHTASTIC_EXCLUDE_ATAK=1 ; ATAK is quite big, disable it for big flash savings.
  -DMESHTASTIC_EXCLUDE_INPUTBROKER=1
  -DMESHTASTIC_EXCLUDE_POWERMON=1
  -DMESHTASTIC_EXCLUDE_SCREEN=1
  -DMESHTASTIC_EXCLUDE_MQTT=1
  -DMESHTASTIC_EXCLUDE_BLUETOOTH=1
  -DMESHTASTIC_EXCLUDE_WIFI=1
  -DMESHTASTIC_EXCLUDE_TZ=1 ; Exclude TZ to save some flash space.
  -DSERIAL_RX_BUFFER_SIZE=256 ; For GPS - the default of 64 is too small.
  -DHAS_SCREEN=0 ; Always disable screen for STM32, it is not supported.
  -DPIO_FRAMEWORK_ARDUINO_NANOLIB_FLOAT_PRINTF ; This is REQUIRED for at least traceroute debug prints - without it the length ends up uninitialized.
  -DDEBUG_MUTE ; You can #undef DEBUG_MUTE in certain source files if you need the logs.
  -fmerge-all-constants
  -ffunction-sections
  -fdata-sections
  -DRADIOLIB_EXCLUDE_SX128X=1
  -DRADIOLIB_EXCLUDE_SX127X=1
  -DRADIOLIB_EXCLUDE_LR11X0=1
  -DHAL_DAC_MODULE_ONLY
  -DHAL_RNG_MODULE_ENABLED
  -Wl,--wrap=__assert_func
  -Wl,--wrap=strerror
  -Wl,--wrap=_tzset_unlocked_r

build_src_filter =
  ${arduino_base.build_src_filter} -<platform/esp32/> -<nimble/> -<mesh/api/> -<mesh/wifi/> -<mesh/http/> -<modules/esp32> -<mesh/eth/> -<input> -<buzz> -<modules/RemoteHardwareModule.cpp> -<platform/nrf52> -<platform/portduino> -<platform/rp2xx0> -<mesh/raspihttp>

board_upload.offset_address = 0x08000000
upload_protocol = stlink
debug_tool = stlink

lib_deps =
  ${env.lib_deps}
  ${radiolib_base.lib_deps}

  # renovate: datasource=git-refs depName=caveman99-stm32-Crypto packageName=https://github.com/caveman99/Crypto gitBranch=main
  https://github.com/caveman99/Crypto/archive/1aa30eb536bd52a576fde6dfa393bf7349cf102d.zip

lib_ignore =
  OneButton
