Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Platform restrictions on dependencies of submodule in project not honored #5073

Open
Bascy opened this issue Jan 25, 2025 · 0 comments
Open
Labels
help wanted LDF Library Dependency Finder

Comments

@Bascy
Copy link

Bascy commented Jan 25, 2025

This issue is created on advise from @maxgerhardt after posting on the forum at https://community.platformio.org/t/platform-restrictions-on-dependencies-of-submodule-in-project-not-honored/45493


Using:
PlatformIO 6.1.16
VSCode: 1.96.4
PlatformIO IDE extension: 3.3.4


Our project makes use of submodules, including our own specific libraries into a project. A submodule has its own dependencies, listed in the library.json file.
Of course the dependencies listed in the submodule have their own dependencies.

Example:

 ProjectX
   /lib/Sense_Modbus (submodule)
      miq19/eModbus
          AsyncTcp   restricted to platforms: ["espressif32"]
          Ethernet     restricted to platform: ["espressif32"]
          ESPAsyncTCP restricted to platforms: ["espressif8266"]

When compiling and downloading dependencies using espressif32 platform, all three dependencies of eModbus are installed in .pio/libdeps and this will cause compile errors in the ESPAsyncTCP library.

When I open the Sense_Modbus library as a standalone project and build it using espressif32, the ESPAsyncTCP dependency is NOT downloaded.

There are no references to any source files from the ESPAsyncTCP library in the code, so it looks like the dependency finder does not use the platform setting when adding dependencies of dependencies of submodules to the list.

Tried to add library_compat_mode = strict or lib_compat to the library.json of Sense-Modbus but that does not change the outcome

library.json of Sense_Modbus (relevant part)

  "frameworks": "Arduino",
  "platforms": [
    "espressif32"
  ],
  "dependencies": [
    {
      "name": "EspSoftwareSerial",
      "version": "plerup/EspSoftwareSerial @ ^6.17.0"
    },
    {
      "name": "eModbus",
      "version": "miq19/eModbus @ 1.7.2"
    }
  ]

library.json of eModbus (relevant portion)

  "repository": {
    "type": "git",
    "url": "https://github.com/eModbus/eModbus",
    "branch": "master"
  },
  "dependencies": [
    {
      "owner": "me-no-dev",
      "name": "AsyncTCP",
      "version": "*",
      "platforms": ["espressif32"]
    },
    {
      "owner": "me-no-dev",
      "name": "ESPAsyncTCP",
      "version": "*",
      "platforms": ["espressif8266"]
    },
    {
      "name": "Ethernet",
      "version": "https://github.com/arduino-libraries/Ethernet.git",
      "platforms": ["espressif32"]
    }
  ],
  "frameworks": "arduino",
  "platforms": [
    "espressif32",
    "espressif8266"
  ]


@ivankravets ivankravets added help wanted LDF Library Dependency Finder labels Feb 8, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
help wanted LDF Library Dependency Finder
Projects
None yet
Development

No branches or pull requests

2 participants