Component Reference
A component reference uniquely identifies and locates a component within an SDK or SDK extension. A component reference consists of the following fields:
| Field |
Required |
Type |
Description |
id |
Yes |
String |
ID of the component listed under the component/id key. |
vendor |
No |
String |
The vendor of the SDK extension the component is from. Only vendors listed under extension/vendor or sdk/vendor key may be used. |
package |
No |
String |
The ID of the SDK extension the component is from. Only SDK extensions listed using the sdk_extension/id or sdk/id key may be used. |
Search Scope Rules
The search scope for components varies depending on the context and reference fields:
| Reference Type |
Package |
Vendor |
Behavior |
Search Scope |
| Package-specific |
✔ |
– |
Selects component from a specific package, regardless of vendor |
All vendors, specified package |
| Vendor-specific |
– |
✔ |
Selects component provided by a specific vendor, regardless of package |
All packages from specified vendor |
| Fully Qualified |
✔ |
✔ |
Selects component from a specific vendor's specific package |
Exact package from exact vendor |
| Fully Implicit in context of component |
– |
– |
Selects component from within the containing package |
Only within the containing package |
| Fully Implicit in context of project |
– |
– |
Selects component across all available packages across all vendors |
All packages and vendors available to the project |
Examples
Project Component
1
2
3
4
5
6
7
8
9
10
11
12
13 | component:
# Fully implicit reference; search all extensions available to the project
- id: tuna
# Vendor-specific reference; Limit search to vendor's sdk/extension
- id: marlin
vendor: grocer
# Package-specific reference; Limit search to extension ID by any vendor
- id: cod
package: atlantic
# Fully qualified reference; Limit search to pacific sdk/extension by vendor fishmonger
- id: salmon
package: pacific
vendor: fishmonger
|
Component Configuration
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 | config_file:
- path: config/marlin_hunt.h
override:
# Fully implicit reference; Search within the containing package
component: marlin
file_id: hunt_control
- path: config/tuna_speed.h
override:
# Fully qualified reference; Limit search to atlantic package by vendor fishmonger
component: tuna
file_id: speed_settings
vendor: fishmonger
package: atlantic
- path: config/cod_school.h
override:
# Vendor-specific reference; Limit search to vendor's specific SDK/extension
component: cod
file_id: school_config
vendor: fishmonger
- path: config/salmon_swim.h
override:
# Package-specific reference; Limit search to package ID by any vendor
component: salmon
file_id: swim_style
package: pacific
|
Error Handling
- If multiple matching components are found in different packages, the tool will error.
- If no matching component is found using the provided reference, the resolution fails
- For implicit references in SLCC context, components outside containing package will not be found, even if they exist in project