mirror of
https://github.com/Xahau/xahaud.git
synced 2026-08-23 00:10:54 +00:00
version string generation
This commit is contained in:
@@ -69,7 +69,7 @@ getFullVersionString();
|
||||
@return the encoded version in a 64-bit integer
|
||||
*/
|
||||
std::uint64_t
|
||||
encodeSoftwareVersion(char const* const versionStr);
|
||||
encodeSoftwareVersion(char const* versionStr);
|
||||
|
||||
/** Returns this server's version packed in a 64-bit integer. */
|
||||
std::uint64_t
|
||||
|
||||
@@ -48,8 +48,77 @@ char const* const versionString = "0.0.0"
|
||||
std::string const&
|
||||
getVersionString()
|
||||
{
|
||||
static std::string const value = [] {
|
||||
std::string const s = versionString;
|
||||
// if the external build engine fails to populate the version string,
|
||||
// then we will do it ourselves.
|
||||
static std::string generatedVersionString;
|
||||
if (generatedVersionString == "" &&
|
||||
(versionString == std::string("0.0.0") || versionString == std::string("0.0.0+DEBUG")))
|
||||
{
|
||||
std::string y = std::string(__DATE__ + 7);
|
||||
std::string d = std::string(__DATE__ + 4 +
|
||||
(__DATE__[4] == ' ' ? 1 : 0),
|
||||
__DATE__[4] == ' ' ? 1 : 2 );
|
||||
std::string m;
|
||||
switch (__DATE__[0])
|
||||
{
|
||||
case 'J':
|
||||
{
|
||||
m = __DATE__[1] == 'a' ? "1" :
|
||||
__DATE__[2] == 'n' ? "6" : "7";
|
||||
break;
|
||||
}
|
||||
case 'F':
|
||||
{
|
||||
m = "2";
|
||||
break;
|
||||
}
|
||||
case 'M':
|
||||
{
|
||||
m = __DATE__[2] == 'r' ? "3" : "5";
|
||||
break;
|
||||
}
|
||||
case 'A':
|
||||
{
|
||||
m = __DATE__[1] == 'p' ? "4" : "8";
|
||||
break;
|
||||
}
|
||||
case 'S':
|
||||
{
|
||||
m = "9";
|
||||
break;
|
||||
}
|
||||
case 'O':
|
||||
{
|
||||
m = "10";
|
||||
break;
|
||||
}
|
||||
case 'N':
|
||||
{
|
||||
m = "11";
|
||||
break;
|
||||
}
|
||||
case 'D':
|
||||
{
|
||||
m = "12";
|
||||
break;
|
||||
}
|
||||
default:
|
||||
{
|
||||
m = "13";
|
||||
break;
|
||||
}
|
||||
}
|
||||
generatedVersionString = y + "." + m + "." + d;
|
||||
generatedVersionString += "-CustomBuild";
|
||||
#ifdef DEBUG
|
||||
generatedVersionString += "+DEBUG";
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
static std::string const value = [&] {
|
||||
std::string const s =
|
||||
generatedVersionString != "" ? generatedVersionString : versionString;
|
||||
beast::SemanticVersion v;
|
||||
if (!v.parse(s) || v.print() != s)
|
||||
LogicError(s + ": Bad server version string");
|
||||
@@ -71,8 +140,9 @@ static constexpr std::uint64_t implementationVersionIdentifierMask =
|
||||
0xFFFF'0000'0000'0000LLU;
|
||||
|
||||
std::uint64_t
|
||||
encodeSoftwareVersion(char const* const versionStr)
|
||||
encodeSoftwareVersion(char const* versionStr)
|
||||
{
|
||||
|
||||
std::uint64_t c = implementationVersionIdentifier;
|
||||
|
||||
beast::SemanticVersion v;
|
||||
|
||||
Reference in New Issue
Block a user