Versioning

## Versioning Versioning — compile time version checking |

## Synopsis

    #define             ETHOS_MAJOR_VERSION
    #define             ETHOS_MINOR_VERSION
    #define             ETHOS_MICRO_VERSION
    #define             ETHOS_API_VERSION_S
    #define             ETHOS_VERSION_S
    #define             ETHOS_VERSION_HEX
    #define             ETHOS_CHECK_VERSION                 (major,minor,micro)

## Description

Ethos provides some API and definitions for compile-time version checking.

## Details

### ETHOS_MAJOR_VERSION

    #define ETHOS_MAJOR_VERSION      (0)

Major version of Ethos, e.g. 1 in "1.2.3"

### ETHOS_MINOR_VERSION

    #define ETHOS_MINOR_VERSION      (2)

Minor version of Ethos, e.g. 2 in "1.2.3"

### ETHOS_MICRO_VERSION

    #define ETHOS_MICRO_VERSION      (2)

Micro version of Ethos, e.g. 3 in "1.2.3"

### ETHOS_API_VERSION_S

    #define ETHOS_API_VERSION_S      "1.0"

Version of the API of Ethos

### ETHOS_VERSION_S

    #define ETHOS_VERSION_S          ""

Stringified version of Ethos, e.g. "1.2.3".

Useful for display.

### ETHOS_VERSION_HEX

    #define             ETHOS_VERSION_HEX

Hexadecimally encoded version of Ethos, e.g. 0x01020300"

Useful for comparisons.

### ETHOS_CHECK_VERSION()

    #define             ETHOS_CHECK_VERSION(major,minor,micro)

Checks whether the decomposed version (`major`, `minor`, `micro`) is bigger than the version of Ethos. This is a compile-time check only.

`major` : | major component of the version to check
`minor` : | minor component of the version to check
`micro` : | micro component of the version to check