1
0
mirror of https://github.com/OpenRCT2/OpenRCT2 synced 2025-12-21 14:53:02 +01:00

build the version string at compile time

This commit is contained in:
camthesaxman
2017-04-17 21:38:35 -05:00
committed by Michał Janiszewski
parent fde3c8a3ed
commit 2ac8c9bad3
4 changed files with 32 additions and 57 deletions

View File

@@ -101,7 +101,7 @@ extern "C"
{
void openrct2_write_full_version_info(utf8 * buffer, size_t bufferSize)
{
String::Set(buffer, bufferSize, Version::GetInfo().c_str());
String::Set(buffer, bufferSize, gVersionInfoFull);
}
static void openrct2_set_exe_path()

View File

@@ -23,63 +23,47 @@
#endif
#ifdef OPENRCT2_BUILD_NUMBER
const char *gBuildNumber = OPENRCT2_BUILD_NUMBER;
const char gBuildNumber[] = OPENRCT2_BUILD_NUMBER;
#else
const char *gBuildNumber = "";
const char gBuildNumber[] = "";
#endif
#ifdef OPENRCT2_BUILD_SERVER
const char *gBuildServer = OPENRCT2_BUILD_SERVER;
const char gBuildServer[] = OPENRCT2_BUILD_SERVER;
#else
const char *gBuildServer = "";
const char gBuildServer[] = "";
#endif
#ifdef OPENRCT2_BRANCH
const char *gGitBranch = OPENRCT2_BRANCH;
const char gGitBranch[] = OPENRCT2_BRANCH;
#else
const char *gGitBranch = "";
const char gGitBranch[] = "";
#endif
#ifdef OPENRCT2_COMMIT_SHA1
const char *gCommitSha1 = OPENRCT2_COMMIT_SHA1;
const char gCommitSha1[] = OPENRCT2_COMMIT_SHA1;
#else
const char *gCommitSha1 = "";
const char gCommitSha1[] = "";
#endif
#ifdef OPENRCT2_COMMIT_SHA1_SHORT
const char *gCommitSha1Short = OPENRCT2_COMMIT_SHA1_SHORT;
const char gCommitSha1Short[] = OPENRCT2_COMMIT_SHA1_SHORT;
#else
const char *gCommitSha1Short = "";
const char gCommitSha1Short[] = "";
#endif
namespace Version
{
static std::string _info;
std::string GetInfo()
{
if (_info.empty())
{
utf8 buffer[256];
size_t bufferSize = sizeof(buffer);
String::Set(buffer, bufferSize, OPENRCT2_NAME ", v" OPENRCT2_VERSION);
if (!String::IsNullOrEmpty(gGitBranch))
{
String::AppendFormat(buffer, bufferSize, "-%s", gGitBranch);
}
if (!String::IsNullOrEmpty(gCommitSha1Short))
{
String::AppendFormat(buffer, bufferSize, " build %s", gCommitSha1Short);
}
if (!String::IsNullOrEmpty(gBuildServer))
{
String::AppendFormat(buffer, bufferSize, " provided by %s", gBuildServer);
}
const char gVersionInfoFull[] =
OPENRCT2_NAME ", v" OPENRCT2_VERSION
#ifdef OPENRCT2_BRANCH
"-" OPENRCT2_BRANCH
#endif
#ifdef OPENRCT2_COMMIT_SHA1_SHORT
" build " OPENRCT2_COMMIT_SHA1_SHORT
#endif
#ifdef OPENRCT2_BUILD_SERVER
" provided by " OPENRCT2_BUILD_SERVER
#endif
#ifdef DEBUG
String::AppendFormat(buffer, bufferSize, " (DEBUG)", gBuildServer);
" (DEBUG)"
#endif
_info = std::string(buffer);
}
return _info;
}
}
;

View File

@@ -61,21 +61,12 @@ extern "C"
{
#endif
// The following constants are for automated build servers
extern const char *gBuildNumber;
extern const char *gBuildServer;
extern const char *gGitBranch;
extern const char *gCommitSha1;
extern const char *gCommitSha1Short;
extern const char gBuildNumber[];
extern const char gBuildServer[];
extern const char gGitBranch[];
extern const char gCommitSha1[];
extern const char gCommitSha1Short[];
extern const char gVersionInfoFull[];
#ifdef __cplusplus
}
#endif
#ifdef __cplusplus
#include <string>
namespace Version
{
std::string GetInfo();
}
#endif

View File

@@ -85,7 +85,7 @@ namespace Guard
if (expression) return;
Console::Error::WriteLine(ASSERTION_MESSAGE);
Console::Error::WriteLine("Version: %s", Version::GetInfo().c_str());
Console::Error::WriteLine("Version: %s", gVersionInfoFull);
// This is never freed, but acceptable considering we are about to crash out
utf8 * formattedMessage = nullptr;
@@ -143,7 +143,7 @@ namespace Guard
String::Set(buffer, bufferSize, ASSERTION_MESSAGE);
String::Append(buffer, bufferSize, "\r\n\r\n");
String::Append(buffer, bufferSize, "Version: ");
String::Append(buffer, bufferSize, Version::GetInfo().c_str());
String::Append(buffer, bufferSize, gVersionInfoFull);
if (formattedMessage != nullptr)
{
String::Append(buffer, bufferSize, "\r\n");