/package/requirements

There are three different requirement types:

  • The <packages> section lists CMSIS Packs that have been used to configure the project. This includes the specification of a version range to ensure compatibility. If no version is provided, the latest installed version is used. If not yet installed, the latest available version will be installed before resolving the configuration.
  • The <compilers> section specifies the toolchains that are supported by this example. The required compiler version is specified using the version element. If no compiler is specified, it is assumed that any toolchain will work.
  • The <languages> section allows to specify requirements regarding the programming language, for example C99 standard. If no language requirements are set, ANSI C is assumed.

Example requirements section:

<package xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="PACK.xsd"/>
...
<requirements>
<packages>
<package name="STM32F4xx_DFP" vendor="Keil" version="2.8.0:2.8.0"/>
</packages>
<compilers>
<compiler name="ARMCC" version="5.0.0:5.99.0"/>
</compilers>
<languages>
<language name="C" version="99"/>
</languages>
</requirements>
...
</package>

/requirements

Parents Element Chain
package /package
Attributes Description Type Use
Child Elements Description Type Occurrence
packages List of software packs required for the project to build. PackagesType <0..1>
compilers List of compilers required for the project to build. Support for all compilers is assumed when not specified. CompilersType <0..1>
languages List of language standards required for the project to build. Assuming ANSI C if not set. LanguagesType <0..1>

 


/package/requirements/packages

Example packages section:

<package xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="PACK.xsd"/>
...
<requirements>
<packages>
<package name="STM32F4xx_DFP" vendor="Keil" version="2.8.0:2.8.0"/>
</packages>
</requirements>
...
</package>

/package

Parents Element Chain
packages /package/requirements/packages
Attributes Description Type Use
vendor specify vendor of the package (e.g. "ARM") RestrictedString required
name Name of the pack RestrictedString required
version Version of the required software pack which can be:
  • Minimum version (higher versions are accepted).
  • Version range specified with min_version:max_version. min_version must be lower or equal than max_version. If min_version and max_version are equal, the version must match.
  • If no version is specified, the latest available version is assumed.
VersionType optional

 


/package/requirements/compilers

Example compilers section:

<package xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="PACK.xsd"/>
...
<requirements>
<compilers>
<compiler name="ARMCC" version="5.0.0:5.99.0"/>
</compilers>
</requirements>
...
</package>

/compiler

Parents Element Chain
requirements element_requirements
Attributes Description Type Use
name Name of the required compiler (i.e. "ARMCC", "IAR") CompilerEnumType required
version Version of the required compiler which can be:
  • Minimum version (higher versions are accepted).
  • Version range specified with min_version:max_version. min_version must be lower or equal than max_version. If min_version and max_version are equal, the version must match.
VersionType required

 


/package/requirements/languages

Example languages section:

<package xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="PACK.xsd"/>
...
<requirements>
<languages>
<language name="C" version="99"/>
<languages>
</requirements>
...
</package>

/language

Parents Element Chain
requirements element_requirements
Attributes Description Type Use
name Name of the programming language (i.e. "C", "C++") xs:string required
version Version of the language standard (i.e. 90, 99, etc.). The setting will be reflected in the compiler commandline. xs:string required