1
0
mirror of https://github.com/OpenRCT2/OpenRCT2 synced 2025-12-22 07:13:07 +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) 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() static void openrct2_set_exe_path()

View File

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

View File

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

View File

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