; ***  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]

; *** 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-ir


[common]
platform                  = ${core_active.platform}
platform_packages         = ${core_active.platform_packages}
build_flags               = ${core_active.build_flags}
; *** Use settings from file user_config_override.h
                          -DUSE_CONFIG_OVERRIDE

; *** Optional Firmware configurations
;                            -DFIRMWARE_MINIMAL
;                            -DFIRMWARE_SENSORS
;                            -DFIRMWARE_LITE
;                            -DFIRMWARE_KNX_NO_EMULATION
;                            -DFIRMWARE_DISPLAYS
;                            -DFIRMWARE_IR
;                            -DFIRMWARE_IR_CUSTOM

; *** Optional Debug messages
;                            -DDEBUG_TASMOTA_CORE
;                            -DDEBUG_TASMOTA_DRIVER
;                            -DDEBUG_TASMOTA_SENSOR

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

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

extra_scripts             = ${scripts_defaults.extra_scripts}
                            pio/gzip-firmware.py
                            pio/obj-dump.py

; *** Upload file to OTA server using SCP
;upload_port               = user@host:/path
;extra_scripts             = ${scripts_defaults.extra_scripts}
;                            pio/strip-floats.py
;                            pio/sftp-uploader.py

; *** Upload file to OTA server in folder api/arduino using HTTP
;upload_port               = domus1:80/api/upload-arduino.php
;extra_scripts             = ${scripts_defaults.extra_scripts}
;                            pio/strip-floats.py
;                            pio/http-uploader.py

[core_active]
; Select one core set for platform and build_flags
;platform                  = ${core_2_6_1.platform}
;platform_packages         = ${core_2_6_1.platform_packages}
;build_flags               = ${core_2_6_1.build_flags}

;platform                  = ${core_2_6_3.platform}
;platform_packages         = ${core_2_6_3.platform_packages}
;build_flags               = ${core_2_6_3.build_flags}

platform                  = ${tasmota_core_stage.platform}
platform_packages         = ${tasmota_core_stage.platform_packages}
build_flags               = ${tasmota_core_stage.build_flags}

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


[core_2_6_1]
; *** Esp8266 core for Arduino version 2.6.1
platform                  = espressif8266@2.3.0
platform_packages         =
build_flags               = ${esp82xx_defaults.build_flags}
                            -Wl,-Teagle.flash.1m.ld
                            -DBEARSSL_SSL_BASIC
; NONOSDK221
;                            -DPIO_FRAMEWORK_ARDUINO_ESPRESSIF_SDK221
; NONOSDK22x_190313
;                            -DPIO_FRAMEWORK_ARDUINO_ESPRESSIF_SDK22x_190313
; NONOSDK22x_190703 = 2.2.1+100-dev(38a443e) (Tasmota default) (Firmware 2K smaller than NONOSDK22x_191105)
                            -DPIO_FRAMEWORK_ARDUINO_ESPRESSIF_SDK22x_190703
; NONOSDK22x_191024 = 2.2.1+111-dev(5ab15d1)
;                            -DPIO_FRAMEWORK_ARDUINO_ESPRESSIF_SDK22x_191024
; NONOSDK22x_191105 = 2.2.1+113-dev(bb83b9b)
;                            -DPIO_FRAMEWORK_ARDUINO_ESPRESSIF_SDK22x_191105
; NONOSDK3V0 (known issues)
;                            -DPIO_FRAMEWORK_ARDUINO_ESPRESSIF_SDK3
; lwIP 1.4
;                            -DPIO_FRAMEWORK_ARDUINO_LWIP_HIGHER_BANDWIDTH
; lwIP 2 - Low Memory
;                            -DPIO_FRAMEWORK_ARDUINO_LWIP2_LOW_MEMORY
; lwIP 2 - Higher Bandwidth
;                            -DPIO_FRAMEWORK_ARDUINO_LWIP2_HIGHER_BANDWIDTH
; lwIP 2 - Higher Bandwidth Low Memory no Features
;                            -DPIO_FRAMEWORK_ARDUINO_LWIP2_LOW_MEMORY_LOW_FLASH
; lwIP 2 - Higher Bandwidth no Features (Tasmota default)
                            -DPIO_FRAMEWORK_ARDUINO_LWIP2_HIGHER_BANDWIDTH_LOW_FLASH
; lwIP 2 - Higher Bandwidth IPv6 (use ONLY if you need IPv6, experimental!)
;                            -DPIO_FRAMEWORK_ARDUINO_LWIP2_IPV6_HIGHER_BANDWIDTH
; VTABLES in Flash (Tasmota default)
                            -DVTABLES_IN_FLASH
