#ifndef __PIKA_VERSION_H__
#define __PIKA_VERSION_H__

/* pikaversion.h.in -> pikaversion.h
 * This file is configured by Meson. Please modify meson.build files.
 */
#if !defined (__PIKA_BASE_H_INSIDE__) && !defined (PIKA_BASE_COMPILATION)
#error "Only <libpikabase/pikabase.h> can be included directly."
#endif

G_BEGIN_DECLS


/**
 * SECTION: pikaversion
 * @title: pikaversion
 * @short_description: Macros and constants useful for determining
 *                     PIKA's version number and capabilities.
 *
 * Macros and constants useful for determining PIKA's version number and
 * capabilities.
 **/

/**
 * PIKA_MAJOR_VERSION:
 *
 * The major PIKA version number.
 **/
#define PIKA_MAJOR_VERSION                              (@PIKA_MAJOR_VERSION@)

/**
 * PIKA_MINOR_VERSION:
 *
 * The minor PIKA version number.
 **/
#define PIKA_MINOR_VERSION                              (@PIKA_MINOR_VERSION@)

/**
 * PIKA_MICRO_VERSION:
 *
 * The micro PIKA version number.
 **/
#define PIKA_MICRO_VERSION                              (@PIKA_MICRO_VERSION@)

/**
 * PIKA_VERSION:
 *
 * The PIKA version as a string.
 **/
#define PIKA_VERSION                                    "@PIKA_VERSION@"

/**
 * PIKA_API_VERSION:
 *
 * Since: 2.2
 **/
#define PIKA_API_VERSION                                "@PIKA_API_VERSION@"

#define PIKA_CHECK_VERSION(major, minor, micro) \
    (PIKA_MAJOR_VERSION > (major) || \
     (PIKA_MAJOR_VERSION == (major) && PIKA_MINOR_VERSION > (minor)) || \
     (PIKA_MAJOR_VERSION == (major) && PIKA_MINOR_VERSION == (minor) && \
      PIKA_MICRO_VERSION >= (micro)))


G_END_DECLS

#endif /* __PIKA_VERSION_H__ */
