XCDL (eXtensible Component Definition Language) Wiki

From XCDL (eXtensible Component Definition Language) Wiki
Jump to: navigation, search


This SourceForge project aims to define and implement an eXtensible Component Definition Language (CDL) intended to configure and build complex, package based, multi-variant (multi-architecture, multi-board, multi-toolchain) embedded projects. It is inspired by eCos CDL and ARM CMSIS Pack. The primary projects to benefit from XCDL are µOS++ IIIe (as content for the components) and GNU ARM Eclipse plug-ins (as tools to manage the components).


XCDL was definitely inspired by the eCos CDL, and many concepts are borrowed from it, including large excerpts from the eCos manuals, especially from The eCos Component Writer’s Guide.

The XCDL Eclipse implementation also maintains a good degree of compatibility with the current ARM CMSIS Packs (v1.x). More CMSIS Packs features are planned to be integrated, so that XCDL to be a superset of CMSIS Pack.

Reference implementations

The reference implementation will include one or more Eclipse plug-ins as graphical configuration tools (part of GNU ARM Eclipse plug-ins), and several Python command line tools for non graphical environments (source code part of this project).

Although targeted to Eclipse, these specifications should not prevent other development environments to implement them, so, if needed, these specifications might be amended to make alternate implementations possible.

Specifications & documentation



How to use



The XCDL software is released under the MIT License.


Old version (Python) pages


  • eCos - The embedded configurable operating system by Cygnus Solutions (Wikipedia)
  • Manual: The eCos Component Writer’s Guide, by Bart Veer and John Dallaway, published in 2001, available from eCos Documentation.
  • Book: Embedded software development with eCos, by Anthony J. Massa, published in 2003 at Prentice Hall, available from Amazon
  • Book: Software Build Systems: Principles and Experience, by Peter Smith, published in 2011 at Addison Wesley, available from Amazon
  • IEEE Std 830-1998: IEEE Recommended Practice for Software Requirements Specifications, published in 1998
  • CMSIS-Pack - ARM mechanism to install software, device support, APIs, and example projects

Distribution management systems

Build tools

For an exhaustive list, see Wikipedia.

  • Apache Maven (written in Java, XML configuration files)
  • SCons (configuration files are Python scripts)
  • RAKE - Ruby Make (tasks and dependencies in Ruby)
  • Gradle (written in Groovy)
  • CMake (written in C++; uses native builders like make)
  • Waf (a build tool written in Python)
  • GNU Make

Continuous integration

For an exhaustive list see Wikipedia.

  • Hudson (the original Sun project, donated by Oracle to the Eclipse Foundation)
  • Jenkins (the more active fork, backed by the project creator)

MediaWiki links

Consult the User's Guide for information on using the wiki software.