You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

92 lines
2.0 KiB

/**
* @file Version.h
* @brief SDK version information routines.
* @copyright VisionLabs LLC
* @date 11.10.2016
* */
#pragma once
#include "Def.h"
#include <cstdint>
namespace fsdk {
/**
* @addtogroup VersionGroup Version
* @brief SDK Build type and version info.
* @{
* */
/**
* Version structure.
* */
struct Version {
uint8_t major; //!< Major version number.
uint8_t minor; //!< Minor version number.
uint16_t patch; //!< Revision number.
};
/**
* @brief Check if one version is less than another.
* @param lhs first version
* @param rhs second version
* @return true if lhs is less than rhs
* */
inline bool operator < (Version lhs, Version rhs) noexcept {
if (lhs.major < rhs.major)
return true;
if (lhs.minor < rhs.minor)
return true;
return lhs.patch < rhs.patch;
}
/**
* @brief Check if versions are equal.
* @param lhs first version
* @param rhs second version
* @return true if versions are equal
* */
inline bool operator == (Version lhs, Version rhs) noexcept {
return lhs.major == rhs.major &&
lhs.minor == rhs.minor &&
lhs.patch == rhs.patch;
}
/**
* @brief Check if versions are not equal.
* @param lhs first version
* @param rhs second version
* @return true if versions are not equal
* */
inline bool operator != (Version lhs, Version rhs) noexcept {
return !(lhs == rhs);
}
/**
* @brief Get FaceEngine version.
* @return filled version structure.
* */
FSDK_API Version getVersion() noexcept;
/**
* @brief Get FaceEngine commit hash.
* @return commit hash as a null-terminated string.
* */
FSDK_API const char* getVersionHash() noexcept;
/**
* @brief Get FaceEngine version string.
* @return version as a null-terminated string.
* */
FSDK_API const char* getVersionString() noexcept;
/**
* @brief Get FaceEngine build description.
* The descripton contains used flags and compler settings.
* @return description as a null-terminated string.
* */
FSDK_API const char* getBuildInfo() noexcept;
/** @} */ // end of VersionGroup
}