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

[platformio]
default_envs = tbeam

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

[env]
test_build_src = true
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,"${platformio.build_dir}"/output.map
	-DUSE_THREAD_NAMES
	-DTINYGPS_OPTION_NO_CUSTOM_FIELDS
	-DPB_ENABLE_MALLOC=1
	-DRADIOLIB_EXCLUDE_CC1101=1
	-DRADIOLIB_EXCLUDE_NRF24=1
	-DRADIOLIB_EXCLUDE_RF69=1
	-DRADIOLIB_EXCLUDE_SX1231=1
	-DRADIOLIB_EXCLUDE_SX1233=1
	-DRADIOLIB_EXCLUDE_SI443X=1
	-DRADIOLIB_EXCLUDE_RFM2X=1
	-DRADIOLIB_EXCLUDE_AFSK=1
	-DRADIOLIB_EXCLUDE_BELL=1
	-DRADIOLIB_EXCLUDE_HELLSCHREIBER=1
	-DRADIOLIB_EXCLUDE_MORSE=1
	-DRADIOLIB_EXCLUDE_RTTY=1
	-DRADIOLIB_EXCLUDE_SSTV=1
	-DRADIOLIB_EXCLUDE_AX25=1
	-DRADIOLIB_EXCLUDE_DIRECT_RECEIVE=1
	-DRADIOLIB_EXCLUDE_BELL=1
	-DRADIOLIB_EXCLUDE_PAGER=1
	-DRADIOLIB_EXCLUDE_FSK4=1
	-DRADIOLIB_EXCLUDE_APRS=1
	-DRADIOLIB_EXCLUDE_LORAWAN=1
	-DMESHTASTIC_EXCLUDE_DROPZONE=1
	-DMESHTASTIC_EXCLUDE_REMOTEHARDWARE=1
	-DMESHTASTIC_EXCLUDE_HEALTH_TELEMETRY=1
  	-DMESHTASTIC_EXCLUDE_POWERSTRESS=1 ; exclude power stress test module from main firmware
        #-DBUILD_EPOCH=$UNIX_TIME
        #-D OLED_PL=1

monitor_speed = 115200
monitor_filters = direct
lib_deps =
	https://github.com/meshtastic/esp8266-oled-ssd1306.git#e16cee124fe26490cb14880c679321ad8ac89c95
	mathertel/OneButton@2.6.1
	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.91
	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
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

[radiolib_base]
lib_deps =
	jgromes/RadioLib@7.1.2

; Common libs for environmental measurements in telemetry module
; (not included in native / portduino)
[environmental_base]
lib_deps =
	adafruit/Adafruit BusIO@1.16.2
	adafruit/Adafruit Unified Sensor@1.1.14
	adafruit/Adafruit BMP280 Library@2.6.8
	adafruit/Adafruit BMP085 Library@1.2.4
	adafruit/Adafruit BME280 Library@2.2.4
	adafruit/Adafruit BMP3XX Library@2.1.5
	adafruit/Adafruit MCP9808 Library@2.0.2
	adafruit/Adafruit INA260 Library@1.5.2
	adafruit/Adafruit INA219@1.2.3
	adafruit/Adafruit MAX1704X@1.0.3
	adafruit/Adafruit SHTC3 Library@1.0.1
	adafruit/Adafruit LPS2X@2.0.6
	adafruit/Adafruit SHT31 Library@2.2.2
	adafruit/Adafruit PM25 AQI Sensor@1.1.1
	adafruit/Adafruit MPU6050@2.2.6
	adafruit/Adafruit LIS3DH@1.3.0
	adafruit/Adafruit AHTX0@2.0.5
	adafruit/Adafruit LSM6DS@4.7.3
	adafruit/Adafruit VEML7700 Library@2.1.6
	adafruit/Adafruit SHT4x Library@1.0.5
	adafruit/Adafruit TSL2591 Library@1.4.5
	sparkfun/SparkFun Qwiic Scale NAU7802 Arduino Library@1.0.6
	sparkfun/SparkFun 9DoF IMU Breakout - ICM 20948 - Arduino Library@1.2.13
	ClosedCube OPT3001@1.1.2
	emotibit/EmotiBit MLX90632@1.0.8
	adafruit/Adafruit MLX90614 Library@2.1.5
	https://github.com/boschsensortec/Bosch-BSEC2-Library#v1.7.2502
	boschsensortec/BME68x Sensor Library@1.1.40407
	https://github.com/KodinLanewave/INA3221@1.0.1
	mprograms/QMC5883LCompass@1.2.3
	dfrobot/DFRobot_RTU@1.0.3
	https://github.com/meshtastic/DFRobot_LarkWeatherStation#4de3a9cadef0f6a5220a8a906cf9775b02b0040d
	https://github.com/DFRobot/DFRobot_RainfallSensor#38fea5e02b40a5430be6dab39a99a6f6347d667e
	robtillaart/INA226@0.6.0

	; Health Sensor Libraries
	sparkfun/SparkFun MAX3010x Pulse and Proximity Sensor Library@1.1.2
