Skip to main content

cdlProject object

note

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, use generated/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