#pragma once

/**
 * @file CosmicSDKVersion.h
 *
 * @brief Defines version information for the Cosmic SDK.
 */

/**
 * @def COSMICSDK_VERSION_MAJOR
 * @brief Major version number of the Cosmic SDK. Allows compile-time version checking.
 */
#define COSMICSDK_VERSION_MAJOR  1

/**
 * @def COSMICSDK_VERSION_MINOR
 * @brief Minor version number of the Cosmic SDK. Allows compile-time version checking.
 */
#define COSMICSDK_VERSION_MINOR  2

/**
 * @def COSMICSDK_VERSION_PATCH
 * @brief Patch version number of the Cosmic SDK. Allows compile-time version checking.
 */
#define COSMICSDK_VERSION_PATCH  3

/** @brief Converts the given argument to a string. */
#define COSMICSDK_STRINGIFY(x)      #x
#define COSMICSDK_TOSTRING(x)       COSMICSDK_STRINGIFY(x)

/** @brief The version string of the Cosmic SDK. */
#define COSMICSDK_VERSION_STRING    COSMICSDK_TOSTRING(COSMICSDK_VERSION_MAJOR) "." \
                                    COSMICSDK_TOSTRING(COSMICSDK_VERSION_MINOR) "." \
                                    COSMICSDK_TOSTRING(COSMICSDK_VERSION_PATCH)
