version.hpp File Reference

Precompiler define and a function to test the Exiv2 version. 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:

Included by dependency graph

Namespaces

namespace  Exiv2

Defines

#define EXIV2_MAJOR_VERSION   (0)
 Exiv2 MAJOR version number of the library used at compile-time.
#define EXIV2_MINOR_VERSION   (19)
 Exiv2 MINOR version number of the library used at compile-time.
#define EXIV2_PATCH_VERSION   (0)
 Exiv2 PATCH version number of the library used at compile-time.
#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 of the library used at compile-time as an integer number for easy comparison.
#define EXIV2_CHECK_VERSION(major, minor, patch)   ( Exiv2::versionNumber() >= EXIV2_MAKE_VERSION(major,minor,patch) )
 Deprecated version check macro. Do not use.
#define EXIV2_TEST_VERSION(major, minor, patch)   ( EXIV2_VERSION >= EXIV2_MAKE_VERSION(major,minor,patch) )
 Macro to test the version of the available Exiv2 library at compile-time. Return true if it is the same as or newer than the passed-in version.

Functions

EXIV2API int versionNumber ()
 Return the version of Exiv2 available at runtime as an integer.
EXIV2API const char * version ()
 Return the version of Exiv2 available at runtime as a string.
EXIV2API bool testVersion (int major, int minor, int patch)
 Test the version of the available Exiv2 library at runtime. Return true if it is the same as or newer than the passed-in version.

Detailed Description

Precompiler define and a function to test the Exiv2 version. References: Similar versioning defines are used in KDE, GTK and other libraries. See http://apr.apache.org/versioning.html for accompanying guidelines.

Version:
Rev
1981
Author:
Andreas Huggel (ahu) ahuggel@gmx.net
Date:
31-May-06, ahu: created

Define Documentation

#define EXIV2_CHECK_VERSION major,
minor,
patch   )     ( Exiv2::versionNumber() >= EXIV2_MAKE_VERSION(major,minor,patch) )
 

Deprecated version check macro. Do not use.

This macro has flaws and only remains for backward compatibility. Use EXIV2_TEST_VERSION and testVersion() instead.

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

Macro to test the version of the available Exiv2 library at compile-time. Return true if it is the same as or newer than the passed-in version.

Versions are denoted using a triplet of integers: MAJOR.MINOR.PATCH .

  // Don't include the <exiv2/version.hpp> file directly, it is included by
  // <exiv2/types.hpp>. Early Exiv2 versions didn't have version.hpp and the macros.

  #include <exiv2/types.hpp>

  // Make sure an EXIV2_TEST_VERSION macro exists:

  #ifdef EXIV2_VERSION
  # ifndef EXIV2_TEST_VERSION
  # define EXIV2_TEST_VERSION(major,minor,patch) \
      ( EXIV2_VERSION >= EXIV2_MAKE_VERSION(major,minor,patch) )
  # endif
  #else
  # define EXIV2_TEST_VERSION(major,minor,patch) (false)
  #endif

  std::cout << "Compiled with Exiv2 version " << EXV_PACKAGE_VERSION << "\n"
            << "Runtime Exiv2 version is    " << Exiv2::version()    << "\n";

  // Test the Exiv2 version available at runtime but compile the if-clause only if
  // the compile-time version is at least 0.15. Earlier versions didn't have a
  // testVersion() function:

  #if EXIV2_TEST_VERSION(0,15,0)
  if (Exiv2::testVersion(0,13,0)) {
      std::cout << "Available Exiv2 version is equal to or greater than 0.13\n";
  }
  else {
      std::cout << "Installed Exiv2 version is less than 0.13\n";
  }
  #else
  std::cout << "Compile-time Exiv2 version doesn't have Exiv2::testVersion()\n";
  #endif


Function Documentation

EXIV2API bool testVersion int  major,
int  minor,
int  patch
 

Test the version of the available Exiv2 library at runtime. Return true if it is the same as or newer than the passed-in version.

Versions are denoted using a triplet of integers: major.minor.patch .

      // Don't include the <exiv2/version.hpp> file directly, it is included by
      // <exiv2/types.hpp>. Early Exiv2 versions didn't have version.hpp and the macros.

      #include <exiv2/types.hpp>

      // Make sure an EXIV2_TEST_VERSION macro exists:

      #ifdef EXIV2_VERSION
      # ifndef EXIV2_TEST_VERSION
      # define EXIV2_TEST_VERSION(major,minor,patch) \
          ( EXIV2_VERSION >= EXIV2_MAKE_VERSION(major,minor,patch) )
      # endif
      #else
      # define EXIV2_TEST_VERSION(major,minor,patch) (false)
      #endif

      std::cout << "Compiled with Exiv2 version " << EXV_PACKAGE_VERSION << "\n"
                << "Runtime Exiv2 version is    " << Exiv2::version()    << "\n";

      // Test the Exiv2 version available at runtime but compile the if-clause only if
      // the compile-time version is at least 0.15. Earlier versions didn't have a
      // testVersion() function:

      #if EXIV2_TEST_VERSION(0,15,0)
      if (Exiv2::testVersion(0,13,0)) {
          std::cout << "Available Exiv2 version is equal to or greater than 0.13\n";
      }
      else {
          std::cout << "Installed Exiv2 version is less than 0.13\n";
      }
      #else
      std::cout << "Compile-time Exiv2 version doesn't have Exiv2::testVersion()\n";
      #endif


Generated on Thu Dec 31 03:57:53 2009 for Exiv2 by  doxygen 1.3.9.1