From 90859107c8686c8798bff26aeb8ff17cea54bee1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?P=C5=99emysl=20Eric=20Janouch?= Date: Sat, 15 Jul 2023 23:34:37 +0200 Subject: xW: set version information --- xW/config.h.in | 10 +++++++++- xW/xW.cpp | 6 ++++-- xW/xW.rc | 32 ++++++++++++++++++++++++++++++++ 3 files changed, 45 insertions(+), 3 deletions(-) diff --git a/xW/config.h.in b/xW/config.h.in index 2bfe8fc..f978cac 100644 --- a/xW/config.h.in +++ b/xW/config.h.in @@ -1,6 +1,14 @@ #ifndef CONFIG_H #define CONFIG_H -#define PROGRAM_VERSION "${project_version}" +#define PROJECT_NAME "${PROJECT_NAME}" +#define PROJECT_VERSION "${project_version}" +#define PROJECT_DESCRIPTION "${PROJECT_DESCRIPTION}" +#define PROJECT_AUTHOR "Přemysl Eric Janouch" + +#define PROJECT_MAJOR (${PROJECT_VERSION_MAJOR}-0) +#define PROJECT_MINOR (${PROJECT_VERSION_MINOR}-0) +#define PROJECT_PATCH (${PROJECT_VERSION_PATCH}-0) +#define PROJECT_TWEAK (${PROJECT_VERSION_TWEAK}-0) #endif // ! CONFIG_H diff --git a/xW/xW.cpp b/xW/xW.cpp index bbd208a..c0b6a03 100644 --- a/xW/xW.cpp +++ b/xW/xW.cpp @@ -18,6 +18,7 @@ #include "xC-proto.cpp" #include "xW-resources.h" +#include "config.h" #include #include @@ -1744,11 +1745,12 @@ wWinMain(HINSTANCE hInstance, [[maybe_unused]] HINSTANCE hPrevInstance, wc.hIcon = g.hicon; wc.hCursor = LoadCursor(NULL, IDC_ARROW); wc.hbrBackground = GetSysColorBrush(COLOR_3DFACE); - wc.lpszClassName = L"xW"; + wc.lpszClassName = TEXT(PROJECT_NAME); if (!RegisterClassEx(&wc)) return 1; - g.hwndMain = CreateWindowEx(WS_EX_CONTROLPARENT, L"xW", L"xW", + g.hwndMain = CreateWindowEx( + WS_EX_CONTROLPARENT, wc.lpszClassName, TEXT(PROJECT_NAME), WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, 600, 400, NULL, NULL, hInstance, NULL); diff --git a/xW/xW.rc b/xW/xW.rc index 858b104..f041995 100644 --- a/xW/xW.rc +++ b/xW/xW.rc @@ -1,6 +1,12 @@ #include #include "xW-resources.h" +// https://devblogs.microsoft.com/oldnewthing/20190607-00/?p=102569 +// For UTF-8 literals to work in both MinGW and Microsoft resource compilers, +// the pragma needs to be in this file, and before they're included. +#pragma code_page(65001) +#include "config.h" + // Beware of this madness https://gitlab.kitware.com/cmake/cmake/-/issues/23066 CREATEPROCESS_MANIFEST_RESOURCE_ID RT_MANIFEST "xW.manifest" @@ -21,3 +27,29 @@ BEGIN "H", ID_TOGGLE_UNIMPORTANT, ALT "h", ID_DISPLAY_FULL_LOG, ALT END + +VS_VERSION_INFO VERSIONINFO +FILEVERSION PROJECT_MAJOR, PROJECT_MINOR, PROJECT_PATCH, PROJECT_TWEAK +PRODUCTVERSION PROJECT_MAJOR, PROJECT_MINOR, PROJECT_PATCH, PROJECT_TWEAK +FILETYPE VFT_APP +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "040904B0" + BEGIN + VALUE "CompanyName", PROJECT_AUTHOR + VALUE "FileDescription", PROJECT_DESCRIPTION + VALUE "FileVersion", PROJECT_VERSION + VALUE "InternalName", PROJECT_NAME + VALUE "LegalCopyright", PROJECT_AUTHOR + VALUE "OriginalFilename", PROJECT_NAME ".exe" + VALUE "ProductName", PROJECT_NAME + VALUE "ProductVersion", PROJECT_VERSION + END + END + + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x409, 1200 + END +END -- cgit v1.2.3