mirror of
https://github.com/emsesp/EMS-ESP32.git
synced 2025-12-06 07:49:52 +03:00
247 lines
7.4 KiB
INI
247 lines
7.4 KiB
INI
; PlatformIO Project Configuration File for EMS-ESP
|
|
; override any settings with your own local ones in pio_local.ini (see example pio_local.ini_example)
|
|
|
|
[platformio]
|
|
; default_envs = esp32_4M
|
|
default_envs = lolin_s3
|
|
; default_envs = esp32_16M
|
|
; default_envs = native
|
|
; default_envs = espressi32_v3
|
|
|
|
extra_configs =
|
|
factory_settings.ini
|
|
pio_local.ini
|
|
|
|
[common]
|
|
core_build_flags = -std=gnu++2a -Isrc -Wno-type-limits -Wall -Wextra -Wno-unused-parameter -Wno-unused-variable -Wno-format
|
|
core_unbuild_flags = -std=gnu++11
|
|
|
|
; my_build_flags is set in pio_local.ini
|
|
my_build_flags =
|
|
|
|
; explanation on some custom settings:
|
|
; CONFIG_ASYNC_TCP_QUEUE - see https://github.com/emsesp/EMS-ESP32/issues/177
|
|
; CONFIG_ASYNC_TCP_STACK_SIZE - stack usage measured: ESP32: ~2.3K, ESP32S3: ~3.5k
|
|
; CONFIG_ASYNC_TCP_TASK_PRIORITY - default is 10, was 5 for EMS-ESP
|
|
build_flags =
|
|
${common.core_build_flags}
|
|
${factory_settings.build_flags}
|
|
${common.my_build_flags}
|
|
-D ONEWIRE_CRC16=0
|
|
-D CONFIG_ETH_ENABLED
|
|
-D CONFIG_UART_ISR_IN_IRAM
|
|
-D CONFIG_ASYNC_TCP_STACK_SIZE=5120
|
|
-D CONFIG_ASYNC_TCP_QUEUE=32
|
|
-D CONFIG_ASYNC_TCP_TASK_PRIORITY=10
|
|
|
|
unbuild_flags =
|
|
${common.core_unbuild_flags}
|
|
|
|
[espressi32_base]
|
|
; 6.7.0 = Arduino v2.0.16 (based on IDF v4.4.7). See https://github.com/platformio/platform-espressif32/releases/tag/v6.7.0
|
|
platform = espressif32@6.7.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 library which removes some unused libs (like mbedtsl, so no WiFi_secure.h) and increases available heap
|
|
; Tasmota Arduino Core 2.0.17 with IPv6 support, based on IDF 4.4.7
|
|
; platform = https://github.com/tasmota/platform-espressif32/releases/download/2024.05.00/platform-espressif32.zip
|
|
; Tasmota Arduino Core 2.0.18 with IPv6 support, based on IDF 4.4.8
|
|
platform = https://github.com/tasmota/platform-espressif32/releases/download/2024.06.00/platform-espressif32.zip
|
|
; Tasmota Arduino Core 3.0.1.240605 based on IDF v5.1.4.240602
|
|
; platform = https://github.com/tasmota/platform-espressif32/releases/download/2024.06.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 = direct
|
|
upload_speed = 921600
|
|
build_type = release
|
|
check_tool = cppcheck, clangtidy
|
|
check_severity = high, medium
|
|
check_flags =
|
|
cppcheck: --std=c++11 -v
|
|
clangtidy: --checks=-*,clang-analyzer-*,performance-*
|
|
lib_ldf_mode = chain+
|
|
lib_deps =
|
|
https://github.com/emsesp/EMS-ESP-Modules.git
|
|
bblanchon/ArduinoJson@7.1.0
|
|
|
|
; build for GitHub Actions CI
|
|
; the Web interface is built seperately, so is skipped in extra_scripts
|
|
[env:ci]
|
|
; 4MB using Tasmota (no SSL)
|
|
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]
|
|
; 16MB ESP32-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}
|
|
'-DEMSESP_DEFAULT_BOARD_PROFILE="S32S3"'
|
|
|
|
[env:ci_16M]
|
|
; 16MB ESP32 with PSRAM
|
|
extends = espressi32_base
|
|
extra_scripts = scripts/rename_fw.py
|
|
board = esp32dev
|
|
board_build.partitions = esp32_partition_16M.csv
|
|
board_build.extra_flags = -DBOARD_HAS_PSRAM
|
|
build_flags =
|
|
${espressi32_base.build_flags}
|
|
'-DEMSESP_DEFAULT_BOARD_PROFILE="E32V2"'
|
|
|
|
; Direct builds
|
|
|
|
[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}
|
|
|
|
[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
|
|
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}
|
|
'-DEMSESP_DEFAULT_BOARD_PROFILE="S32S3"'
|
|
|
|
[env:esp32_s3_32M]
|
|
extends = espressi32_base
|
|
board = lolin_s3
|
|
board_build.f_cpu = 240000000L
|
|
board_upload.flash_size = 32MB
|
|
board_build.partitions = esp32_partition_32M.csv
|
|
board_build.flash_mode = opi
|
|
board_build.arduino.memory_type: opi_opi
|
|
build_unflags = ${common.unbuild_flags}
|
|
build_flags =
|
|
${espressi32_base.build_flags}
|
|
'-DEMSESP_DEFAULT_BOARD_PROFILE="S32S3"'
|
|
|
|
# for testing against the latest Arduino core v3 with IDF 5.1
|
|
[env:espressi32_v3]
|
|
platform = espressif32
|
|
platform_packages=
|
|
platformio/framework-arduinoespressif32 @ https://github.com/espressif/arduino-esp32.git#3.0.1
|
|
platformio/framework-arduinoespressif32-libs @ https://github.com/espressif/esp32-arduino-libs.git#idf-release/v5.1
|
|
framework = arduino
|
|
board = esp32dev
|
|
board_build.filesystem = littlefs
|
|
board_upload.flash_size = 16MB
|
|
board_build.partitions = esp32_partition_16M.csv
|
|
board_build.extra_flags = -DBOARD_HAS_PSRAM
|
|
build_flags =
|
|
${common.build_flags}
|
|
build_unflags = ${common.unbuild_flags}
|
|
|
|
; to build and run: pio run -e native -t exec
|
|
[env:native]
|
|
platform = native
|
|
extra_scripts = pre:scripts/rename_prog.py
|
|
build_flags =
|
|
-DARDUINOJSON_ENABLE_ARDUINO_STRING=1
|
|
-DEMSESP_DEBUG -DEMSESP_STANDALONE -DEMSESP_TEST
|
|
-DEMSESP_DEFAULT_LOCALE=\"en\" -DEMSESP_DEFAULT_TX_MODE=8 -DEMSESP_DEFAULT_VERSION=\"3.7.0-dev.0\" -DEMSESP_DEFAULT_BOARD_PROFILE=\"S32\"
|
|
-std=gnu++14 -Og -ggdb -D__linux__
|
|
build_src_flags =
|
|
-Wall -Wextra -Werror
|
|
-Wno-unused-parameter -Wno-sign-compare -Wno-missing-braces
|
|
-I./lib_standalone
|
|
-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
|
|
lib_ignore = ArduinoJson
|