Files
DD3-LoRa-Bridge-MultiSender/platformio.ini
acidburns 5edb79f372 refactor(build): consolidate envs to production/debug/test; add compiler hardening flags
- Replace 11 per-frequency build environments with 3 role-based targets
  (production, debug, test) using shared [env] base section
- Move LoRa frequency and sender-ID config from build flags into config.h
  so all variants build from the same source
- Add -fstack-protector-strong, -D_FORTIFY_SOURCE=2, -Wformat-security
- Add Unity test framework to lib_deps for pio test support
- Add __pycache__/ to .gitignore
2026-03-17 12:31:16 +01:00

58 lines
1.7 KiB
INI
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
; PlatformIO Project Configuration File
;
; Build targets:
; production serial off, light-sleep on (normal deployment)
; debug serial + meter diag + state tracing (real meter, real data)
; test synthetic meter data + payload codec self-test (no real meter needed)
;
; LoRa frequency and sender IDs are configured in include/config.h,
; NOT via build flags. Change them there before building.
[env]
platform = https://github.com/pioarduino/platform-espressif32/releases/download/51.03.07/platform-espressif32.zip
board = ttgo-lora32-v1
framework = arduino
lib_deps =
sandeepmistry/LoRa@^0.8.0
bblanchon/ArduinoJson@^6.21.5
adafruit/Adafruit SSD1306@^2.5.9
adafruit/Adafruit GFX Library@^1.11.9
knolleary/PubSubClient@^2.8
throwtheswitch/Unity@^2.6.1
; --- Hardening flags for all builds ---
build_flags =
-fstack-protector-strong
-D_FORTIFY_SOURCE=2
-Wformat -Wformat-security
-Wno-format-truncation
; --- Production: serial off, light-sleep on ---
[env:production]
build_flags =
${env.build_flags}
-DSERIAL_DEBUG_MODE_FLAG=0
-DENABLE_LIGHT_SLEEP_IDLE=1
; --- Debug: serial + all diagnostics, real meter data ---
; Does NOT enable test mode — uses real meter + real LoRa.
[env:debug]
build_flags =
${env.build_flags}
-DSERIAL_DEBUG_MODE_FLAG=1
-DENABLE_LIGHT_SLEEP_IDLE=1
-DDEBUG_METER_DIAG
-DDD3_DEBUG
; --- Test: synthetic meter samples, payload codec self-test at boot ---
; Replaces real meter reading with fake 1 Hz data and publishes to test MQTT topic.
; Use for bench testing without a physical meter attached.
[env:test]
build_flags =
${env.build_flags}
-DSERIAL_DEBUG_MODE_FLAG=1
-DENABLE_TEST_MODE
-DPAYLOAD_CODEC_TEST
-DDEBUG_METER_DIAG
-DDD3_DEBUG