From fe6b65d56dd1f20cdce3dc22c72493c97df869a3 Mon Sep 17 00:00:00 2001 From: "C. J. Howard" Date: Sun, 3 Dec 2023 12:46:31 +0800 Subject: [PATCH] Add windows version info resource file --- CMakeLists.txt | 10 +++++++ res/windows/version.rc.in | 56 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 66 insertions(+) create mode 100644 res/windows/version.rc.in diff --git a/CMakeLists.txt b/CMakeLists.txt index c673d1b..e85e298 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -10,12 +10,22 @@ project(Siafu HOMEPAGE_URL "https://github.com/cjhoward/siafu" LANGUAGES CXX ) +string(TOLOWER "${PROJECT_NAME}" PROJECT_SLUG) +set(PROJECT_AUTHOR "C. J. Howard") # Specify the source files in the "src" directory file(GLOB_RECURSE SOURCE_FILES CONFIGURE_DEPENDS ${PROJECT_SOURCE_DIR}/src/*.cpp ) +if(CMAKE_SYSTEM_NAME MATCHES "Windows") + + # Generate Windows version-information resource file + configure_file(${PROJECT_SOURCE_DIR}/res/windows/version.rc.in ${PROJECT_BINARY_DIR}/res/windows/version.rc) + list(APPEND SOURCE_FILES "${PROJECT_BINARY_DIR}/res/windows/version.rc") + +endif() + # Create an executable using the specified source files add_executable(${PROJECT_NAME} ${SOURCE_FILES}) diff --git a/res/windows/version.rc.in b/res/windows/version.rc.in new file mode 100644 index 0000000..5cac42f --- /dev/null +++ b/res/windows/version.rc.in @@ -0,0 +1,56 @@ +// SPDX-FileCopyrightText: 2023 C. J. Howard +// SPDX-License-Identifier: MIT + +#include + +#define VER_FILEVERSION @PROJECT_VERSION_MAJOR@,@PROJECT_VERSION_MINOR@,@PROJECT_VERSION_PATCH@,0 +#define VER_PRODUCTVERSION VER_FILEVERSION +#if !defined(NDEBUG) + #define VER_FILEFLAGS (VS_FF_DEBUG | VS_FF_PRERELEASE) +#else + #define VER_FILEFLAGS 0 +#endif + +#define VER_COMMENTS_STR "" +#define VER_COMPANYNAME_STR "@PROJECT_AUTHOR@" +#define VER_FILEDESCRIPTION_STR "@PROJECT_DESCRIPTION@" +#define VER_FILEVERSION_STR "@PROJECT_VERSION@" +#define VER_INTERNALNAME_STR "@PROJECT_SLUG@" +#define VER_LEGALCOPYRIGHT_STR "\251 @PROJECT_AUTHOR@. All rights reserved." +#define VER_LEGALTRADEMARKS1_STR "" +#define VER_LEGALTRADEMARKS2_STR "" +#define VER_ORIGINALFILENAME_STR "@PROJECT_SLUG@.exe" +#define VER_PRODUCTNAME_STR "@PROJECT_NAME@" +#define VER_PRODUCTVERSION_STR VER_FILEVERSION_STR + +VS_VERSION_INFO VERSIONINFO +FILEVERSION VER_FILEVERSION +PRODUCTVERSION VER_PRODUCTVERSION +FILEFLAGSMASK VER_FILEFLAGS +FILEOS VOS__WINDOWS32 +FILETYPE VFT_APP +FILESUBTYPE VFT2_UNKNOWN +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "040904E4" + BEGIN + VALUE "Comments", VER_COMMENTS_STR + VALUE "CompanyName", VER_COMPANYNAME_STR + VALUE "FileDescription", VER_FILEDESCRIPTION_STR + VALUE "FileVersion", VER_FILEVERSION_STR + VALUE "InternalName", VER_INTERNALNAME_STR + VALUE "LegalCopyright", VER_LEGALCOPYRIGHT_STR + VALUE "LegalTrademarks1", VER_LEGALTRADEMARKS1_STR + VALUE "LegalTrademarks2", VER_LEGALTRADEMARKS2_STR + VALUE "OriginalFilename", VER_ORIGINALFILENAME_STR + VALUE "ProductName", VER_PRODUCTNAME_STR + VALUE "ProductVersion", VER_PRODUCTVERSION_STR + END + END + + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0409, 1200 + END +END \ No newline at end of file