; This PlatformIO project is for development purposes *only*: clang-tidy derives its compilation ; database from here, and IDEs like CLion and VSCode also use it. This does not actually create a ; usable binary. ; It's *not* used during runtime. [platformio] default_envs = esp8266-arduino, esp32-arduino, esp32-idf ; Ideally, we want src_dir to be the root directory of the repository, to mimic the runtime build ; environment as best as possible. Unfortunately, the ESP-IDF toolchain really doesn't like this ; being the root directory. Instead, set esphome/ as the source directory, all our sources are in ; there anyway. Set the root directory as the include_dir, so that the esphome/ directory is on the ; include path. src_dir = esphome include_dir = . ; This are just the build flags as set by the runtime. [flags:runtime] build_flags = -Wno-unused-but-set-variable -Wno-sign-compare ; This are just the build flags for clang-tidy. [flags:clangtidy] build_flags = -Wall -Wextra -Wunreachable-code -Wfor-loop-analysis -Wshadow-field -Wshadow-field-in-constructor -Wshadow-uncaptured-local ; This are common settings for all environments. [common] lib_deps = esphome/noise-c@0.1.4 ; api makuna/NeoPixelBus@2.6.9 ; neopixelbus esphome/Improv@1.2.0 ; improv_serial / esp32_improv bblanchon/ArduinoJson@6.18.5 ; json wjtje/qr-code-generator-library@1.7.0 ; qr_code build_flags = -DESPHOME_LOG_LEVEL=ESPHOME_LOG_LEVEL_VERY_VERBOSE src_filter = +<./> +<../tests/dummy_main.cpp> +<../.temp/all-include.cpp> ; This are common settings for all Arduino-framework based environments. [common:arduino] extends = common lib_deps = ${common.lib_deps} ottowinter/AsyncMqttClient-esphome@0.8.6 ; mqtt esphome/ESPAsyncWebServer-esphome@2.1.0 ; web_server_base fastled/FastLED@3.3.2 ; fastled_base mikalhart/TinyGPSPlus@1.0.2 ; gps freekode/TM1651@1.0.1 ; tm1651 glmnet/Dsmr@0.5 ; dsmr rweather/Crypto@0.2.0 ; dsmr dudanov/MideaUART@1.1.8 ; midea ; PIO isn't update releases correctly, see: ; https://github.com/ToniA/arduino-heatpumpir/commit/0948c619d86407a4e50e8db2f3c193e0576c86fd https://github.com/ToniA/arduino-heatpumpir.git#1.0.18 ; heatpumpir build_flags = ${common.build_flags} -DUSE_ARDUINO ; This are common settings for all IDF-framework based environments. [common:idf] extends = common build_flags = ${common.build_flags} -DUSE_ESP_IDF ; This are common settings for the ESP8266 using Arduino. [common:esp8266-arduino] extends = common:arduino platform = platformio/espressif8266 @ 3.2.0 platform_packages = platformio/framework-arduinoespressif8266 @ ~3.30002.0 framework = arduino lib_deps = ${common:arduino.lib_deps} ESP8266WiFi ; wifi (Arduino built-in) Update ; ota (Arduino built-in) ottowinter/ESPAsyncTCP-esphome@1.2.3 ; async_tcp build_flags = ${common:arduino.build_flags} -DUSE_ESP8266 -DUSE_ESP8266_FRAMEWORK_ARDUINO extra_scripts = post:esphome/components/esp8266/post_build.py.script ; This are common settings for the ESP32 (all variants) using Arduino. [common:esp32-arduino] extends = common:arduino platform = platformio/espressif32 @ 3.3.2 platform_packages = platformio/framework-arduinoespressif32 @ ~3.10006.0 framework = arduino board = nodemcu-32s lib_deps = ${common:arduino.lib_deps} esphome/AsyncTCP-esphome@1.2.2 ; async_tcp build_flags = ${common:arduino.build_flags} -DUSE_ESP32 -DUSE_ESP32_FRAMEWORK_ARDUINO extra_scripts = post:esphome/components/esp32/post_build.py.script ; This are common settings for the ESP32 (all variants) using IDF. [common:esp32-idf] extends = common:idf platform = platformio/espressif32 @ 3.3.2 platform_packages = platformio/framework-espidf @ ~3.40300.0 framework = espidf lib_deps = ${common:idf.lib_deps} espressif/esp32-camera@1.0.0 ; esp32_camera build_flags = ${common:idf.build_flags} -Wno-nonnull-compare -DUSE_ESP32 -DUSE_ESP32_FRAMEWORK_ESP_IDF extra_scripts = post:esphome/components/esp32/post_build.py.script ; All the actual environments are defined below. [env:esp8266-arduino] extends = common:esp8266-arduino board = nodemcuv2 build_flags = ${common:esp8266-arduino.build_flags} ${flags:runtime.build_flags} [env:esp8266-arduino-tidy] extends = common:esp8266-arduino board = nodemcuv2 build_flags = ${common:esp8266-arduino.build_flags} ${flags:clangtidy.build_flags} [env:esp32-arduino] extends = common:esp32-arduino board = esp32dev build_flags = ${common:esp32-arduino.build_flags} ${flags:runtime.build_flags} [env:esp32-arduino-tidy] extends = common:esp32-arduino board = esp32dev build_flags = ${common:esp32-arduino.build_flags} ${flags:clangtidy.build_flags} [env:esp32-idf] extends = common:esp32-idf board = esp32dev board_build.esp-idf.sdkconfig_path = .temp/sdkconfig-esp32-idf build_flags = ${common:esp32-idf.build_flags} ${flags:runtime.build_flags} [env:esp32-idf-tidy] extends = common:esp32-idf board = esp32dev board_build.esp-idf.sdkconfig_path = .temp/sdkconfig-esp32-idf-tidy build_flags = ${common:esp32-idf.build_flags} ${flags:clangtidy.build_flags} [env:esp32c3-idf] extends = common:esp32-idf board = esp32-c3-devkitm-1 board_build.esp-idf.sdkconfig_path = .temp/sdkconfig-esp32c3-idf build_flags = ${common:esp32-idf.build_flags} ${flags:runtime.build_flags} [env:esp32c3-idf-tidy] extends = common:esp32-idf board = esp32-c3-devkitm-1 board_build.esp-idf.sdkconfig_path = .temp/sdkconfig-esp32c3-idf-tidy build_flags = ${common:esp32-idf.build_flags} ${flags:clangtidy.build_flags} [env:esp32s2-idf] extends = common:esp32-idf board = esp32-s2-kaluga-1 board_build.esp-idf.sdkconfig_path = .temp/sdkconfig-esp32s2-idf build_flags = ${common:esp32-idf.build_flags} ${flags:runtime.build_flags} [env:esp32s2-idf-tidy] extends = common:esp32-idf board = esp32-s2-kaluga-1 board_build.esp-idf.sdkconfig_path = .temp/sdkconfig-esp32s2-idf-tidy build_flags = ${common:esp32-idf.build_flags} ${flags:clangtidy.build_flags}