champlain-version.h.in 2.92 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
/*
 * Copyright (C) 2009 Pierre-Luc Beaudoin <pierre-luc@pierlux.com>
 * File inspired by champlain-version.h.in which is
 * Authored By Matthew Allum  <mallum@openedhand.com>
 * Copyright (C) 2006 OpenedHand
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 */

22 23 24
#ifndef __CHAMPLAIN_VERSION_H__
#define __CHAMPLAIN_VERSION_H__

25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
/**
 * SECTION:champlain-version
 * @short_description: Versioning utility macros
 *
 * Champlain offers a set of macros for checking the version of the library
 * an application was linked to.
 */

/**
 * CHAMPLAIN_MAJOR_VERSION:
 *
 * The major version of libchamplain (1, if %CHAMPLAIN_VERSION is 1.2.3)
 */
#define CHAMPLAIN_MAJOR_VERSION   (@CHAMPLAIN_MAJOR_VERSION@)

/**
 * CHAMPLAIN_MINOR_VERSION:
 *
43
 * The minor version of libchamplain (2, if %CHAMPLAIN_VERSION is 1.2.3)
44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83
 */
#define CHAMPLAIN_MINOR_VERSION   (@CHAMPLAIN_MINOR_VERSION@)

/**
 * CHAMPLAIN_MICRO_VERSION:
 *
 * The micro version of libchamplain (3, if %CHAMPLAIN_VERSION is 1.2.3)
 */
#define CHAMPLAIN_MICRO_VERSION   (@CHAMPLAIN_MICRO_VERSION@)

/**
 * CHAMPLAIN_VERSION:
 *
 * The full version of libchamplain, like 1.2.3
 */
#define CHAMPLAIN_VERSION         @CHAMPLAIN_VERSION@

/**
 * CHAMPLAIN_VERSION_S:
 *
 * The full version of libchamplain, in string form (suited for
 * string concatenation)
 */
#define CHAMPLAIN_VERSION_S       "@CHAMPLAIN_VERSION@"

/**
 * CHAMPLAIN_VERSION_HEX:
 *
 * Numerically encoded version of libchamplain, like 0x010203
 */
#define CHAMPLAIN_VERSION_HEX     ((CHAMPLAIN_MAJOR_VERSION << 24) | \
                                 (CHAMPLAIN_MINOR_VERSION << 16) | \
                                 (CHAMPLAIN_MICRO_VERSION << 8))

/**
 * CHAMPLAIN_CHECK_VERSION:
 * @major: major version, like 1 in 1.2.3
 * @minor: minor version, like 2 in 1.2.3
 * @micro: micro version, like 3 in 1.2.3
 *
84
 * Evaluates to %TRUE if the version of libchamplain is greater or equal
85 86 87 88 89 90 91 92
 * than @major, @minor and @micro
 */
#define CHAMPLAIN_CHECK_VERSION(major,minor,micro) \
        (CHAMPLAIN_MAJOR_VERSION > (major) || \
         (CHAMPLAIN_MAJOR_VERSION == (major) && CHAMPLAIN_MINOR_VERSION > (minor)) || \
         (CHAMPLAIN_MAJOR_VERSION == (major) && CHAMPLAIN_MINOR_VERSION == (minor) && CHAMPLAIN_MICRO_VERSION >= (micro)))

#endif /* __CHAMPLAIN_VERSION_H__ */