CMSIS-Pack: /package/requirements

| CMSIS-Pack Version 1.5.0 Delivery Mechanism for Software Packs

- Main Page
- Usage and Description

All Pages
/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