aboutsummaryrefslogtreecommitdiff
path: root/NorthstarDedicatedTest/version.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'NorthstarDedicatedTest/version.cpp')
-rw-r--r--NorthstarDedicatedTest/version.cpp59
1 files changed, 59 insertions, 0 deletions
diff --git a/NorthstarDedicatedTest/version.cpp b/NorthstarDedicatedTest/version.cpp
new file mode 100644
index 00000000..dfeb9670
--- /dev/null
+++ b/NorthstarDedicatedTest/version.cpp
@@ -0,0 +1,59 @@
+#include "version.h"
+#include "pch.h"
+
+char version[16];
+char NSUserAgent[32];
+
+void InitialiseVersion() {
+ HRSRC hResInfo;
+ DWORD dwSize;
+ HGLOBAL hResData;
+ LPVOID pRes, pResCopy;
+ UINT uLen = 0;
+ VS_FIXEDFILEINFO* lpFfi = NULL;
+ HINSTANCE hInst = ::GetModuleHandle(NULL);
+
+ hResInfo = FindResourceW(hInst, MAKEINTRESOURCE(1), RT_VERSION);
+ if (hResInfo != NULL) {
+ dwSize = SizeofResource(hInst, hResInfo);
+ hResData = LoadResource(hInst, hResInfo);
+ if (hResData != NULL) {
+ pRes = LockResource(hResData);
+ pResCopy = LocalAlloc(LMEM_FIXED, dwSize);
+ if (pResCopy != 0) {
+ CopyMemory(pResCopy, pRes, dwSize);
+ VerQueryValueW(pResCopy, L"\\", (LPVOID*)&lpFfi, &uLen);
+
+ DWORD dwFileVersionMS = lpFfi->dwFileVersionMS;
+ DWORD dwFileVersionLS = lpFfi->dwFileVersionLS;
+
+ DWORD dwLeftMost = HIWORD(dwFileVersionMS);
+ DWORD dwSecondLeft = LOWORD(dwFileVersionMS);
+ DWORD dwSecondRight = HIWORD(dwFileVersionLS);
+ DWORD dwRightMost = LOWORD(dwFileVersionLS);
+
+ // We actually use the rightmost integer do determine whether or not we're a debug/dev build
+ // If it is set to 1 (as in resources.rc), we are a dev build
+ // On github CI, we set this 1 to a 0 automatically as we replace the 0.0.0.1 with the real version number
+ if (dwRightMost == 1) {
+ sprintf(version, "%d.%d.%d.%d+dev", dwLeftMost, dwSecondLeft, dwSecondRight, dwRightMost);
+ sprintf(NSUserAgent, "R2Northstar/%d.%d.%d+dev", dwLeftMost, dwSecondLeft, dwSecondRight);
+ }
+ else {
+ sprintf(version, "%d.%d.%d.%d", dwLeftMost, dwSecondLeft, dwSecondRight, dwRightMost);
+ sprintf(NSUserAgent, "R2Northstar/%d.%d.%d", dwLeftMost, dwSecondLeft, dwSecondRight);
+ }
+ UnlockResource(hResData);
+ FreeResource(hResData);
+ LocalFree(pResCopy);
+ return;
+ }
+ UnlockResource(hResData);
+ FreeResource(hResData);
+ LocalFree(pResCopy);
+ }
+ }
+ // Could not locate version info for whatever reason
+ spdlog::error("Failed to load version info:\n{}", std::system_category().message(GetLastError()));
+ sprintf(NSUserAgent, "R2Northstar/0.0.0");
+}