Open-CMSIS-Pack / Open-CMSIS-Pack-Spec

Common Microcontroller Software Interface Standard - Pack(age) based distribution system
https://open-cmsis-pack.github.io/Open-CMSIS-Pack-Spec/
Apache License 2.0
50 stars 20 forks source link

Provide a way to select an `<api>` from a pack without implementation #256

Open MiloradCvjetkovic opened 9 months ago

MiloradCvjetkovic commented 9 months ago

Today the selection of an <api> [-version] is implicit through the selection of a component implementing an <api> and the component's attribute Capiversion.

For building libraries or project local implementation of an <api> it is useful to be able to reference just the API from a pack and not to require a component e.g. Custom or similar that does not contain any implementation (or just a template for the implementation).

ReinhardKeil commented 5 months ago

This may require an extension to the csolution tool.

The current solution is to provide a "custom" component that provides access to API headers and user code templates for implementation. IMHO this could be also used for the library variant of a middleware component that needs to compile against the API.

Let's discuss how this would be used in a practical implementation.

ReinhardKeil commented 5 months ago

This affects developers that provide a standardized middleware. Compared to users of this middleware it is only a very small fraction of developers. Making API a selectable option (i.e. in an IDE) it could get confusing to middleware users.

Work-arounds for middleware developers are:

ReinhardKeil commented 4 months ago

Add hints on how to create middleware packs in a documentation