|
|
|
@ -78,58 +78,6 @@
|
|
|
|
|
*/
|
|
|
|
|
#define EXIV2_VERSION \
|
|
|
|
|
EXIV2_MAKE_VERSION(EXIV2_MAJOR_VERSION,EXIV2_MINOR_VERSION,EXIV2_PATCH_VERSION)
|
|
|
|
|
/*!
|
|
|
|
|
@brief 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_CHECK_VERSION(major,minor,patch) \
|
|
|
|
|
( Exiv2::versionNumber() >= EXIV2_MAKE_VERSION(major,minor,patch) )
|
|
|
|
|
/*!
|
|
|
|
|
@brief 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: \em MAJOR.MINOR.PATCH .
|
|
|
|
|
|
|
|
|
|
@code
|
|
|
|
|
// 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
|
|
|
|
|
@endcode
|
|
|
|
|
*/
|
|
|
|
|
#define EXIV2_TEST_VERSION(major,minor,patch) \
|
|
|
|
|
( EXIV2_VERSION >= EXIV2_MAKE_VERSION(major,minor,patch) )
|
|
|
|
|
|
|
|
|
|
// *****************************************************************************
|
|
|
|
|
// namespace extensions
|
|
|
|
@ -146,53 +94,6 @@ namespace Exiv2 {
|
|
|
|
|
@brief Return the version of %Exiv2 as hex string of fixed length 6.
|
|
|
|
|
*/
|
|
|
|
|
EXIV2API std::string versionNumberHexString();
|
|
|
|
|
/*!
|
|
|
|
|
@brief Return the version of %Exiv2 available at runtime as a string.
|
|
|
|
|
*/
|
|
|
|
|
EXIV2API const char* version();
|
|
|
|
|
/*!
|
|
|
|
|
@brief 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: \em major.minor.patch .
|
|
|
|
|
|
|
|
|
|
@code
|
|
|
|
|
// 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
|
|
|
|
|
@endcode
|
|
|
|
|
*/
|
|
|
|
|
EXIV2API bool testVersion(int major, int minor, int patch);
|
|
|
|
|
|
|
|
|
|
/*!
|
|
|
|
|
@brief dumpLibraryInfo implements the exiv2 option --version --verbose
|
|
|
|
|