~raof/mir/plugin-probe-packaging

« back to all changes in this revision

Viewing changes to include/client/mir_toolkit/version.h

  • Committer: Tarmac
  • Author(s): Daniel van Vugt
  • Date: 2014-11-21 05:23:27 UTC
  • mfrom: (2075.1.2 ver)
  • Revision ID: tarmac-20141121052327-a5ix32x0lhqeupem
Add support for arbitrary version comparison (>,<,>=,<=,==,!=) and
storage, in the style of KERNEL_VERSION.
.

Approved by Kevin DuBois, Alan Griffiths, Alexandros Frantzis, PS Jenkins bot.

Show diffs side-by-side

added added

removed removed

Lines of Context:
55
55
#define MIR_CLIENT_MICRO_VERSION (0)
56
56
 
57
57
/**
58
 
 * MIR_CLIENT_VERSION_GE
 
58
 * MIR_VERSION_NUMBER
59
59
 * \param major [in]    The major version (eg: 3 for version 3.2.33)
60
60
 * \param minor [in]    The minor version (eg: 2 for version 3.2.33)
61
61
 * \param micro [in]    The micro version (eg: 33 for version 3.2.33)
62
62
 * 
63
 
 * Test whether the version of the Mir client headers is greater than or equal
64
 
 * to major.minor.micro.
 
63
 * Returns the combined version information as a single 32-bit value for
 
64
 * logical comparisons. For example:
 
65
 *     #if MIR_CLIENT_VERSION >= MIR_VERSION_NUMBER(2,3,4)
65
66
 *
66
67
 * This can be useful to conditionally build code depending on new features or
67
68
 * specific bugfixes in the Mir client library.
68
69
 */
69
 
#define MIR_CLIENT_VERSION_GE(major,minor,micro)                                  \
70
 
  (MIR_CLIENT_MAJOR_VERSION > (major) ||                                          \
71
 
  (MIR_CLIENT_MAJOR_VERSION == (major) && MIR_CLIENT_MINOR_VERSION > (minor)) ||  \
72
 
  (MIR_CLIENT_MAJOR_VERSION == (major) && MIR_CLIENT_MINOR_VERSION == (minor) &&  \
73
 
   MIR_CLIENT_MICRO_VERSION >= (micro)))
 
70
#define MIR_VERSION_NUMBER(major,minor,micro) \
 
71
    (((major) << 22) + ((minor) << 12) + (micro))
 
72
 
 
73
/**
 
74
 * MIR_CLIENT_VERSION
 
75
 *
 
76
 * The current version of the Mir client headers in use.
 
77
 */
 
78
#define MIR_CLIENT_VERSION \
 
79
    MIR_VERSION_NUMBER(MIR_CLIENT_MAJOR_VERSION, \
 
80
                       MIR_CLIENT_MINOR_VERSION, \
 
81
                       MIR_CLIENT_MICRO_VERSION)
74
82
 
75
83
/**@}*/
76
84