esphome/platformio.ini
2022-11-24 11:16:05 +13:00

253 lines
8.6 KiB
INI

; 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.3 ; improv_serial / esp32_improv
bblanchon/ArduinoJson@6.18.5 ; json
wjtje/qr-code-generator-library@1.7.0 ; qr_code
functionpointer/arduino-MLX90393@1.0.0 ; mlx90393
; This is using the repository until a new release is published to PlatformIO
https://github.com/Sensirion/arduino-gas-index-algorithm.git#3.2.1 ; Sensirion Gas Index Algorithm Arduino Library
build_flags =
-DESPHOME_LOG_LEVEL=ESPHOME_LOG_LEVEL_VERY_VERBOSE
src_filter =
+<./>
+<../tests/dummy_main.cpp>
+<../.temp/all-include.cpp>
lib_ldf_mode = off
; This are common settings for all Arduino-framework based environments.
[common:arduino]
extends = common
lib_deps =
${common.lib_deps}
SPI ; spi (Arduino built-in)
Wire ; i2c (Arduino built-int)
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.4.0 ; dsmr
dudanov/MideaUART@1.1.8 ; midea
tonia/HeatpumpIR@1.0.20 ; 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
ESP8266HTTPClient ; http_request (Arduino built-in)
ESP8266mDNS ; mdns (Arduino built-in)
DNSServer ; captive_portal (Arduino built-in)
crankyoldgit/IRremoteESP8266@2.7.12 ; heatpumpir
build_flags =
${common:arduino.build_flags}
-Wno-nonnull-compare
-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 @ 5.2.0
platform_packages =
platformio/framework-arduinoespressif32 @ ~3.20005.0
framework = arduino
board = nodemcu-32s
lib_deps =
; order matters with lib-deps; some of the libs in common:arduino.lib_deps
; don't declare built-in libraries as dependencies, so they have to be declared first
FS ; web_server_base (Arduino built-in)
WiFi ; wifi,web_server_base,ethernet (Arduino built-in)
Update ; ota,web_server_base (Arduino built-in)
${common:arduino.lib_deps}
esphome/AsyncTCP-esphome@1.2.2 ; async_tcp
WiFiClientSecure ; http_request,nextion (Arduino built-in)
HTTPClient ; http_request,nextion (Arduino built-in)
ESPmDNS ; mdns (Arduino built-in)
DNSServer ; captive_portal (Arduino built-in)
esphome/ESP32-audioI2S@2.0.6 ; i2s_audio
crankyoldgit/IRremoteESP8266@2.7.12 ; heatpumpir
build_flags =
${common:arduino.build_flags}
-DUSE_ESP32
-DUSE_ESP32_FRAMEWORK_ARDUINO
-DAUDIO_NO_SD_FS ; i2s_audio
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 @ 5.2.0
platform_packages =
platformio/framework-espidf @ ~3.40402.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
; These are common settings for the RP2040 using Arduino.
[common:rp2040-arduino]
extends = common:arduino
board_build.core = earlephilhower
board_build.filesystem_size = 0.5m
platform = https://github.com/maxgerhardt/platform-raspberrypi.git
platform_packages =
; earlephilhower/framework-arduinopico @ ~1.20602.0 ; Cannot use the platformio package until old releases stop getting deleted
earlephilhower/framework-arduinopico @ https://github.com/earlephilhower/arduino-pico/releases/download/2.6.2/rp2040-2.6.2.zip
framework = arduino
lib_deps =
${common:arduino.lib_deps}
build_flags =
${common:arduino.build_flags}
-DUSE_RP2040
-DUSE_RP2040_FRAMEWORK_ARDUINO
; 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}
[env:rp2040-pico-arduino]
extends = common:rp2040-arduino
board = rpipico
build_flags =
${common:rp2040-arduino.build_flags}
${flags:runtime.build_flags}