Version Information

## Version Information Version Information — variables and functions to check the GLib version |

## Synopsis

    #include <glib.h>

    extern const guint  glib_major_version;
    extern const guint  glib_minor_version;
    extern const guint  glib_micro_version;
    extern const guint  glib_binary_age;
    extern const guint  glib_interface_age;
    const gchar *       glib_check_version                  (guint required_major,
                                                             guint required_minor,
                                                             guint required_micro);

    #define             GLIB_MAJOR_VERSION
    #define             GLIB_MINOR_VERSION
    #define             GLIB_MICRO_VERSION
    #define             GLIB_CHECK_VERSION                  (major,
                                                             minor,
                                                             micro)

    #define             GLIB_VERSION_2_26
    #define             GLIB_VERSION_2_28
    #define             GLIB_VERSION_2_30
    #define             GLIB_VERSION_2_32
    #define             GLIB_VERSION_MIN_REQUIRED
    #define             GLIB_VERSION_MAX_ALLOWED

## Description

GLib provides version information, primarily useful in configure checks for builds that have a configure script. Applications will not typically use the features described here.

The GLib headers annotate deprecated APIs in a way that produces compiler warnings if these deprecated APIs are used. The warnings can be turned off by defining the macro `GLIB_DISABLE_DEPRECATION_WARNINGS` before including the glib.h header.

GLib also provides support for building applications against defined subsets of deprecated or new GLib APIs. Define the macro `GLIB_VERSION_MIN_REQUIRED` to specify up to what version of GLib you want to receive warnings about deprecated APIs. Define the macro `GLIB_VERSION_MAX_ALLOWED` to specify the newest version of GLib whose API you want to use.

## Details

### glib_major_version

    extern const guint glib_major_version;

### glib_minor_version

    extern const guint glib_minor_version;

### glib_micro_version

    extern const guint glib_micro_version;

### glib_binary_age

    extern const guint glib_binary_age;

### glib_interface_age

    extern const guint glib_interface_age;

### glib_check_version ()

    const gchar *       glib_check_version                  (guint required_major,
                                                             guint required_minor,
                                                             guint required_micro);

Checks that the GLib library in use is compatible with the given version. Generally you would pass in the constants GLIB_MAJOR_VERSION, GLIB_MINOR_VERSION, GLIB_MICRO_VERSION as the three arguments to this function; that produces a check that the library in use is compatible with the version of GLib the application or module was compiled against.

Compatibility is defined by two things: first the version of the running library is newer than the version `required_major.required_minor`.`required_micro`. Second the running library must be binary compatible with the version `required_major.required_minor`.`required_micro` (same major version.)

`required_major` : | the required major version.
`required_minor` : | the required minor version.
`required_micro` : | the required micro version.
Returns : | `NULL` if the GLib library is compatible with the given version, or a string describing the version mismatch. The returned string is owned by GLib and must not be modified or freed.

Since 2.6

### GLIB_MAJOR_VERSION

    #define GLIB_MAJOR_VERSION 2

The major version number of the GLib library.

Like glib_major_version, but from the headers used at application compile time, rather than from the library linked against at application run time.

### GLIB_MINOR_VERSION

    #define GLIB_MINOR_VERSION 33

The minor version number of the GLib library.

Like gtk_minor_version, but from the headers used at application compile time, rather than from the library linked against at application run time.

### GLIB_MICRO_VERSION

    #define GLIB_MICRO_VERSION 2

The micro version number of the GLib library.

Like gtk_micro_version, but from the headers used at application compile time, rather than from the library linked against at application run time.

### GLIB_CHECK_VERSION()

    #define             GLIB_CHECK_VERSION(major,minor,micro)

Checks the version of the GLib library that is being compiled against.

Example 1. Checking the version of the GLib library

      if (!GLIB_CHECK_VERSION (1, 2, 0))
        g_error ("GLib version 1.2.0 or above is needed");

See `glib_check_version()` for a runtime check.

`major` : | the major version to check for
`minor` : | the minor version to check for
`micro` : | the micro version to check for
Returns : | `TRUE` if the version of the GLib header files is the same as or newer than the passed-in version.

### GLIB_VERSION_2_26

    #define GLIB_VERSION_2_26       (G_ENCODE_VERSION (2, 26))

A macro that evaluates to the 2.26 version of GLib, in a format that can be used by the C pre-processor.

Since 2.32

### GLIB_VERSION_2_28

    #define GLIB_VERSION_2_28       (G_ENCODE_VERSION (2, 28))

A macro that evaluates to the 2.28 version of GLib, in a format that can be used by the C pre-processor.

Since 2.32

### GLIB_VERSION_2_30

    #define GLIB_VERSION_2_30       (G_ENCODE_VERSION (2, 30))

A macro that evaluates to the 2.30 version of GLib, in a format that can be used by the C pre-processor.

Since 2.32

### GLIB_VERSION_2_32

    #define GLIB_VERSION_2_32       (G_ENCODE_VERSION (2, 32))

A macro that evaluates to the 2.32 version of GLib, in a format that can be used by the C pre-processor.

Since 2.32

### GLIB_VERSION_MIN_REQUIRED

    # define GLIB_VERSION_MIN_REQUIRED      (GLIB_VERSION_CUR_STABLE)

A macro that should be defined by the user prior to including the glib.h header. The definition should be one of the predefined GLib version macros: `GLIB_VERSION_2_26`, `GLIB_VERSION_2_28`,...

This macro defines the lower bound for the GLib API to use.

If a function has been deprecated in a newer version of GLib, it is possible to use this symbol to avoid the compiler warnings without disabling warning for every deprecated function.

Since 2.32

### GLIB_VERSION_MAX_ALLOWED

    # define GLIB_VERSION_MAX_ALLOWED      GLIB_VERSION_CUR_STABLE

A macro that should be defined by the user prior to including the glib.h header. The definition should be one of the predefined GLib version macros: `GLIB_VERSION_2_26`, `GLIB_VERSION_2_28`,...

This macro defines the upper bound for the GLib API to use.

If a function has been introduced in a newer version of GLib, it is possible to use this symbol to get compiler warnings when trying to use that function.

Since 2.32