Xapian: API Documentation: xapian/version.h File Reference

xapian-core 2.0.0

Macros
version.h File Reference

Define preprocessor symbols for the library version. More...

## Macros
#define | XAPIAN_ENABLE_VISIBILITY
| The library was compiled with GCC's -fvisibility=hidden option.
#define | XAPIAN_VERSION "2.0.0"
| The version of Xapian as a C string literal.
#define | XAPIAN_MAJOR_VERSION 2
| The major component of the Xapian version.
#define | XAPIAN_MINOR_VERSION 0
| The minor component of the Xapian version.
#define | XAPIAN_REVISION 0
| The revision component of the Xapian version.
#define | XAPIAN_DOCID_BASE_TYPE int
| Base (signed) type for Xapian::docid and related types.
#define | XAPIAN_TERMCOUNT_BASE_TYPE int
| Base (signed) type for Xapian::termcount and related types.
#define | XAPIAN_TERMPOS_BASE_TYPE int
| Base (signed) type for Xapian::termpos.
#define | XAPIAN_TOTALLENGTH_TYPE unsigned long
| Type for returning total document length.
#define | XAPIAN_REVISION_TYPE unsigned long
| Underlying type for Xapian::rev.
#define | XAPIAN_HAS_GLASS_BACKEND 1
| XAPIAN_HAS_GLASS_BACKEND Defined if the glass backend is enabled.
#define | XAPIAN_HAS_HONEY_BACKEND 1
| XAPIAN_HAS_HONEY_BACKEND Defined if the honey backend is enabled.
#define | XAPIAN_HAS_INMEMORY_BACKEND 1
| XAPIAN_HAS_INMEMORY_BACKEND Defined if the inmemory backend is enabled.
#define | XAPIAN_HAS_REMOTE_BACKEND 1
| XAPIAN_HAS_REMOTE_BACKEND Defined if the remote backend is enabled.
#define | XAPIAN_AT_LEAST(A, B, C)
| XAPIAN_AT_LEAST(A,B,C) checks for xapian-core >= A.B.C - use like so:

## Detailed Description

Define preprocessor symbols for the library version.

## Macro Definition Documentation

## ◆ XAPIAN_AT_LEAST

#define XAPIAN_AT_LEAST | ( |  | A,
|  |  | B,
|  |  | C )

Value:
(XAPIAN_MAJOR_VERSION > (A) || \
(XAPIAN_MAJOR_VERSION == (A) && \
(XAPIAN_MINOR_VERSION > (B) || \
(XAPIAN_MINOR_VERSION == (B) && XAPIAN_REVISION >= (C)))))
XAPIAN_MAJOR_VERSION
#define XAPIAN_MAJOR_VERSION
The major component of the Xapian version.
Definition version.h:48
XAPIAN_MINOR_VERSION
#define XAPIAN_MINOR_VERSION
The minor component of the Xapian version.
Definition version.h:53
XAPIAN_REVISION
#define XAPIAN_REVISION
The revision component of the Xapian version.
Definition version.h:58

XAPIAN_AT_LEAST(A,B,C) checks for xapian-core >= A.B.C - use like so:

#if XAPIAN_AT_LEAST(1,4,2)
/* Code needing features needing Xapian >= 1.4.2. */
#endif

XAPIAN_AT_LEAST was added in Xapian 1.4.2. This was released 2016-12-26 so is now a reasonable hard requirement.

If you really want to support older versions beware that a check like:

#if defined XAPIAN_AT_LEAST && XAPIAN_AT_LEAST(1,4,12)

works with newer Xapian but fails to compile if the macro is not defined:

error: missing binary operator before token ‘(’

In this situation we recommend copying the definition of XAPIAN_AT_LEAST into your code and wrapping it in #ifndef XAPIAN_AT_LEAST ... #endif so you can use it unconditionally.

Since
  Xapian 1.4.2.

## ◆ XAPIAN_MAJOR_VERSION

#define XAPIAN_MAJOR_VERSION 2

The major component of the Xapian version.

E.g. for Xapian 1.0.14 this would be: 1

## ◆ XAPIAN_MINOR_VERSION

#define XAPIAN_MINOR_VERSION 0

The minor component of the Xapian version.

E.g. for Xapian 1.0.14 this would be: 0

## ◆ XAPIAN_REVISION

#define XAPIAN_REVISION 0

The revision component of the Xapian version.

E.g. for Xapian 1.0.14 this would be: 14