mirror of
https://github.com/agessaman/MeshCore.git
synced 2026-10-09 20:18:33 +00:00
Release builds published without running the unit tests or the preset parity check. Both channels now call those workflows and depend on them, parity pins the channel under test to the candidate SHA rather than a branch tip that may have moved, and check_observer_ci.py fails the run if that graph is weakened. Adds a sanitized native environment and extends the PR smoke matrix to the observer channels.
218 lines
6.6 KiB
INI
218 lines
6.6 KiB
INI
; PlatformIO Project Configuration File
|
|
;
|
|
; Build options: build flags, source filter
|
|
; Upload options: custom upload port, speed and extra flags
|
|
; Library options: dependencies, extra library storages
|
|
; Advanced options: extra scripting
|
|
;
|
|
; Please visit documentation for the other options and examples
|
|
; https://docs.platformio.org/page/projectconf.html
|
|
|
|
[platformio]
|
|
extra_configs =
|
|
variants/*/platformio.ini
|
|
platformio.local.ini
|
|
|
|
[arduino_base]
|
|
framework = arduino
|
|
monitor_speed = 115200
|
|
lib_deps =
|
|
SPI
|
|
Wire
|
|
;jgromes/RadioLib @ ^7.7.1
|
|
https://github.com/jgromes/RadioLib.git#6d8934836678d8894e3d556550475b37dce3e2b6
|
|
rweather/Crypto @ ^0.4.0
|
|
adafruit/RTClib @ ^2.1.3
|
|
melopero/Melopero RV3028 @ ^1.1.0
|
|
electroniccats/CayenneLPP @ 1.6.1
|
|
build_flags = -w -DNDEBUG -DRADIOLIB_STATIC_ONLY=1 -DRADIOLIB_GODMODE=1
|
|
-D LORA_FREQ=869.618
|
|
-D LORA_BW=62.5
|
|
-D LORA_SF=8
|
|
-D ENABLE_ADVERT_ON_BOOT=1
|
|
-D ENABLE_PRIVATE_KEY_IMPORT=1 ; NOTE: comment these out for more secure firmware
|
|
-D ENABLE_PRIVATE_KEY_EXPORT=1
|
|
-D RADIOLIB_EXCLUDE_CC1101=1
|
|
-D RADIOLIB_EXCLUDE_RF69=1
|
|
-D RADIOLIB_EXCLUDE_SX1231=1
|
|
-D RADIOLIB_EXCLUDE_SI443X=1
|
|
-D RADIOLIB_EXCLUDE_RFM2X=1
|
|
-D RADIOLIB_EXCLUDE_SX128X=1
|
|
-D RADIOLIB_EXCLUDE_AFSK=1
|
|
-D RADIOLIB_EXCLUDE_AX25=1
|
|
-D RADIOLIB_EXCLUDE_HELLSCHREIBER=1
|
|
-D RADIOLIB_EXCLUDE_MORSE=1
|
|
-D RADIOLIB_EXCLUDE_APRS=1
|
|
-D RADIOLIB_EXCLUDE_BELL=1
|
|
-D RADIOLIB_EXCLUDE_RTTY=1
|
|
-D RADIOLIB_EXCLUDE_SSTV=1
|
|
build_src_filter =
|
|
+<*.cpp>
|
|
+<helpers/*.cpp>
|
|
; MQTT-only sources (need Timezone/NTPClient); observer envs add them back.
|
|
-<helpers/MQTTMessageBuilder.cpp>
|
|
-<helpers/JWTHelper.cpp>
|
|
+<helpers/radiolib/*.cpp>
|
|
+<helpers/bridges/BridgeBase.cpp>
|
|
+<helpers/ui/MomentaryButton.cpp>
|
|
|
|
; ----------------- ESP32 ---------------------
|
|
|
|
[esp32_base]
|
|
extends = arduino_base
|
|
platform = platformio/espressif32@6.11.0
|
|
monitor_filters = esp32_exception_decoder
|
|
extra_scripts =
|
|
pre:scripts/generate_webconfig_html.py
|
|
; No-op unless MESHCORE_REDUCED_TLS=1; see docs/mbedtls-tls-footprint.md.
|
|
pre:scripts/mbedtls_4k.py
|
|
merge-bin.py
|
|
build_flags = ${arduino_base.build_flags}
|
|
-D ESP32_PLATFORM
|
|
; Route esp_transport_ws_init through src/helpers/ESP32WsTransportFix.cpp to
|
|
; fix a heap-overflow in the precompiled IDF 4.4 WS transport (see that file).
|
|
-Wl,--wrap=esp_transport_ws_init
|
|
; -D ESP32_CPU_FREQ=80 ; change it to your need
|
|
build_src_filter = ${arduino_base.build_src_filter}
|
|
+<helpers/esp32/WebConfigServer.cpp> ; empty TU unless WITH_MQTT_BRIDGE
|
|
|
|
[esp32_ota]
|
|
lib_deps =
|
|
ESP32Async/ESPAsyncWebServer @ 3.10.3
|
|
file://arch/esp32/AsyncElegantOTA
|
|
|
|
; esp32c6 uses arduino framework 3.x
|
|
; WARNING: experimental. May not work as stable as other platforms.
|
|
[esp32c6_base]
|
|
extends = esp32_base
|
|
platform = https://github.com/pioarduino/platform-espressif32/releases/download/53.03.13-1/platform-espressif32.zip
|
|
|
|
; ----------------- NRF52 ---------------------
|
|
|
|
[nrf52_base]
|
|
extends = arduino_base
|
|
platform = nordicnrf52
|
|
platform_packages =
|
|
; use internal fork that includes patch to ble stack to prevent firmware lockup during rapid connect/disconnect
|
|
; https://github.com/meshcore-dev/MeshCore/pull/1177
|
|
; https://github.com/meshcore-dev/MeshCore/pull/1295
|
|
framework-arduinoadafruitnrf52 @ https://github.com/meshcore-dev/Adafruit_nRF52_Arduino#d541301665b40959682252911e57b11df3ee651a
|
|
platformio/toolchain-gccarmnoneeabi@^1.140201.0
|
|
extra_scripts = create-uf2.py
|
|
build_flags = ${arduino_base.build_flags}
|
|
-D NRF52_PLATFORM
|
|
-D LFS_NO_ASSERT=1
|
|
-D EXTRAFS=1
|
|
-D USE_CC310_HW_CRYPTO=1
|
|
lib_deps =
|
|
${arduino_base.lib_deps}
|
|
https://github.com/oltaco/CustomLFS#0.2.3
|
|
; Vendored ESP-IDF MQTT client; the LDF otherwise pulls it into non-ESP builds.
|
|
lib_ignore = PsychicMqttClient
|
|
; ----------------- RP2040 ---------------------
|
|
|
|
[rp2040_base]
|
|
extends = arduino_base
|
|
upload_protocol = picotool
|
|
board_build.core = earlephilhower
|
|
platform = https://github.com/maxgerhardt/platform-raspberrypi.git ; framework-arduinopico @ 1.50600.0+sha.6a1d13e9
|
|
build_flags = ${arduino_base.build_flags}
|
|
-D RP2040_PLATFORM
|
|
|
|
; ----------------- STM32 ----------------------
|
|
|
|
[stm32_base]
|
|
extends = arduino_base
|
|
platform = ststm32
|
|
extra_scripts = post:arch/stm32/build_hex.py
|
|
build_flags = ${arduino_base.build_flags}
|
|
-D STM32_PLATFORM
|
|
-I src/helpers/stm32
|
|
-I $PROJECT_PACKAGES_DIR/framework-arduinoststm32/libraries/SubGhz/src
|
|
build_src_filter = ${arduino_base.build_src_filter}
|
|
+<helpers/stm32>
|
|
lib_deps = ${arduino_base.lib_deps}
|
|
file://arch/stm32/Adafruit_LittleFS_stm32
|
|
SubGhz
|
|
|
|
[sensor_base]
|
|
build_flags =
|
|
-D ENV_INCLUDE_GPS=1
|
|
-D ENV_INCLUDE_AHTX0=1
|
|
-D ENV_INCLUDE_BME280=1
|
|
-D ENV_INCLUDE_BMP280=1
|
|
-D ENV_INCLUDE_SHTC3=1
|
|
-D ENV_INCLUDE_SHT4X=1
|
|
-D ENV_INCLUDE_LPS22HB=1
|
|
-D ENV_INCLUDE_INA3221=1
|
|
-D ENV_INCLUDE_INA219=1
|
|
-D ENV_INCLUDE_INA226=1
|
|
-D ENV_INCLUDE_INA260=1
|
|
-D ENV_INCLUDE_MLX90614=1
|
|
-D ENV_INCLUDE_VL53L0X=1
|
|
-D ENV_INCLUDE_BME680=1
|
|
-D ENV_INCLUDE_BMP085=1
|
|
lib_deps =
|
|
adafruit/Adafruit INA3221 Library @ ^1.0.1
|
|
adafruit/Adafruit INA219 @ ^1.2.3
|
|
robtillaart/INA226 @ ^0.6.4
|
|
adafruit/Adafruit INA260 Library @ ^1.5.3
|
|
adafruit/Adafruit AHTX0 @ ^2.0.5
|
|
adafruit/Adafruit BME280 Library @ ^2.3.0
|
|
adafruit/Adafruit BMP280 Library @ ^2.6.8
|
|
adafruit/Adafruit SHTC3 Library @ ^1.0.1
|
|
sensirion/Sensirion I2C SHT4x @ ^1.1.2
|
|
arduino-libraries/Arduino_LPS22HB @ ^1.0.2
|
|
adafruit/Adafruit MLX90614 Library @ ^2.1.5
|
|
adafruit/Adafruit_VL53L0X @ ^1.2.4
|
|
stevemarple/MicroNMEA @ ^2.0.6
|
|
adafruit/Adafruit BME680 Library @ ^2.0.4
|
|
adafruit/Adafruit BMP085 Library @ ^1.2.4
|
|
|
|
; ----------------- TESTING ---------------------
|
|
; Host GoogleTest suites for the fork's pure logic. See test/README.md.
|
|
; Run: `pio test -e native` (all) or `pio test -e native -f <suite>` (one).
|
|
|
|
[env:native]
|
|
platform = native
|
|
test_framework = googletest
|
|
build_flags = -std=c++17
|
|
-I src
|
|
-I test/mocks
|
|
test_build_src = yes
|
|
test_ignore = test_kiss_modem
|
|
build_src_filter =
|
|
-<*>
|
|
+<../src/Utils.cpp>
|
|
+<../src/helpers/MQTTPayloadBuilder.cpp>
|
|
+<../src/Packet.cpp>
|
|
+<../src/helpers/ConfigSerializer.cpp>
|
|
+<../src/helpers/DynamicConfigSerializer.cpp>
|
|
+<../test/mocks/CommonRadioPrefs.cpp>
|
|
lib_deps =
|
|
google/googletest @ 1.17.0
|
|
bblanchon/ArduinoJson @ 7.4.3
|
|
|
|
[env:native_sanitized]
|
|
extends = env:native
|
|
build_flags = ${env:native.build_flags}
|
|
-fsanitize=address,undefined
|
|
-fno-omit-frame-pointer
|
|
-g
|
|
|
|
[env:native_kiss_modem]
|
|
platform = native
|
|
test_framework = googletest
|
|
build_flags = -std=c++17
|
|
-I test/mocks
|
|
-I src
|
|
-I examples/kiss_modem
|
|
test_build_src = yes
|
|
test_filter = test_kiss_modem
|
|
build_src_filter =
|
|
-<*>
|
|
+<../examples/kiss_modem/KissModem.cpp>
|
|
lib_deps =
|
|
google/googletest @ 1.17.0
|
|
bblanchon/ArduinoJson @ 7.4.3
|