Skip to content

Using Kconfig options in manifest file (PACMAN-1238) #104

@roma-jam

Description

@roma-jam

The Component Manager version

2.4.6

ESP-IDF Version

6.0

python Version

3.12.3

Operating System

Ubuntu 24.04

Browser (for https://components.espressif.com Issues)

No response

Description

Hi dear idf-compoment-manager Team,

I am trying to build the chain of idf-components with Kconfig parameter usage.

My approach was based on the description here, case 3:

dependencies:
   espressif/mdns:
      version: "1.8.1"

   example/cmp:
     version: "*"
     matches:
       - if: "$CONFIG{MDNS_MAX_SERVICES} == 10"

My potential setup:

  • top-level idf component esp-usb-wrp, that will provide public API for USB
  • second-level idf component esp-usb-backend, that should: fetch a component (tinyusb or cherryusb) based on the Kconfig parameter, provide the backend-specific api to esp-usb-wrp and interact with target-backend.

Why two of them, not one?
Because I expect the dependency pattern to work in my case when I am trying to build the example:

dependencies:
  roma-jam/esp-usb-wrp:
    version: "*"
    pre_release: true

  roma-jam/esp-usb-backend:
    version: "*"
    pre_release: true

But, obviously it is not working, that is why I decided to open the issue.

The current problem is that I am not able to get rid of the message during the config:

NOTICE: Processing 3 dependencies:
NOTICE: [1/3] roma-jam/esp-usb-backend (0.0.1-rc0) (/home/roman/workspace/Private/esp-usb-backend)
NOTICE: [2/3] roma-jam/esp-usb-wrp (0.0.1-beta0) (/home/roman/workspace/Private/esp-usb-wrp)
NOTICE: [3/3] idf (6.0.0)
CMake Warning at /home/roman/workspace/Espressif/github/esp-idf/tools/cmake/build.cmake:691 (message):
  WARNING: The following Kconfig variables were used in "if" clauses, but not
  found in any Kconfig file:

      ESP_USB_BACKEND_CHERRYUSB, introduced by cherry-embedded/cherryusb, defined in /home/roman/workspace/Private/esp-usb-backend/idf_component.yml
      ESP_USB_BACKEND_TINYUSB, introduced by roma-jam/tinyusb, defined in /home/roman/workspace/Private/esp-usb-backend/idf_component.yml

I am not sure that it is an issue, but the questions are:

  1. Am I able to use Kconfig and is it possible to use matches: - if: "$CONFIG{... in my case inside the second-level idf component? Or it is possible, only when they are present in the application manifest?
  2. Will/Should that work during overriding the path, because obviously I have to do that to try it out locally.

Sorry if I am missing something and thanks in advance.

To Reproduce

I don't know any example of that, but it is possible to create two components, where: 

1. component1: has a dependency from component2 and introduce the Kconfig parameters.
2. component2: has an optional dependency from component, which will be mapped via component1 config

Try to configure that with overriding_path.

Expected behaviour

Create a dependency and fetch different components, based on Kconfig parameter.

Additional info

No response

I have checked existing issues and online Documentation

  • I confirm I have checked existing issues and online Documentation.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions