mirror of
https://github.com/esphome/esphome.git
synced 2024-12-26 23:41:45 +01:00
438 lines
13 KiB
INI
438 lines
13 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, bk72xx-arduino
|
|
; 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.7.3 ; neopixelbus
|
|
improv/Improv@1.2.4 ; 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
|
|
pavlodn/HaierProtocol@0.9.31 ; haier
|
|
kikuchan98/pngle@1.0.2 ; online_image
|
|
; 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
|
|
lvgl/lvgl@8.4.0 ; lvgl
|
|
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)
|
|
heman/AsyncMqttClient-esphome@1.0.0 ; mqtt
|
|
esphome/ESPAsyncWebServer-esphome@3.2.2 ; 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.7 ; dsmr
|
|
rweather/Crypto@0.4.0 ; dsmr
|
|
dudanov/MideaUART@1.1.9 ; midea
|
|
tonia/HeatpumpIR@1.0.27 ; 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@4.2.1
|
|
platform_packages =
|
|
platformio/framework-arduinoespressif8266@~3.30102.0
|
|
|
|
framework = arduino
|
|
lib_deps =
|
|
${common:arduino.lib_deps}
|
|
ESP8266WiFi ; wifi (Arduino built-in)
|
|
Update ; ota (Arduino built-in)
|
|
esphome/ESPAsyncTCP-esphome@2.0.0 ; async_tcp
|
|
ESP8266HTTPClient ; http_request (Arduino built-in)
|
|
ESP8266mDNS ; mdns (Arduino built-in)
|
|
DNSServer ; captive_portal (Arduino built-in)
|
|
droscy/esp_wireguard@0.4.2 ; wireguard
|
|
|
|
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.4.0
|
|
platform_packages =
|
|
platformio/framework-arduinoespressif32@~3.20005.0
|
|
|
|
framework = arduino
|
|
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@2.1.4 ; 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.7 ; i2s_audio
|
|
droscy/esp_wireguard@0.4.2 ; wireguard
|
|
|
|
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.4.0
|
|
platform_packages =
|
|
platformio/framework-espidf@~3.40408.0
|
|
|
|
framework = espidf
|
|
lib_deps =
|
|
${common:idf.lib_deps}
|
|
droscy/esp_wireguard@0.4.2 ; wireguard
|
|
kahrendt/ESPMicroSpeechFeatures@1.1.0 ; micro_wake_word
|
|
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
|
|
|
|
; This are common settings for the ESP32 using the latest ESP-IDF version.
|
|
[common:esp32-idf-5_3]
|
|
extends = common:esp32-idf
|
|
platform = platformio/espressif32@6.8.0
|
|
platform_packages =
|
|
platformio/framework-espidf@~3.50300.0
|
|
|
|
; These are common settings for the RP2040 using Arduino.
|
|
[common:rp2040-arduino]
|
|
extends = common:arduino
|
|
board_build.filesystem_size = 0.5m
|
|
|
|
platform = https://github.com/maxgerhardt/platform-raspberrypi.git#v1.2.0-gcc12
|
|
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/3.9.4/rp2040-3.9.4.zip
|
|
|
|
framework = arduino
|
|
lib_deps =
|
|
${common:arduino.lib_deps}
|
|
build_flags =
|
|
${common:arduino.build_flags}
|
|
-DUSE_RP2040
|
|
-DUSE_RP2040_FRAMEWORK_ARDUINO
|
|
|
|
; This are common settings for the LibreTiny (all variants) using Arduino.
|
|
[common:libretiny-arduino]
|
|
extends = common:arduino
|
|
platform = libretiny
|
|
framework = arduino
|
|
lib_deps =
|
|
droscy/esp_wireguard@0.4.2 ; wireguard
|
|
build_flags =
|
|
${common:arduino.build_flags}
|
|
-DUSE_LIBRETINY
|
|
build_src_flags = -include Arduino.h
|
|
|
|
; All the actual environments are defined below.
|
|
|
|
;;;;;;;; ESP8266 ;;;;;;;;
|
|
|
|
[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}
|
|
|
|
;;;;;;;; ESP32 ;;;;;;;;
|
|
|
|
[env:esp32-arduino]
|
|
extends = common:esp32-arduino
|
|
board = esp32dev
|
|
board_build.partitions = huge_app.csv
|
|
build_flags =
|
|
${common:esp32-arduino.build_flags}
|
|
${flags:runtime.build_flags}
|
|
-DUSE_ESP32_VARIANT_ESP32
|
|
|
|
[env:esp32-arduino-tidy]
|
|
extends = common:esp32-arduino
|
|
board = esp32dev
|
|
build_flags =
|
|
${common:esp32-arduino.build_flags}
|
|
${flags:clangtidy.build_flags}
|
|
-DUSE_ESP32_VARIANT_ESP32
|
|
|
|
[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}
|
|
-DUSE_ESP32_VARIANT_ESP32
|
|
|
|
[env:esp32-idf-5_3]
|
|
extends = common:esp32-idf-5_3
|
|
board = esp32dev
|
|
board_build.esp-idf.sdkconfig_path = .temp/sdkconfig-esp32-idf
|
|
build_flags =
|
|
${common:esp32-idf.build_flags}
|
|
${flags:runtime.build_flags}
|
|
-DUSE_ESP32_VARIANT_ESP32
|
|
|
|
[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}
|
|
-DUSE_ESP32_VARIANT_ESP32
|
|
|
|
;;;;;;;; ESP32-C3 ;;;;;;;;
|
|
|
|
[env:esp32c3-arduino]
|
|
extends = common:esp32-arduino
|
|
board = esp32-c3-devkitm-1
|
|
build_flags =
|
|
${common:esp32-arduino.build_flags}
|
|
${flags:runtime.build_flags}
|
|
-DUSE_ESP32_VARIANT_ESP32C3
|
|
|
|
[env:esp32c3-arduino-tidy]
|
|
extends = common:esp32-arduino
|
|
board = esp32-c3-devkitm-1
|
|
build_flags =
|
|
${common:esp32-arduino.build_flags}
|
|
${flags:clangtidy.build_flags}
|
|
-DUSE_ESP32_VARIANT_ESP32C3
|
|
|
|
[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}
|
|
-DUSE_ESP32_VARIANT_ESP32C3
|
|
|
|
[env:esp32c3-idf-5_3]
|
|
extends = common:esp32-idf-5_3
|
|
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}
|
|
-DUSE_ESP32_VARIANT_ESP32C3
|
|
|
|
[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}
|
|
-DUSE_ESP32_VARIANT_ESP32C3
|
|
|
|
;;;;;;;; ESP32-S2 ;;;;;;;;
|
|
|
|
[env:esp32s2-arduino]
|
|
extends = common:esp32-arduino
|
|
board = esp32-s2-kaluga-1
|
|
build_flags =
|
|
${common:esp32-arduino.build_flags}
|
|
${flags:runtime.build_flags}
|
|
-DUSE_ESP32_VARIANT_ESP32S2
|
|
|
|
[env:esp32s2-arduino-tidy]
|
|
extends = common:esp32-arduino
|
|
board = esp32-s2-kaluga-1
|
|
build_flags =
|
|
${common:esp32-arduino.build_flags}
|
|
${flags:clangtidy.build_flags}
|
|
-DUSE_ESP32_VARIANT_ESP32S2
|
|
|
|
[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}
|
|
-DUSE_ESP32_VARIANT_ESP32S2
|
|
|
|
[env:esp32s2-idf-5_3]
|
|
extends = common:esp32-idf-5_3
|
|
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}
|
|
-DUSE_ESP32_VARIANT_ESP32S2
|
|
|
|
[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}
|
|
-DUSE_ESP32_VARIANT_ESP32S2
|
|
|
|
;;;;;;;; ESP32-S3 ;;;;;;;;
|
|
|
|
[env:esp32s3-arduino]
|
|
extends = common:esp32-arduino
|
|
board = esp32-s3-devkitc-1
|
|
build_flags =
|
|
${common:esp32-arduino.build_flags}
|
|
${flags:runtime.build_flags}
|
|
-DUSE_ESP32_VARIANT_ESP32S3
|
|
|
|
[env:esp32s3-arduino-tidy]
|
|
extends = common:esp32-arduino
|
|
board = esp32-s3-devkitc-1
|
|
build_flags =
|
|
${common:esp32-arduino.build_flags}
|
|
${flags:clangtidy.build_flags}
|
|
-DUSE_ESP32_VARIANT_ESP32S3
|
|
|
|
[env:esp32s3-idf]
|
|
extends = common:esp32-idf
|
|
board = esp32-s3-devkitc-1
|
|
board_build.esp-idf.sdkconfig_path = .temp/sdkconfig-esp32s3-idf
|
|
build_flags =
|
|
${common:esp32-idf.build_flags}
|
|
${flags:runtime.build_flags}
|
|
-DUSE_ESP32_VARIANT_ESP32S3
|
|
|
|
[env:esp32s3-idf-5_3]
|
|
extends = common:esp32-idf-5_3
|
|
board = esp32-s3-devkitc-1
|
|
board_build.esp-idf.sdkconfig_path = .temp/sdkconfig-esp32s3-idf
|
|
build_flags =
|
|
${common:esp32-idf.build_flags}
|
|
${flags:runtime.build_flags}
|
|
-DUSE_ESP32_VARIANT_ESP32S3
|
|
|
|
[env:esp32s3-idf-tidy]
|
|
extends = common:esp32-idf
|
|
board = esp32-s3-devkitc-1
|
|
board_build.esp-idf.sdkconfig_path = .temp/sdkconfig-esp32s3-idf-tidy
|
|
build_flags =
|
|
${common:esp32-idf.build_flags}
|
|
${flags:clangtidy.build_flags}
|
|
-DUSE_ESP32_VARIANT_ESP32S3
|
|
|
|
;;;;;;;; RP2040 ;;;;;;;;
|
|
|
|
[env:rp2040-pico-arduino]
|
|
extends = common:rp2040-arduino
|
|
board = rpipico
|
|
build_flags =
|
|
${common:rp2040-arduino.build_flags}
|
|
${flags:runtime.build_flags}
|
|
|
|
;;;;;;;; LibreTiny ;;;;;;;;
|
|
|
|
[env:bk72xx-arduino]
|
|
extends = common:libretiny-arduino
|
|
board = generic-bk7231n-qfn32-tuya
|
|
build_flags =
|
|
${common:libretiny-arduino.build_flags}
|
|
${flags:runtime.build_flags}
|
|
-DUSE_BK72XX
|
|
-DUSE_LIBRETINY_VARIANT_BK7231N
|
|
|
|
[env:rtl87xxb-arduino]
|
|
extends = common:libretiny-arduino
|
|
board = generic-rtl8710bn-2mb-788k
|
|
build_flags =
|
|
${common:libretiny-arduino.build_flags}
|
|
${flags:runtime.build_flags}
|
|
-DUSE_RTL87XX
|
|
-DUSE_LIBRETINY_VARIANT_RTL8710B
|
|
|
|
[env:rtl87xxc-arduino]
|
|
extends = common:libretiny-arduino
|
|
board = generic-rtl8720cf-2mb-992k
|
|
build_flags =
|
|
${common:libretiny-arduino.build_flags}
|
|
${flags:runtime.build_flags}
|
|
-DUSE_RTL87XX
|
|
-DUSE_LIBRETINY_VARIANT_RTL8720C
|
|
|
|
[env:host]
|
|
extends = common
|
|
platform = platformio/native
|
|
lib_deps =
|
|
esphome/noise-c@0.1.1 ; used by api
|
|
build_flags =
|
|
${common.build_flags}
|
|
-DUSE_HOST
|
|
-std=c++17
|