[platformio]
default_envs = arduino-2, arduino-3, arduino-311, esp8266, raspberrypi
lib_dir = .
; src_dir = examples/CaptivePortal
src_dir = examples/SimpleServer
; src_dir = examples/StreamFiles
; src_dir = examples/Filters
; src_dir = examples/Issue85
; src_dir = examples/Issue162

[env]
framework = arduino
build_flags = 
  -Og
  -Wall -Wextra
  -Wno-unused-parameter
  ; -D CONFIG_ARDUHAL_LOG_COLORS
  -D CORE_DEBUG_LEVEL=ARDUHAL_LOG_LEVEL_VERBOSE
  -D CONFIG_ASYNC_TCP_MAX_ACK_TIME=5000
  -D CONFIG_ASYNC_TCP_PRIORITY=10
  -D CONFIG_ASYNC_TCP_QUEUE_SIZE=64
  -D CONFIG_ASYNC_TCP_RUNNING_CORE=1
  -D CONFIG_ASYNC_TCP_STACK_SIZE=4096
upload_protocol = esptool
monitor_speed = 115200
monitor_filters = esp32_exception_decoder, log2file
; monitor_filters = esp8266_exception_decoder, log2file
lib_compat_mode = strict
lib_ldf_mode = chain
lib_deps = 
  ; bblanchon/ArduinoJson @ 5.13.4
  ; bblanchon/ArduinoJson @ 6.21.5
  bblanchon/ArduinoJson @ 7.3.0
  ESP32Async/AsyncTCP @ 3.3.2
board = esp32dev
board_build.partitions = partitions-4MB.csv
board_build.filesystem = littlefs

[env:arduino-2]
platform = espressif32@6.9.0

[env:arduino-3]
platform = https://github.com/pioarduino/platform-espressif32/releases/download/51.03.05/platform-espressif32.zip
; board = esp32-s3-devkitc-1
; board = esp32-c6-devkitc-1

[env:arduino-3-no-json]
platform = https://github.com/pioarduino/platform-espressif32/releases/download/51.03.05/platform-espressif32.zip
; board = esp32-s3-devkitc-1
; board = esp32-c6-devkitc-1
lib_deps = 
  ESP32Async/AsyncTCP @ 3.3.2

[env:arduino-311]
platform = https://github.com/pioarduino/platform-espressif32/releases/download/53.03.11/platform-espressif32.zip
; board = esp32-s3-devkitc-1
; board = esp32-c6-devkitc-1
; board = esp32-h2-devkitm-1

[env:perf-test-AsyncTCP]
platform = https://github.com/pioarduino/platform-espressif32/releases/download/53.03.11/platform-espressif32.zip
build_flags = ${env.build_flags}
  -D PERF_TEST=1

[env:perf-test-AsyncTCPSock]
platform = https://github.com/pioarduino/platform-espressif32/releases/download/53.03.11/platform-espressif32.zip
lib_deps = 
  https://github.com/ESP32Async/AsyncTCPSock/archive/refs/tags/v1.0.3-dev.zip
build_flags = ${env.build_flags}
  -D PERF_TEST=1

[env:esp8266]
platform = espressif8266
; board = huzzah
board = d1_mini
lib_deps = 
  bblanchon/ArduinoJson @ 7.3.0
  ESP32Async/ESPAsyncTCP @ 2.0.0

[env:raspberrypi]
platform = https://github.com/maxgerhardt/platform-raspberrypi.git
board = rpipicow
board_build.core = earlephilhower
lib_deps = 
  bblanchon/ArduinoJson @ 7.3.0
  khoih-prog/AsyncTCP_RP2040W @ 1.2.0
lib_ignore = 
  lwIP_ESPHost
build_flags = ${env.build_flags}
  -Wno-missing-field-initializers

;  CI

[env:ci-arduino-2]
platform = espressif32@6.9.0
board = ${sysenv.PIO_BOARD}

[env:ci-arduino-3]
platform = https://github.com/pioarduino/platform-espressif32/releases/download/51.03.05/platform-espressif32.zip
board = ${sysenv.PIO_BOARD}

[env:ci-arduino-3-no-json]
platform = https://github.com/pioarduino/platform-espressif32/releases/download/51.03.05/platform-espressif32.zip
board = ${sysenv.PIO_BOARD}
lib_deps = 
  ESP32Async/AsyncTCP @ 3.3.2

[env:ci-arduino-311]
platform = https://github.com/pioarduino/platform-espressif32/releases/download/53.03.11/platform-espressif32.zip
board = ${sysenv.PIO_BOARD}

[env:ci-esp8266]
platform = espressif8266
board = ${sysenv.PIO_BOARD}
lib_deps = 
  bblanchon/ArduinoJson @ 7.3.0
  ESP32Async/ESPAsyncTCP @ 2.0.0

[env:ci-raspberrypi]
platform = https://github.com/maxgerhardt/platform-raspberrypi.git
board = ${sysenv.PIO_BOARD}
board_build.core = earlephilhower
lib_deps = 
  bblanchon/ArduinoJson @ 7.3.0
  khoih-prog/AsyncTCP_RP2040W @ 1.2.0
lib_ignore = 
  lwIP_ESPHost
build_flags = ${env.build_flags}
  -Wno-missing-field-initializers
