; ***  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]
extra_configs = platformio_tasmota_env32.ini
                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-ir
;                tasmota32
;                tasmota32-webcam
;                tasmota32-minimal
;                tasmota32-lite
;                tasmota32-knx
;                tasmota32-sensors
;                tasmota32-display
;                tasmota32-ir
;                tasmota32-ircustom


[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 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/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]
; Activate only (one set) if you want to override the standard core defined in platformio.ini !!!

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

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


[tasmota_stage]
; *** Esp8266 core for Arduino version Tasmota stage
extends                   = tasmota_core
platform_packages         = framework-arduinoespressif8266 @ https://github.com/esp8266/Arduino.git#a5432625d93f60d7e28cfdc5ed8abb3e0151951d
; *********** Alternative Options, enable only if you know exactly what you do ********
; NONOSDK221
;                            -DPIO_FRAMEWORK_ARDUINO_ESPRESSIF_SDK221
; NONOSDK22x_190313
;                            -DPIO_FRAMEWORK_ARDUINO_ESPRESSIF_SDK22x_190313
; 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
; VTABLES in Heap
;                            -DVTABLES_IN_DRAM
; VTABLES in IRAM
;                            -DVTABLES_IN_IRAM
; Exception code in firmware /needs much space!
;                           -fexceptions
;                           -lstdc++-exc

[core_stage]
; *** Esp8266 core for Arduino version latest development version
extends                   = tasmota_core
platform_packages         = framework-arduinoespressif8266 @ https://github.com/esp8266/Arduino.git
;
; *********** Alternative Options, enable only if you know exactly what you do ********
; NONOSDK221
;                            -DPIO_FRAMEWORK_ARDUINO_ESPRESSIF_SDK221
; NONOSDK22x_190313
;                            -DPIO_FRAMEWORK_ARDUINO_ESPRESSIF_SDK22x_190313
; 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
; VTABLES in Heap
;                            -DVTABLES_IN_DRAM
; VTABLES in IRAM
;                            -DVTABLES_IN_IRAM
; Exception code in firmware /needs much space!
;                           -fexceptions
;                           -lstdc++-exc


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


; ***        Experimental ESP32 Tasmota version               ***
; ***  expect the unexpected. Many features not working!!!    ***

[common32]
platform                = espressif32@1.12.0
platform_packages       = tool-esptoolpy@1.20800.0
board                   = esp32dev
board_build.ldscript    = esp32_out.ld
board_build.partitions  = esp32_partition_app1984k_spiffs64k.csv
board_build.flash_mode  = ${common.board_build.flash_mode}
board_build.f_cpu       = ${common.board_build.f_cpu}
build_unflags           = ${common.build_unflags}
                          -Wpointer-arith 
monitor_speed           = ${common.monitor_speed}
upload_port             = ${common.upload_port}
upload_resetmethod      = ${common.upload_resetmethod}
upload_speed            = 921600
extra_scripts           = ${common.extra_scripts}

build_flags             = ${esp_defaults.build_flags}
; NimBLE-Arduino uses arithmetic on void- and function-pointers, this is only a cosmetic warning suppression
    -Wno-pointer-arith
    
    -D BUFFER_LENGTH=128
    -D MQTT_MAX_PACKET_SIZE=1200
    -D uint32=uint32_t
    -D uint16=uint16_t
    -D uint8=uint8_t
    -D sint8_t=int8_t
    -D sint32_t=int32_t
    -D sint16_t=int16_t
    -D memcpy_P=memcpy
	  -D memcmp_P=memcmp
;    -D USE_CONFIG_OVERRIDE

lib_extra_dirs =
    libesp32

lib_ignore =
    ILI9488
    SSD3115
    cc1101
