; ***              ESP32 Tasmota version                 ***

[esp32_defaults]
build_unflags               = ${esp_defaults.build_unflags}
                              -mtarget-align
                              -Wswitch-unreachable
                              -Wstringop-overflow
                              -Wincompatible-pointer-types
                              -Wnonnull-compare
                              -fexceptions
                              -Wpointer-arith
build_flags                 = ${esp_defaults.build_flags}
                              ; comment next line to disable IPv6 support
                              -DUSE_IPV6
                              -mno-target-align
                              -Wno-switch-unreachable
                              -Wno-stringop-overflow
                              -fno-exceptions
                              -DBUFFER_LENGTH=128
                              -DHTTP_UPLOAD_BUFLEN=2048
                              -DMQTT_MAX_PACKET_SIZE=1200
                              -Duint32=uint32_t
                              -Duint16=uint16_t
                              -Duint8=uint8_t
                              -Dsint8_t=int8_t
                              -Dsint32_t=int32_t
                              -Dsint16_t=int16_t
                              -Dmemcpy_P=memcpy
                              -Dmemcmp_P=memcmp
                              ;for TLS we can afford compiling for 4K RSA keys
                              -DUSE_4K_RSA
                              -I$PROJECT_DIR/include
                              -include "sdkconfig.h"
                              -include "esp32x_fixes.h"
                              ; wrappers for the crash-recorder
                              -Wl,--wrap=panicHandler -Wl,--wrap=xt_unhandled_exception
                              -Wl,--wrap=_Z11analogWritehi  ; `analogWrite(unsigned char, int)` use the Tasmota version of analogWrite for deeper integration and phase control
                              -Wl,--wrap=ledcReadFreq       ; `uint32_t ledcReadFreq(uint8_t chan)`
                              -Wl,--wrap=delay              ; void delay(uint32_t ms)
lib_ignore                  =
                              HTTPUpdateServer
                              USB
                              NetBIOS
                              Preferences
                              ArduinoOTA
extra_scripts               = pre:pio-tools/add_c_flags.py
                              pre:pio-tools/solidify-from-url.py
                              pre:pio-tools/gen-berry-structures.py
                              post:pio-tools/post_esp32.py
                              ${esp_defaults.extra_scripts}
monitor_filters             = esp32_exception_decoder

[safeboot_flags]
lib_ignore                  = ${esp32_defaults.lib_ignore}
                              ESPmDNS
                              LinkedList
                              ESP Mail Client
                              IRremoteESP8266
                              NeoPixelBus
                              OneWire
                              EEPROM
                              EEPROM 24C128_256_521
                              MFRC522
                              JPEGDEC
                              universal display Library
                              ESP8266Audio
                              ESP8266SAM
                              FFat
                              SD
                              SD_MMC
                              UdpListener
                              Berry
                              Berry mapping to C
                              Berry Tasmota mapping
                              Berry int64 implementation for 32 bits architecture
                              Berry Matter protocol implementation
                              Berry animation library for WS2812 leds
                              Micro-RTSP
                              re1.5
                              DHT sensor library
                              ccronexpr

[core32]
platform                    = https://github.com/tasmota/platform-espressif32/releases/download/2024.12.30/platform-espressif32.zip
platform_packages           =
build_unflags               = ${esp32_defaults.build_unflags}
build_flags                 = ${esp32_defaults.build_flags}