# Version Information

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

## Functions

### tracker_check_version

    const gchar*
    tracker_check_version (guint required_major,
                           guint required_minor,
                           guint required_micro)

Checks that the Tracker library in use is compatible with the given version. Generally you would pass in the constants TRACKER_MAJOR_VERSION, TRACKER_MINOR_VERSION, TRACKER_MICRO_VERSION as the three arguments to this function; that produces a check that the library in use is compatible with the version of Tracker 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.)

Parameters:

`required_major` –

the required major version.

`required_minor` –

the required minor version.

`required_micro` –

the required micro version.

Returns –

NULL if the Tracker library is compatible with the given version, or a string describing the version mismatch. The returned string is owned by Tracker and must not be modified or freed.

### Tracker.prototype.check_version

    function Tracker.prototype.check_version(required_major: Number, required_minor: Number, required_micro: Number): {
        // javascript wrapper for 'tracker_check_version'
    }

Checks that the Tracker library in use is compatible with the given version. Generally you would pass in the constants TRACKER_MAJOR_VERSION, TRACKER_MINOR_VERSION, TRACKER_MICRO_VERSION as the three arguments to this function; that produces a check that the library in use is compatible with the version of Tracker 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.)

Parameters:

`required_major` (Number) –

the required major version.

`required_minor` (Number) –

the required minor version.

`required_micro` (Number) –

the required micro version.

Returns (String) –

NULL if the Tracker library is compatible with the given version, or a string describing the version mismatch. The returned string is owned by Tracker and must not be modified or freed.

### Tracker.check_version

    def Tracker.check_version (required_major, required_minor, required_micro):
        #python wrapper for 'tracker_check_version'

Checks that the Tracker library in use is compatible with the given version. Generally you would pass in the constants TRACKER_MAJOR_VERSION, TRACKER_MINOR_VERSION, TRACKER_MICRO_VERSION as the three arguments to this function; that produces a check that the library in use is compatible with the version of Tracker 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.)

Parameters:

`required_major` (int) –

the required major version.

`required_minor` (int) –

the required minor version.

`required_micro` (int) –

the required micro version.

Returns (str) –

NULL if the Tracker library is compatible with the given version, or a string describing the version mismatch. The returned string is owned by Tracker and must not be modified or freed.

## Function Macros

### TRACKER_CHECK_VERSION

    #define TRACKER_CHECK_VERSION(major,minor,micro)    \
        (TRACKER_MAJOR_VERSION > (major) || \
         (TRACKER_MAJOR_VERSION == (major) && TRACKER_MINOR_VERSION > (minor)) || \
         (TRACKER_MAJOR_VERSION == (major) && TRACKER_MINOR_VERSION == (minor) && \
          TRACKER_MICRO_VERSION >= (micro)))

This macro essentially does the same thing as tracker_check_version but as a pre-processor operation rather than a run-time operation. It will evaluate true or false based the version passed in and the version available.

<example> Simple version check example An example of how to make sure you have the version of Tracker installed to run your code. <programlisting> if (!TRACKER_CHECK_VERSION (0, 10, 7)) { g_error ("Tracker version 0.10.7 or above is needed"); } </programlisting> </example>

Parameters:

`major` –

the required major version.

`minor` –

the required minor version.

`micro` –

the required micro version.

### TRACKER_DEPRECATED_IN_3_1_FOR

    #define TRACKER_DEPRECATED_IN_3_1_FOR(f) _TRACKER_DEPRECATED_FOR(f)

### TRACKER_DEPRECATED_IN_3_2_FOR

    #define TRACKER_DEPRECATED_IN_3_2_FOR(f) _TRACKER_DEPRECATED_FOR(f)

### TRACKER_DEPRECATED_IN_3_3_FOR

    #define TRACKER_DEPRECATED_IN_3_3_FOR(f) _TRACKER_DEPRECATED_FOR(f)

### TRACKER_DEPRECATED_IN_3_4_FOR

    #define TRACKER_DEPRECATED_IN_3_4_FOR(f) _TRACKER_DEPRECATED_FOR(f)

### _TRACKER_DEPRECATED_FOR

    #define _TRACKER_DEPRECATED_FOR(f) G_DEPRECATED_FOR(f) _TRACKER_EXTERN

### _TRACKER_UNAVAILABLE

    #define _TRACKER_UNAVAILABLE(maj, min) G_UNAVAILABLE(maj, min) _TRACKER_EXTERN

## Constants

### TRACKER_AVAILABLE_IN_3_1

    #define TRACKER_AVAILABLE_IN_3_1 _TRACKER_UNAVAILABLE(3, 1)

### TRACKER_AVAILABLE_IN_3_2

    #define TRACKER_AVAILABLE_IN_3_2 _TRACKER_UNAVAILABLE(3, 2)

### TRACKER_AVAILABLE_IN_3_3

    #define TRACKER_AVAILABLE_IN_3_3 _TRACKER_UNAVAILABLE(3, 3)

### TRACKER_AVAILABLE_IN_3_4

    #define TRACKER_AVAILABLE_IN_3_4 _TRACKER_UNAVAILABLE(3, 4)

### TRACKER_AVAILABLE_IN_ALL

    #define TRACKER_AVAILABLE_IN_ALL _TRACKER_EXTERN

### TRACKER_DEPRECATED_IN_3_1

    #define TRACKER_DEPRECATED_IN_3_1 _TRACKER_DEPRECATED

### TRACKER_DEPRECATED_IN_3_2

    #define TRACKER_DEPRECATED_IN_3_2 _TRACKER_DEPRECATED

### TRACKER_DEPRECATED_IN_3_3

    #define TRACKER_DEPRECATED_IN_3_3 _TRACKER_DEPRECATED

### TRACKER_DEPRECATED_IN_3_4

    #define TRACKER_DEPRECATED_IN_3_4 _TRACKER_DEPRECATED

### TRACKER_VERSION_3_0

    #define TRACKER_VERSION_3_0 G_ENCODE_VERSION (3, 0)

### TRACKER_VERSION_3_1

    #define TRACKER_VERSION_3_1 G_ENCODE_VERSION (3, 1)

### TRACKER_VERSION_3_2

    #define TRACKER_VERSION_3_2 G_ENCODE_VERSION (3, 2)

### TRACKER_VERSION_3_3

    #define TRACKER_VERSION_3_3 G_ENCODE_VERSION (3, 3)

### TRACKER_VERSION_3_4

    #define TRACKER_VERSION_3_4 G_ENCODE_VERSION (3, 4)

### TRACKER_VERSION_CUR

    #define TRACKER_VERSION_CUR G_ENCODE_VERSION (TRACKER_MAJOR_VERSION, TRACKER_MINOR_VERSION)

### TRACKER_VERSION_MAX_ALLOWED

    #define TRACKER_VERSION_MAX_ALLOWED TRACKER_VERSION_CUR

### TRACKER_VERSION_MIN_REQUIRED

    #define TRACKER_VERSION_MIN_REQUIRED TRACKER_VERSION_CUR

### _TRACKER_DEPRECATED

    #define _TRACKER_DEPRECATED G_DEPRECATED _TRACKER_EXTERN

### _TRACKER_EXTERN

    #define _TRACKER_EXTERN __attribute__((visibility("default"))) extern

The results of the search are