; ***  Example PlatformIO Project Configuration Override File   ***
; ***  Changes done here override settings in platformio.ini    ***
;
; *****************************************************************
; ***  to activate rename this file to platformio_override.ini  ***
; *****************************************************************
;
; Please visit documentation for the options and examples
; http://docs.platformio.org/en/stable/projectconf.html

[platformio]
; For best Gitpod performance remove the ";" in the next line. Needed Platformio files are cached and installed at first run
;core_dir = .platformio
extra_configs = platformio_tasmota_cenv.ini

; *** Build/upload environment
default_envs =
; *** Uncomment the line(s) below to select version(s)
                tasmota
;                tasmota-debug
;                tasmota-ircustom
;                tasmota-minimal
;                tasmota-lite
;                tasmota-knx
;                tasmota-sensors
;                tasmota-display
;                tasmota-zbbridge
;                tasmota-ir
;                tasmota32
;                tasmota32-webcam
;                tasmota32-minimal
;                tasmota32-lite
;                tasmota32-knx
;                tasmota32-sensors
;                tasmota32-display
;                tasmota32-ir
;                tasmota32-ircustom
;                tasmota32solo1
;                tasmota32-odroidgo
;                tasmota32-core2


[common]
platform_packages           = ${core.platform_packages}
build_unflags               = ${core.build_unflags}
build_flags                 = ${core.build_flags}
; *** Optional Debug messages
;                            -DDEBUG_TASMOTA_CORE
;                            -DDEBUG_TASMOTA_DRIVER
;                            -DDEBUG_TASMOTA_SENSOR

; *** CAUTION *** This setting is ONLY possible since 12.01.2021 with development version !!!
; *** Enable only if you exactly know what are you doing
; *** If you try with earlier builds a serial erase and flash is probably needed
;
; Build variant 1MB = 1MB firmware no filesystem (default)
;board_build.ldscript        = eagle.flash.1m.ld
; Build variant 2MB = 1MB firmware, +744k OTA, 256k filesystem (Zigbee Bridge, most Shelly devices)
;board_build.ldscript        = eagle.flash.2m256.ld
; Build variant 4MB = 1MB firmware, +1MB OTA, 2MB filesystem (WEMOS D1 Mini, NodeMCU, Sonoff POW)
;board_build.ldscript        = eagle.flash.4m2m.ld
; Build variant 16MB = 1MB firmware, +1MB OTA, 14MB filesystem (WEMOS D1 Mini pro, Ledunia (=32MB))
;board_build.ldscript        = eagle.flash.16m14m.ld

; set CPU frequency to 80MHz (default) or 160MHz
;board_build.f_cpu           = 160000000L

; set Flash chip frequency to 40MHz (default), 20MHz, 26Mhz, 80Mhz
;board_build.f_flash         = 20000000L
;board_build.f_flash         = 26000000L
;board_build.f_flash         = 80000000L

; *** Upload Serial reset method for Wemos and NodeMCU
upload_port                 = COM5

extra_scripts               = ${scripts_defaults.extra_scripts}
;                              pio-tools/obj-dump.py

lib_extra_dirs              = ${library.lib_extra_dirs}

[core]
; Activate only (one set) if you want to override the standard core defined in platformio.ini !!!

;platform_packages           = ${tasmota_stage.platform_packages}
;build_unflags               = ${tasmota_stage.build_unflags}
;build_flags                 = ${tasmota_stage.build_flags}

;platform_packages           = ${core_stage.platform_packages}
;build_unflags               = ${core_stage.build_unflags}
;build_flags                 = ${core_stage.build_flags}


[tasmota_stage]
; *** Esp8266 core for Arduino version Tasmota stage. Backport for PWM selection
platform_packages           = tasmota/framework-arduinoespressif8266 @ ~2.7.4
                              platformio/toolchain-xtensa @ 2.40802.200502
                              platformio/tool-esptool @ 1.413.0
                              platformio/tool-esptoolpy @ ~1.30000.0
build_unflags               = ${esp_defaults.build_unflags}
build_flags                 = ${esp82xx_defaults.build_flags}
; *** Use ONE of the two PWM variants. Tasmota default is Locked PWM
                              ;-DWAVEFORM_LOCKED_PHASE
                              -DWAVEFORM_LOCKED_PWM