; VTABLES in Heap
;                            -DVTABLES_IN_DRAM
; VTABLES in IRAM
;                            -DVTABLES_IN_IRAM
; enable one option set -> No exception recommended
; No exception code in firmware
                            -fno-exceptions
                            -lstdc++
; Exception code in firmware /needs much space! 90k
;                           -fexceptions
;                           -lstdc++-exc

[core_2_6_3]
; *** Esp8266 core for Arduino version 2.6.3
platform                  = espressif8266@2.3.3
platform_packages         =
build_flags               = ${esp82xx_defaults.build_flags}
                            -DBEARSSL_SSL_BASIC
; NONOSDK221
;                            -DPIO_FRAMEWORK_ARDUINO_ESPRESSIF_SDK221
; NONOSDK22x_190313
;                            -DPIO_FRAMEWORK_ARDUINO_ESPRESSIF_SDK22x_190313
; NONOSDK22x_190703 = 2.2.1+100-dev(38a443e) (Tasmota default) (Firmware 2K smaller than NONOSDK22x_191105)
                            -DPIO_FRAMEWORK_ARDUINO_ESPRESSIF_SDK22x_190703
; NONOSDK22x_191024 = 2.2.1+111-dev(5ab15d1)
;                            -DPIO_FRAMEWORK_ARDUINO_ESPRESSIF_SDK22x_191024
; NONOSDK22x_191105 = 2.2.1+113-dev(bb83b9b)
;                            -DPIO_FRAMEWORK_ARDUINO_ESPRESSIF_SDK22x_191105
; NONOSDK3V0 (known issues)
;                            -DPIO_FRAMEWORK_ARDUINO_ESPRESSIF_SDK3
; lwIP 1.4
;                            -DPIO_FRAMEWORK_ARDUINO_LWIP_HIGHER_BANDWIDTH
; lwIP 2 - Low Memory
;                            -DPIO_FRAMEWORK_ARDUINO_LWIP2_LOW_MEMORY
; lwIP 2 - Higher Bandwidth
;                            -DPIO_FRAMEWORK_ARDUINO_LWIP2_HIGHER_BANDWIDTH
; lwIP 2 - Higher Bandwidth Low Memory no Features
;                            -DPIO_FRAMEWORK_ARDUINO_LWIP2_LOW_MEMORY_LOW_FLASH
; lwIP 2 - Higher Bandwidth no Features (Tasmota default)
                            -DPIO_FRAMEWORK_ARDUINO_LWIP2_HIGHER_BANDWIDTH_LOW_FLASH
; lwIP 2 - Higher Bandwidth IPv6 (use ONLY if you need IPv6, experimental!)
;                            -DPIO_FRAMEWORK_ARDUINO_LWIP2_IPV6_HIGHER_BANDWIDTH
; VTABLES in Flash (Tasmota default)
                            -DVTABLES_IN_FLASH
; VTABLES in Heap
;                            -DVTABLES_IN_DRAM
; VTABLES in IRAM
;                            -DVTABLES_IN_IRAM
; enable one option set -> No exception recommended
; No exception code in firmware
                            -fno-exceptions
                            -lstdc++
; Exception code in firmware /needs much space! 90k
;                           -fexceptions
;                           -lstdc++-exc

[tasmota_core_stage]
; *** Esp8266 core for Arduino version stable beta
platform                  = espressif8266@2.3.3
platform_packages         = framework-arduinoespressif8266 @ https://github.com/esp8266/Arduino.git#372a3ec297dfe8501bed1ec4552244695b5e8ced
build_flags               = ${esp82xx_defaults.build_flags}
                            -DBEARSSL_SSL_BASIC
; NONOSDK221
;                            -DPIO_FRAMEWORK_ARDUINO_ESPRESSIF_SDK221
; NONOSDK22x_190313
;                            -DPIO_FRAMEWORK_ARDUINO_ESPRESSIF_SDK22x_190313
; NONOSDK22x_190703 = 2.2.1+100-dev(38a443e) (Tasmota default) (Firmware 2K smaller than NONOSDK22x_191105)
                            -DPIO_FRAMEWORK_ARDUINO_ESPRESSIF_SDK22x_190703
