- Main Page
- Namespaces
- Classes
- Files
- Examples

- File List
- File Members

# exiv2_version.h File Reference

Define to check the Exiv2 version. The Exiv2 library itself does not use the defines in this file, they are meant for use by applications. References: Similar versioning defines are used in KDE, GTK and other libraries. See http://apr.apache.org/versioning.html for accompanying guidelines. More...

This graph shows which files directly or indirectly include this file:

## Defines
#define | EXIV2_MAJOR_VERSION (0)
| Exiv2 MAJOR version number.
#define | EXIV2_MINOR_VERSION (10)
| Exiv2 MINOR version number.
#define | EXIV2_PATCH_VERSION (0)
| Exiv2 PATCH version number.
#define | EXIV2_MAKE_VERSION(major, minor, patch) (((major) << 16) | ((minor) << 8) | (patch))
| Make an integer version number for comparison from a major, minor and a patch version number.
#define | EXIV2_VERSION EXIV2_MAKE_VERSION(EXIV2_MAJOR_VERSION,EXIV2_MINOR_VERSION,EXIV2_PATCH_VERSION)
| The Exiv2 version number as an integer number for easy comparison.
#define | EXIV2_CHECK_VERSION(major, minor, patch) ( EXIV2_VERSION >= EXIV2_MAKE_VERSION(major,minor,patch) )
| Check the version of the Exiv2 library. Return TRUE if the version of Exiv2 is the same as or newer than the passed-in version.

## Detailed Description

Define to check the Exiv2 version. The Exiv2 library itself does not use the defines in this file, they are meant for use by applications. References: Similar versioning defines are used in KDE, GTK and other libraries. See http://apr.apache.org/versioning.html for accompanying guidelines.

Version:
  $Rev$

Author:
  Andreas Huggel (ahu) ahuggel@gmx.net

Date:
  31-May-06, ahu: created

## Define Documentation

#define EXIV2_CHECK_VERSION | ( | major,
|  | minor,
|  | patch |  | ) | ( EXIV2_VERSION >= EXIV2_MAKE_VERSION(major,minor,patch) )

| Check the version of the Exiv2 library. Return TRUE if the version of Exiv2 is the same as or newer than the passed-in version. Versions are denoted using a standard triplet of integers: MAJOR.MINOR.PATCH. The basic intent is that MAJOR versions are incompatible, large-scale upgrades of the API. MINOR versions retain source and binary compatibility with older minor versions, and changes in the PATCH level are perfectly compatible, forwards and backwards. Details of these guidelines are described in http://apr.apache.org/versioning.html It is important to note that as long as the library has not reached 1.0.0 it is not subject to the guidelines described in the document above. Before a 1.0 release (version 0.x.y), the API can and will be changing freely, without regard to the restrictions detailed in the above document.
      // Don't include the exiv2_version.h file, it is included by types.hpp
      // Exiv2 versions before 0.10 didn't have this file and the macros

      #ifndef EXIV2_CHECK_VERSION
      # define EXIV2_CHECK_VERSION(a,b,c) (false)
      #endif

      // ...

      // Check the Exiv2 version available at runtime
      if (EXIV2_CHECK_VERSION(0,10,0)) {
          // Available Exiv2 version is equal to or greater than requested
      }
      else {
          // Installed Exiv2 version is less than requested
      }