[core_stage]
; *** Esp8266 core for Arduino version stage
platform_packages           = framework-arduinoespressif8266 @ https://github.com/esp8266/Arduino.git
; *** Use Xtensa build chain 10.2. GNU13 from https://github.com/earlephilhower/esp-quick-toolchain
                              mcspr/toolchain-xtensa @ 5.100200.201223
                              platformio/tool-esptoolpy @ ~1.30000.0
                              platformio/tool-esptool @ 1.413.0
build_unflags               = ${esp_defaults.build_unflags}
                              -Wswitch-unreachable
build_flags                 = ${esp82xx_defaults.build_flags}
; *** Use ONE of the two PWM variants. Tasmota default is Locked PWM
                              ;-DWAVEFORM_LOCKED_PHASE
                              -DWAVEFORM_LOCKED_PWM
                              -Wno-switch-unreachable

[common32]
platform_packages           = ${core32.platform_packages}
build_unflags               = ${core32.build_unflags}
build_flags                 = ${core32.build_flags}
upload_port                 = COM4
lib_extra_dirs              = ${library.lib_extra_dirs}
; *** ESP32 lib. ALWAYS needed for ESP32 !!!
                              lib/libesp32

[core32]
; Activate Stage Core32 by removing ";" in next 3 lines, if you want to override the standard core32
;platform_packages           = ${core32_stage.platform_packages}
;build_unflags               = ${core32_stage.build_unflags}
;build_flags                 = ${core32_stage.build_flags}

[core32_stage]
platform_packages           = framework-arduinoespressif32 @ https://github.com/Jason2866/arduino-esp32/releases/download/1.0.5-rc6/esp32-1.0.5-rc6.zip
                              platformio/tool-mklittlefs @ ~1.203.200522
build_unflags               = ${esp32_defaults.build_unflags}
build_flags                 = ${esp32_defaults.build_flags}
                              ;-DESP32_STAGE=true

[library]
lib_ldf_mode                = chain+
shared_libdeps_dir          = lib
; *** Library disable / enable for variant Tasmota(32). Disable reduces compile time
; *** !!! Disabling needed libs will generate compile errors !!!
; *** The resulting firmware will NOT be different if you leave all libs enabled
; *** Disabling by putting a ";" in front of the lib name
; *** If you dont know what it is all about, do not change
lib_extra_dirs              =
; *** Only disabled for Tasmota minimal and Tasmota light. For all other variants needed!
                              lib/lib_basic
; **** I2C devices. Most sensors. Disable only if you dont have ANY I2C device enabled
                              lib/lib_i2c
; *** Displays. Disable if you dont have any Display activated
                              lib/lib_display
; *** Bear SSL and base64. Disable if you dont have SSL or TLS activated
                              lib/lib_ssl
; *** Audio needs a lot of time to compile. Mostly not used functions. Recommended to disable
                              lib/lib_audio
; *** RF 433 stuff (not RF Bridge). Recommended to disable
                              lib/lib_rf
; *** Mostly not used functions. Recommended to disable
                              lib/lib_div

; *** EXPERIMENTAL Tasmota version for ESP32solo1 (used in some Xiaomi devices)
[env:tasmota32solo1]
extends                     = env:tasmota32
platform_packages           = framework-arduinoespressif32 @ https://github.com/Jason2866/esp32-arduino-lib-builder/raw/framework-arduinoespressif32/framework-arduinoespressif32-solo1-release_v3.3-7e63061fa.tar.gz
                              platformio/tool-mklittlefs @ ~1.203.200522
                              platformio/tool-esptoolpy @ ~1.30000.0
build_unflags               = ${esp32_defaults.build_unflags}
build_flags                 = ${common32.build_flags}


; *** Debug version used for PlatformIO Home Project Inspection
[env:tasmota-debug]
build_type                  = debug
build_unflags               = ${esp_defaults.build_unflags}
build_flags                 = ${esp82xx_defaults.build_flags}
;                              -Wstack-usage=300

[env:tasmota32-debug]
extends                     = env:tasmota32
build_type                  = debug
build_unflags               = ${esp32_defaults.build_unflags}
build_flags                 = ${esp32_defaults.build_flags}
;                              -Wstack-usage=300