; NONOSDK22x_191024 = 2.2.1+111-dev(5ab15d1)
;                            -DPIO_FRAMEWORK_ARDUINO_ESPRESSIF_SDK22x_191024
; NONOSDK22x_191105 = 2.2.1+113-dev(bb83b9b)
;                            -DPIO_FRAMEWORK_ARDUINO_ESPRESSIF_SDK22x_191105
; NONOSDK22x_191122 = 2.2.1+119-dev(a58da79)
;                            -DPIO_FRAMEWORK_ARDUINO_ESPRESSIF_SDK22x_191122
; NONOSDK3V0 (known issues)
;                            -DPIO_FRAMEWORK_ARDUINO_ESPRESSIF_SDK3
; lwIP 1.4
;                            -DPIO_FRAMEWORK_ARDUINO_LWIP_HIGHER_BANDWIDTH
; lwIP 2 - Low Memory
;                            -DPIO_FRAMEWORK_ARDUINO_LWIP2_LOW_MEMORY
; lwIP 2 - Higher Bandwidth
;                            -DPIO_FRAMEWORK_ARDUINO_LWIP2_HIGHER_BANDWIDTH
; lwIP 2 - Higher Bandwidth Low Memory no Features
;                            -DPIO_FRAMEWORK_ARDUINO_LWIP2_LOW_MEMORY_LOW_FLASH
; lwIP 2 - Higher Bandwidth no Features (Tasmota default)
                            -DPIO_FRAMEWORK_ARDUINO_LWIP2_HIGHER_BANDWIDTH_LOW_FLASH
; VTABLES in Flash (Tasmota default)
                            -DVTABLES_IN_FLASH
; VTABLES in Heap
;                            -DVTABLES_IN_DRAM
; VTABLES in IRAM
;                            -DVTABLES_IN_IRAM
; enable one option set -> No exception recommended
; No exception code in firmware
                            -fno-exceptions
                            -lstdc++
; Exception code in firmware /needs much space! 90k
;                           -fexceptions
;                           -lstdc++-exc

[core_stage]
; *** Esp8266 core for Arduino version latest beta
platform                  = espressif8266@2.3.3
platform_packages         = framework-arduinoespressif8266 @ https://github.com/esp8266/Arduino.git
build_flags               = ${esp82xx_defaults.build_flags}
                            -DBEARSSL_SSL_BASIC
; NONOSDK221
;                            -DPIO_FRAMEWORK_ARDUINO_ESPRESSIF_SDK221
; NONOSDK22x_190313
;                            -DPIO_FRAMEWORK_ARDUINO_ESPRESSIF_SDK22x_190313
; NONOSDK22x_190703 = 2.2.1+100-dev(38a443e) (Tasmota default) (Firmware 2K smaller than NONOSDK22x_191105)
                            -DPIO_FRAMEWORK_ARDUINO_ESPRESSIF_SDK22x_190703
; NONOSDK22x_191024 = 2.2.1+111-dev(5ab15d1)
;                            -DPIO_FRAMEWORK_ARDUINO_ESPRESSIF_SDK22x_191024
; NONOSDK22x_191105 = 2.2.1+113-dev(bb83b9b)
;                            -DPIO_FRAMEWORK_ARDUINO_ESPRESSIF_SDK22x_191105
; NONOSDK22x_191122 = 2.2.1+119-dev(a58da79)
;                            -DPIO_FRAMEWORK_ARDUINO_ESPRESSIF_SDK22x_191122
; NONOSDK3V0 (known issues)
;                            -DPIO_FRAMEWORK_ARDUINO_ESPRESSIF_SDK3
; lwIP 1.4
;                            -DPIO_FRAMEWORK_ARDUINO_LWIP_HIGHER_BANDWIDTH
; lwIP 2 - Low Memory
;                            -DPIO_FRAMEWORK_ARDUINO_LWIP2_LOW_MEMORY
; lwIP 2 - Higher Bandwidth
;                            -DPIO_FRAMEWORK_ARDUINO_LWIP2_HIGHER_BANDWIDTH
; lwIP 2 - Higher Bandwidth Low Memory no Features
;                            -DPIO_FRAMEWORK_ARDUINO_LWIP2_LOW_MEMORY_LOW_FLASH
; lwIP 2 - Higher Bandwidth no Features (Tasmota default)
                            -DPIO_FRAMEWORK_ARDUINO_LWIP2_HIGHER_BANDWIDTH_LOW_FLASH
; VTABLES in Flash (Tasmota default)
                            -DVTABLES_IN_FLASH
; VTABLES in Heap
;                            -DVTABLES_IN_DRAM
; VTABLES in IRAM
;                            -DVTABLES_IN_IRAM
; enable one option set -> No exception recommended
; No exception code in firmware
                            -fno-exceptions
                            -lstdc++
; Exception code in firmware /needs much space! 90k
;                           -fexceptions
;                           -lstdc++-exc


; *** Debug version used for PlatformIO Home Project Inspection
[env:tasmota-debug]
build_type = debug
