PlatformIO Community

Dependencies management problem <freerRTOS - esp8266>

Hello
its my first post, i am having problem when compiling a project for wemos D-1 (esp8266). that the compiler is using some incompatible dependencies when linking and compiling the project with a presence of a freertos library (not included in the project at all; just installed)
so when i installed the arduino freeRTOS library, or STM32duino_FreeRTOS library, they work great with each target they are designed for, but when i compile irrelative project for and esp8266, the system detects dependencies of freeRTOS libraries and try to compile them with the project and give as a normal result a pile of errors, i need to remove the libraries from platformIO each time i want to compile …any idea hot prevent such incompatible dependencies ? thank you in advance

[env:nodemcuv2]
platform = espressif8266
board = d1
upload_protocol = espota
upload_port = 192.168.1.49
upload_flags =
  --port=8266
framework = arduino
upload_speed = 512000
monitor_speed = 115200

debug log :

Processing nodemcuv2 (platform: espressif8266; board: d1; framework: arduino)
-----------------------------------------------------------------------------------------------------------------------------------------------------------------

Verbose mode can be enabled via `-v, --verbose` option
CONFIGURATION: https://docs.platformio.org/page/boards/espressif8266/d1.html
PLATFORM: Espressif 8266 2.4.0 > WEMOS D1 R1
HARDWARE: ESP8266 80MHz, 80KB RAM, 4MB Flash
PACKAGES:
 - framework-arduinoespressif8266 3.20603.200130 (2.6.3)
 - tool-esptool 1.413.0 (4.13)
 - tool-esptoolpy 1.20800.0 (2.8.0)
 - tool-mkspiffs 1.200.0 (2.0)
 - toolchain-xtensa 2.40802.200502 (4.8.2)
LDF: Library Dependency Finder -> http://bit.ly/configure-pio-ldf
LDF Modes: Finder ~ chain, Compatibility ~ soft
Found 73 compatible libraries
Scanning dependencies...
Dependency Graph
|-- "<"Adafruit Unified Sensor> 1.1.2
|   |-- "<"Adafruit ADXL343> 1.3.0
|   |   |-- "<"Adafruit BusIO> 1.2.3
|   |   |   |-- "<"SPI> 1.0
|   |   |   |-- "<"Wire> 1.0
|   |   |-- '<'Wire> 1.0
|-- '<'DHT sensor library> 1.3.9
|   |-- '<'Adafruit Unified Sensor> 1.1.2
|   |   |-- '<'Adafruit ADXL343> 1.3.0
|   |   |   |--' <'Adafruit BusIO> 1.2.3
|   |   |   |   |-- '<'SPI> 1.0
|   |   |   |   |-- '<'Wire> 1.0
|   |   |   |-- '<'Wire> 1.0
|-- '<'IRremoteESP8266> 2.7.6
|-- '<'ArduinoOTA> 1.0
|   |-- '<'ESP8266WiFi> 1.0
|   |   |-- '<'FreeRTOS> 10.3.0-9
|   |-- '<'ESP8266mDNS> 1.2
|   |   |-- '<'ESP8266WiFi> 1.0
|   |   |   |-- '<'FreeRTOS> 10.3.0-9
|-- '<'EEPROM> 1.0
|-- '<'ESP8266HTTPClient> 1.2
|   |-- '<'ESP8266WiFi> 1.0
|   |   |-- '<'FreeRTOS> 10.3.0-9
|-- '<'ESP8266WebServer> 1.0
|   |-- '<'ESP8266WiFi> 1.0
|   |   |-- '<'FreeRTOS> 10.3.0-9
|-- '<'ESP8266WiFi> 1.0
|   |-- '<'FreeRTOS> 10.3.0-9
|-- '<'NTPClient> 3.1.0
|-- '<'SPI> 1.0
|-- '<'Time> 1.6
|-- '<'Timezone> 1.2.4
|   |-- '<'Time> 1.6
|-- '<'Wire> 1.0
|-- '<'WS2812FX> 1.2.3
|   |-- '<'Adafruit NeoPixel> 1.3.5
|   |   |-- '<'Time> 1.6
Building in release mode
Compiling .pio\build\nodemcuv2\src\index.html.cpp.o
Compiling .pio\build\nodemcuv2\src\main.cpp.o
Compiling .pio\build\nodemcuv2\src\main.js.cpp.o
Generating LD script .pio\build\nodemcuv2\ld\local.eagle.app.v6.common.ld
Compiling .pio\build\nodemcuv2\lib311\SPI\SPI.cpp.o
Compiling .pio\build\nodemcuv2\lib7e1\Wire\Wire.cpp.o
Compiling .pio\build\nodemcuv2\libbfb\Adafruit BusIO_ID6214\Adafruit_BusIO_Register.cpp.o
Compiling .pio\build\nodemcuv2\libbfb\Adafruit BusIO_ID6214\Adafruit_I2CDevice.cpp.o
Compiling .pio\build\nodemcuv2\libbfb\Adafruit BusIO_ID6214\Adafruit_SPIDevice.cpp.o
In file included from D:\PlatformIO\packages\framework-arduinoespressif8266\libraries\ESP8266WiFi\src/ESP8266WiFiType.h:26:0,
                 from D:\PlatformIO\packages\framework-arduinoespressif8266\libraries\ESP8266WiFi\src/ESP8266WiFi.h:33,
                 from src\main.cpp:2:
D:\PlatformIO\lib\FreeRTOS_ID507\src/queue.h:33:6: error: #error "include Arduino_FreeRTOS.h" must appear in source files before "include queue.h"
     #error "include Arduino_FreeRTOS.h" must appear in source files before "include queue.h"
      ^
In file included from D:\PlatformIO\lib\FreeRTOS_ID507\src/queue.h:40:0,
                 from D:\PlatformIO\packages\framework-arduinoespressif8266\libraries\ESP8266WiFi\src/ESP8266WiFiType.h:26,
                 from D:\PlatformIO\packages\framework-arduinoespressif8266\libraries\ESP8266WiFi\src/ESP8266WiFi.h:33,
                 from src\main.cpp:2:
Compiling .pio\build\nodemcuv2\libba1\Adafruit ADXL343_ID6117\Adafruit_ADXL343.cpp.o
Compiling .pio\build\nodemcuv2\lib40e\Adafruit Unified Sensor_ID31\Adafruit_Sensor.cpp.o
D:\PlatformIO\lib\FreeRTOS_ID507\src/task.h:33:6: error: #error "include Arduino_FreeRTOS.h must appear in source files before include task.h"
     #error "include Arduino_FreeRTOS.h must appear in source files before include task.h"
      ^
In file included from D:\PlatformIO\lib\FreeRTOS_ID507\src/task.h:36:0,
                 from D:\PlatformIO\lib\FreeRTOS_ID507\src/queue.h:40,
                 from D:\PlatformIO\packages\framework-arduinoespressif8266\libraries\ESP8266WiFi\src/ESP8266WiFiType.h:26,
                 from D:\PlatformIO\packages\framework-arduinoespressif8266\libraries\ESP8266WiFi\src/ESP8266WiFi.h:33,
                 from src\main.cpp:2:
D:\PlatformIO\lib\FreeRTOS_ID507\src/list.h:57:6: error: #error Arduino_FreeRTOS.h must be included before list.h
     #error Arduino_FreeRTOS.h must be included before list.h

.etc

Do not install FreeRTOS as a global library in that case, but manage the dependency per-project with the regular lib_deps statements (docs) if PIO gets confusedn with the include headers.

You can also try to work with either lib_ignore (docs), e.g. lib_ignore = FreeRTOS or a string lib_compat_mode (docs).