From 000a5d28f35583b8cd6494d11fb4a0c0b4bcd298 Mon Sep 17 00:00:00 2001 From: Adam Bird Date: Tue, 25 Apr 2023 10:36:35 -0400 Subject: [PATCH] Add version info and other details to windows exe properties (#2743) * add version info and other details to windows exe properties * configure properties file directly to src dir * move version name in properties and change to Title Case --- .gitignore | 4 +++- CMakeLists.txt | 2 +- soh/CMakeLists.txt | 4 +++- soh/Resource.rc | 37 ++++++++++++++++++++++++++++++++++++ soh/src/boot/properties.h.in | 14 ++++++++++++++ 5 files changed, 58 insertions(+), 3 deletions(-) create mode 100644 soh/src/boot/properties.h.in diff --git a/.gitignore b/.gitignore index 58d6bb578..af0068765 100644 --- a/.gitignore +++ b/.gitignore @@ -446,4 +446,6 @@ CTestTestfile.cmake _deps */extract_assets_cmake* /build* -build.c + +soh/build.c +soh/properties.h diff --git a/CMakeLists.txt b/CMakeLists.txt index a1b617cad..97c18a038 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -6,7 +6,7 @@ set(CMAKE_CXX_STANDARD 20 CACHE STRING "The C++ standard to use") set(CMAKE_OSX_DEPLOYMENT_TARGET "10.15" CACHE STRING "Minimum OS X deployment version") project(Ship VERSION 6.1.2 LANGUAGES C CXX) -set(PROJECT_BUILD_NAME "KHAN CHARLIE" CACHE STRING "") +set(PROJECT_BUILD_NAME "Khan Charlie" CACHE STRING "") set(PROJECT_TEAM "github.com/harbourmasters" CACHE STRING "") set_property(DIRECTORY ${CMAKE_SOURCE_DIR} PROPERTY VS_STARTUP_PROJECT soh) diff --git a/soh/CMakeLists.txt b/soh/CMakeLists.txt index 5ad431978..5aaeb6fd4 100644 --- a/soh/CMakeLists.txt +++ b/soh/CMakeLists.txt @@ -106,6 +106,7 @@ set(PROJECT_NAME soh) # Sources ################################################################################ configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/src/boot/build.c.in ${CMAKE_BINARY_DIR}/build.c @ONLY) +configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/src/boot/properties.h.in ${CMAKE_CURRENT_SOURCE_DIR}/properties.h @ONLY) set(Header_Files "resource.h") source_group("headers" FILES ${Header_Files}) @@ -210,6 +211,7 @@ source_group("soh\\resource\\importer\\scenecommand" REGULAR_EXPRESSION "soh/res file(GLOB_RECURSE src__ RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "src/*.c" "src/*.h") list(APPEND src__ ${CMAKE_BINARY_DIR}/build.c) +list(APPEND src__ ${CMAKE_CURRENT_SOURCE_DIR}/properties.h) list(APPEND src__ ${CMAKE_CURRENT_SOURCE_DIR}/Resource.rc) list(FILTER src__ EXCLUDE REGEX "src/dmadata/*") list(FILTER src__ EXCLUDE REGEX "src/elf_message/*") @@ -229,7 +231,7 @@ list(REMOVE_ITEM src__ "src/libultra/gu/sqrtf.c") list(REMOVE_ITEM src__ "src/libultra/gu/us2dex.c") source_group("src" REGULAR_EXPRESSION "src/*") -source_group("src\\build" FILES ${CMAKE_BINARY_DIR}/build.c ${CMAKE_CURRENT_SOURCE_DIR}/Resource.rc) +source_group("src\\build" FILES ${CMAKE_BINARY_DIR}/build.c ${CMAKE_CURRENT_SOURCE_DIR}/properties.h ${CMAKE_CURRENT_SOURCE_DIR}/Resource.rc) source_group("src\\boot" REGULAR_EXPRESSION "src/boot/*") source_group("src\\buffers" REGULAR_EXPRESSION "src/buffers/*") source_group("src\\code" REGULAR_EXPRESSION "src/code/*") diff --git a/soh/Resource.rc b/soh/Resource.rc index 03e3c9906..ad27c5471 100644 --- a/soh/Resource.rc +++ b/soh/Resource.rc @@ -1,6 +1,7 @@ // Microsoft Visual C++ generated resource script. // #include "resource.h" +#include "properties.h" #define APSTUDIO_READONLY_SYMBOLS ///////////////////////////////////////////////////////////////////////////// @@ -44,6 +45,42 @@ END #endif // APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// Version Info +// + +VS_VERSION_INFO VERSIONINFO + FILEVERSION VER_FILEVERSION + PRODUCTVERSION VER_PRODUCTVERSION + FILEFLAGSMASK VS_FFI_FILEFLAGSMASK +#ifdef _DEBUG + FILEFLAGS VS_FF_DEBUG +#else + FILEFLAGS 0x0L +#endif + FILEOS VOS_NT_WINDOWS32 + FILETYPE VFT_APP + FILESUBTYPE VFT2_UNKNOWN +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "040904b0" + BEGIN + VALUE "CompanyName", VER_COMPANYNAME_STR + VALUE "FileDescription", VER_FILEDESCRIPTION_STR + VALUE "FileVersion", VER_FILEVERSION_STR + VALUE "InternalName", VER_INTERNALNAME_STR + VALUE "OriginalFilename", VER_ORIGINALFILENAME_STR + VALUE "ProductName", VER_PRODUCTNAME_STR + VALUE "ProductVersion", VER_PRODUCTVERSION_str + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x409, 1200 + END +END ///////////////////////////////////////////////////////////////////////////// // diff --git a/soh/src/boot/properties.h.in b/soh/src/boot/properties.h.in new file mode 100644 index 000000000..8c86cd58d --- /dev/null +++ b/soh/src/boot/properties.h.in @@ -0,0 +1,14 @@ + +#define VER_FILEVERSION @CMAKE_PROJECT_VERSION_MAJOR@, @CMAKE_PROJECT_VERSION_MINOR@, @CMAKE_PROJECT_VERSION_PATCH@, 0 +#define VER_FILEVERSION_STR "@CMAKE_PROJECT_VERSION_MAJOR@.@CMAKE_PROJECT_VERSION_MINOR@.@CMAKE_PROJECT_VERSION_PATCH@\0" + +#define VER_PRODUCTVERSION @CMAKE_PROJECT_VERSION_MAJOR@, @CMAKE_PROJECT_VERSION_MINOR@, @CMAKE_PROJECT_VERSION_PATCH@, 0 +#define VER_PRODUCTVERSION_str "@CMAKE_PROJECT_VERSION_MAJOR@.@CMAKE_PROJECT_VERSION_MINOR@.@CMAKE_PROJECT_VERSION_PATCH@\0" + +#define VER_COMPANYNAME_STR "@PROJECT_TEAM@\0" +#define VER_PRODUCTNAME_STR "Ship of Harkinian\0" + +#define VER_INTERNALNAME_STR "@PROJECT_NAME@\0" +#define VER_ORIGINALFILENAME_STR "@PROJECT_NAME@.exe\0" + +#define VER_FILEDESCRIPTION_STR "Ship of Harkinian - @PROJECT_BUILD_NAME@\0"