Files
EMS-ESP32/platformio.ini
2024-01-13 22:21:43 +01:00

203 lines
5.6 KiB
INI

; PlatformIO Project Configuration File for EMS-ESP
; override any settings with your own local ones in pio_local.ini
[platformio]
default_envs = esp32_4M
; default_envs = lolin_s3
; default_envs = esp32_16M
; default_envs = standalone
extra_configs =
factory_settings.ini
pio_local.ini
[common]
core_build_flags =
-D ARDUINO_ARCH_ESP32=1
-D ESP32=1
; -std=gnu++17
; core_unbuild_flags = -std=gnu++11
core_unbuild_flags =
; my_build_flags is set in pio_local.ini
my_build_flags =
build_flags =
${common.core_build_flags}
${factory_settings.build_flags}
${common.my_build_flags}
-D ONEWIRE_CRC16=0
-D NO_GLOBAL_ARDUINOOTA
-D ARDUINOJSON_ENABLE_STD_STRING=1
-D ARDUINOJSON_USE_DOUBLE=0
-D ARDUINOTRACE_ENABLE=0
-D CONFIG_ETH_ENABLED
unbuild_flags =
${common.core_unbuild_flags}
[espressi32_base]
platform = espressif32@6.5.0
framework = arduino
board_build.filesystem = littlefs
build_flags = ${common.build_flags}
build_unflags = ${common.unbuild_flags}
extra_scripts =
pre:scripts/build_interface.py
scripts/rename_fw.py
[espressi32_base_tasmota]
; use Tasmota's libary which removes some libs (like mbedtsl) and increases available heap
; platform = https://github.com/tasmota/platform-espressif32.git ; latest development
; latest release with WiFi_secure.h, Arduino 2.0.14
platform = https://github.com/tasmota/platform-espressif32/releases/download/2024.01.00/platform-espressif32.zip
; latest Arduino 3.0/IDF 5.1.(alpha 3):
; platform = https://github.com/tasmota/platform-espressif32/releases/download/2023.12.10/platform-espressif32.zip
framework = arduino
board_build.filesystem = littlefs
build_flags =
${common.build_flags}
-DTASMOTA_SDK
build_unflags = ${common.unbuild_flags}
extra_scripts =
pre:scripts/build_interface.py
scripts/rename_fw.py
[env]
monitor_speed = 115200
monitor_filters = esp32_exception_decoder
upload_speed = 921600
build_type = release
lib_ldf_mode = chain+
; board_build.flash_mode = qio
check_tool = cppcheck, clangtidy
check_severity = high, medium
check_flags =
cppcheck: --std=c++11 -v
clangtidy: --checks=-*,clang-analyzer-*,performance-*
; build for GitHub Actions CI
; the Web interface is built seperately
[env:ci]
extends = espressi32_base_tasmota
extra_scripts = scripts/rename_fw.py
board = esp32dev
board_build.partitions = esp32_partition_4M.csv
board_build.extra_flags = -DBOARD_HAS_PSRAM
[env:ci_s3]
extends = espressi32_base
extra_scripts = scripts/rename_fw.py
board = lolin_s3
board_build.f_cpu = 240000000L
board_upload.flash_size = 16MB
board_build.partitions = esp32_partition_16M.csv
build_unflags = ${common.unbuild_flags}
build_flags =
${espressi32_base.build_flags}
-O2
'-DEMSESP_DEFAULT_BOARD_PROFILE="S32S3"'
[env:esp32_4M]
extends = espressi32_base_tasmota
board = esp32dev
board_upload.flash_size = 4MB
board_build.partitions = esp32_partition_4M.csv
build_flags =
${espressi32_base_tasmota.build_flags}
-Os
[env:esp32_4Mplus]
extends = espressi32_base_tasmota
board = esp32dev
board_upload.flash_size = 4MB
board_build.partitions = esp32_asym_partition_4M.csv
[env:esp32_16M]
extends = espressi32_base_tasmota
board = esp32dev
board_build.extra_flags = -DBOARD_HAS_PSRAM
board_upload.flash_size = 16MB
board_build.partitions = esp32_partition_16M.csv
[env:lolin_c3_mini]
extends = espressi32_base_tasmota
board = lolin_c3_mini
board_upload.flash_size = 4MB
board_build.partitions = esp32_partition_4M.csv
build_flags =
${espressi32_base_tasmota.build_flags}
'-DEMSESP_DEFAULT_BOARD_PROFILE="C3MINI"'
; lolin C3 mini v1 needs special wifi init.
; https://www.wemos.cc/en/latest/c3/c3_mini_1_0_0.html#about-wifi
[env:lolin_c3_mini_v1]
extends = espressi32_base_tasmota
board = lolin_c3_mini
board_upload.flash_size = 4MB
board_build.partitions = esp32_partition_4M.csv
build_flags =
${espressi32_base_tasmota.build_flags}
-DBOARD_C3_MINI_V1
'-DEMSESP_DEFAULT_BOARD_PROFILE="C3MINI"'
[env:lolin_s2_mini]
extends = espressi32_base_tasmota
board = lolin_s2_mini
board_upload.flash_size = 4MB
board_build.partitions = esp32_partition_4M.csv
build_flags =
${espressi32_base_tasmota.build_flags}
'-DEMSESP_DEFAULT_BOARD_PROFILE="S2MINI"'
[env:lolin_s3]
extends = espressi32_base
board = lolin_s3
board_build.f_cpu = 240000000L
board_upload.flash_size = 16MB
board_build.partitions = esp32_partition_16M.csv
board_upload.use_1200bps_touch = false
board_upload.wait_for_upload_port = false
build_flags =
${espressi32_base.build_flags}
-O2
'-DEMSESP_DEFAULT_BOARD_PROFILE="S32S3"'
; to build and run: pio run -e standalone -t exec
[env:standalone]
platform = native
build_flags =
-DARDUINOJSON_ENABLE_STD_STRING=1 -DARDUINOJSON_ENABLE_PROGMEM=1 -DARDUINOJSON_ENABLE_ARDUINO_STRING -DARDUINOJSON_USE_DOUBLE=0
-DEMSESP_DEBUG -DEMSESP_STANDALONE -DEMSESP_TEST -D__linux__
-DEMSESP_DEFAULT_LOCALE=\"en\" -DEMSESP_DEFAULT_TX_MODE=8 -DEMSESP_DEFAULT_VERSION=\"3.6.4-dev\" -DEMSESP_DEFAULT_BOARD_PROFILE=\"S32\"
-lpthread
-std=gnu++11 -Og -ggdb
build_src_flags =
; -Wall -Wextra -Werror -Wswitch-enum -Wno-unused-parameter -Wno-inconsistent-missing-override -Wno-unused-lambda-capture -Wno-sign-compare
; -Wall -Wextra -Werror
-Wno-missing-braces
-I./lib_standalone
-I./lib/ArduinoJson/src
-I./lib/uuid-common/src
-I./lib/uuid-console/src
-I./lib/uuid-log/src
-I./lib/semver
-I./lib/PButton
-I./lib/espMqttClient/src
-I./lib/espMqttClient/src/Transport
build_src_filter =
+<*>
-<.git/>
+<../lib_standalone>
+<../lib/uuid-common>
+<../lib/uuid-console>
+<../lib/uuid-log>
+<../lib/semver>
+<../lib/PButton>
+<../lib/espMqttClient/src>
+<../lib/espMqttClient/src/Transport>
lib_compat_mode = off
lib_ldf_mode = off