; PlatformIO Project Configuration File
; https://docs.platformio.org/page/projectconf.html

[platformio]
default_envs = tbeam
;default_envs = pico
;default_envs = tbeam-s3-core
;default_envs = tbeam0.7
;default_envs = heltec-v1
;default_envs = heltec-v2_0
;default_envs = heltec-v2_1
;default_envs = heltec-wireless-tracker
;default_envs = chatter2
;default_envs = tlora-v1
;default_envs = tlora_v1_3
;default_envs = tlora-v2
;default_envs = tlora-v2-1-1_6
;default_envs = tlora-v2-1-1_6-tcxo
;default_envs = tlora-t3s3-v1
;default_envs = lora-relay-v1 # nrf board
;default_envs = t-echo
;default_envs = canaryone
;default_envs = nrf52840dk-geeksville
;default_envs = native # lora-relay-v1 # nrf52840dk-geeksville # linux # or if you'd like to change the default to something like lora-relay-v1 put that here
;default_envs = nano-g1
;default_envs = pca10059_diy_eink
;default_envs = meshtastic-diy-v1
;default_envs = meshtastic-diy-v1_1
;default_envs = meshtastic-dr-dev
;default_envs = m5stack-coreink
;default_envs = rak4631
;default_envs = rak10701
;default_envs = wio-e5
;default_envs = radiomaster_900_bandit_nano
;default_envs = radiomaster_900_bandit_micro
;default_envs = heltec_capsule_sensor_v3

extra_configs =
  arch/*/*.ini
  variants/*/platformio.ini

[env]
extra_scripts = bin/platformio-custom.py

; note: we add src to our include search path so that lmic_project_config can override
; note: TINYGPS_OPTION_NO_CUSTOM_FIELDS is VERY important.  We don't use custom fields and somewhere in that pile
; of code is a heap corruption bug!
; FIXME: fix lib/BluetoothOTA dependency back on src/ so we can remove -Isrc
; The Radiolib stuff will speed up building considerably. Exclud all the stuff we dont need.
build_flags = -Wno-missing-field-initializers
  -Wno-format
  -Isrc -Isrc/mesh -Isrc/mesh/generated -Isrc/gps -Isrc/buzz -Wl,-Map,.pio/build/output.map
  -DUSE_THREAD_NAMES
  -DTINYGPS_OPTION_NO_CUSTOM_FIELDS
  -DPB_ENABLE_MALLOC=1
  -DRADIOLIB_EXCLUDE_CC1101
  -DRADIOLIB_EXCLUDE_NRF24
  -DRADIOLIB_EXCLUDE_RF69
  -DRADIOLIB_EXCLUDE_SX1231
  -DRADIOLIB_EXCLUDE_SX1233
  -DRADIOLIB_EXCLUDE_SI443X
  -DRADIOLIB_EXCLUDE_RFM2X
  -DRADIOLIB_EXCLUDE_AFSK
  -DRADIOLIB_EXCLUDE_BELL
  -DRADIOLIB_EXCLUDE_HELLSCHREIBER
  -DRADIOLIB_EXCLUDE_MORSE
  -DRADIOLIB_EXCLUDE_RTTY
  -DRADIOLIB_EXCLUDE_SSTV
  -DRADIOLIB_EXCLUDE_AX25
  -DRADIOLIB_EXCLUDE_DIRECT_RECEIVE
  -DRADIOLIB_EXCLUDE_BELL
  -DRADIOLIB_EXCLUDE_PAGER
  -DRADIOLIB_EXCLUDE_FSK4
  -DRADIOLIB_EXCLUDE_APRS
  -DRADIOLIB_EXCLUDE_LORAWAN

monitor_speed = 115200

lib_deps =
  jgromes/RadioLib@~6.6.0
  https://github.com/meshtastic/esp8266-oled-ssd1306.git#ee628ee6c9588d4c56c9e3da35f0fc9448ad54a8 ; ESP8266_SSD1306
  mathertel/OneButton@^2.5.0 ; OneButton library for non-blocking button debounce
  https://github.com/meshtastic/arduino-fsm.git#7db3702bf0cfe97b783d6c72595e3f38e0b19159
  https://github.com/meshtastic/TinyGPSPlus.git#71a82db35f3b973440044c476d4bcdc673b104f4
  https://github.com/meshtastic/ArduinoThread.git#1ae8778c85d0a2a729f989e0b1e7d7c4dc84eef0
  nanopb/Nanopb@^0.4.8
  erriez/ErriezCRC32@^1.0.1

; Used for the code analysis in PIO Home / Inspect
check_tool = cppcheck
check_skip_packages = yes
check_flags =
  -DAPP_VERSION=1.0.0
  --suppressions-list=suppressions.txt
  --inline-suppr

; Common settings for conventional (non Portduino) Arduino targets
[arduino_base]
framework = arduino
lib_deps =
  ${env.lib_deps}
  end2endzone/NonBlockingRTTTL@^1.3.0
  https://github.com/meshtastic/SparkFun_ATECCX08a_Arduino_Library.git#5cf62b36c6f30bc72a07bdb2c11fc9a22d1e31da

build_flags = ${env.build_flags} -Os
build_src_filter = ${env.build_src_filter} -<platform/portduino/>

; Common libs for communicating over TCP/IP networks such as MQTT
[networking_base]
lib_deps =
  knolleary/PubSubClient@^2.8
  arduino-libraries/NTPClient@^3.1.0
  arcao/Syslog@^2.0.0

; Common libs for environmental measurements in telemetry module
; (not included in native / portduino)
[environmental_base]
lib_deps =
  adafruit/Adafruit BusIO@^1.15.0
  adafruit/Adafruit Unified Sensor@^1.1.11
  adafruit/Adafruit BMP280 Library@^2.6.8
  adafruit/Adafruit BMP085 Library@^1.2.4
  adafruit/Adafruit BME280 Library@^2.2.2
  https://github.com/boschsensortec/Bosch-BSEC2-Library#v1.7.2502
  boschsensortec/BME68x Sensor Library@^1.1.40407
  adafruit/Adafruit MCP9808 Library@^2.0.0
  https://github.com/KodinLanewave/INA3221@^1.0.0
  adafruit/Adafruit INA260 Library@^1.5.0
  adafruit/Adafruit INA219@^1.2.0
  adafruit/Adafruit SHTC3 Library@^1.0.0
  adafruit/Adafruit LPS2X@^2.0.4
  adafruit/Adafruit SHT31 Library@^2.2.2
  adafruit/Adafruit PM25 AQI Sensor@^1.0.6
  adafruit/Adafruit MPU6050@^2.2.4
  adafruit/Adafruit LIS3DH@^1.2.4
  adafruit/Adafruit AHTX0@^2.0.5
  lewisxhe/SensorLib@^0.2.0
  adafruit/Adafruit LSM6DS@^4.7.2
  mprograms/QMC5883LCompass@^1.2.0
  adafruit/Adafruit VEML7700 Library@^2.1.6
  adafruit/Adafruit SHT4x Library@^1.0.4
  adafruit/Adafruit TSL2591 Library@^1.4.5
  ClosedCube OPT3001@^1.1.2
  emotibit/EmotiBit MLX90632@^1.0.8
  dfrobot/DFRobot_RTU@^1.0.3
  https://github.com/meshtastic/DFRobot_LarkWeatherStation#0e884fc86b7a0b602c7ff3d26b893b997f15c6ac