cdlProject object
Work in progress.
Purpose
Provide the top definitions for an application project or a sub-project (like tests).
Syntax
{
"cdlProject": {
"name": "<name>",
"display": "<short name>",
"description": "<long text>",
... project members ...
"cdlConfigurations": {
"<name>": {
... configuration members ...
}
...
}
}
}
Description
The cdlProject object defines the overall project structure, like the
configuration hierarchy and the xCDL configurations.
At the limit, the configuration hierarchy can be defined in place for
the entire project, but if the
project is modular and uses libraries, they usually have their own xCDL
files, and the project uses includeCDLs to bring everything together.
The cdlProject object is expected to be located in the top folder of
a project or in sub-project folders, in a file
named xcdl-project.json.
Containers
The cdlProject is inherently a container which may include objects that will go
into the configuration hierarchy (like cdlComponents,
cdlOptions, cdlInterfaces) and cdlConfigurations,
that will complement them with user settings.
Properties
name- the internal name used to identify the project-
description- provides a reasonably long paragraph with a textual description for the project -
display- provides a node name for the project when rendered in the configuration hierarchy -
headerFile- the full file path of the header where the project will generate a definition (if missing, usegenerated/include/xcdl-configuration.h) packagesHeaderFile- the file where the list of generated packages will be stored-
includeCDLs- an array of paths to xCDL metadata files to be parsed, with their objects to included as children of the current node properties- a map of additional properties that can be used by the project and its components and options for the LiquidJS substitutions context.
Example
{
"cdlProject": {
"name": "hello",
"display": "Hello World",
"description": "The classical Hello World minimal project.",
"headerFile": "generated/include/hello-configuration.h",
"includeCDLs": [
"xpacks/@micro-os-plus/diag-trace/xcdl-package.json",
],
"cdlConfigurations": {
"debug": {
"buildType": "debug"
},
"release": {
"inherits": "debug",
"buildType": "release"
}
}
}
}
See also
eCos reference
The cdlProject has no direct equivalent in eCos.
add filters to format numbers, like 0xXXXX