Files
Dylan DeverillandClaude Opus 5 c3f58de856 Stamp the build into the binary and into the first line of its log
A release carried no version anywhere a user or a maintainer could see it.
The exe had no VERSIONINFO, so its properties showed nothing, and events.log
opened with a bare "=== SteamlessController started ===". Twice while chasing
#79 a reporter's log arrived and there was no way to tell which of two builds
had written it, which cost a round trip each time.

resource.h now holds the version once, and both consumers read it from there:
app.rc builds a VERSIONINFO resource so Explorer and Programs and Features can
report it, and the startup line names it. Keeping them on one definition means
a binary and its log can never disagree about what they are.

InnoInstallerScript.iss still carries its own copy of the number. Inno can read
it back out of the built exe instead, which would leave one place to edit, but
that makes the installer refuse to compile before the app is built and is a
change to how releases are cut rather than to the app.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-19 22:46:57 -07:00

34 lines
1.0 KiB
Plaintext

#include "resource.h"
#include <winver.h>
IDI_ICON_OFF ICON "SteamControllerOFF.ico"
IDI_ICON_ON ICON "SteamControllerON.ico"
IDI_ICON_SHARED ICON "SteamControllerSHARED.ico"
VS_VERSION_INFO VERSIONINFO
FILEVERSION APP_VERSION_MAJOR,APP_VERSION_MINOR,APP_VERSION_PATCH,0
PRODUCTVERSION APP_VERSION_MAJOR,APP_VERSION_MINOR,APP_VERSION_PATCH,0
FILEFLAGSMASK VS_FFI_FILEFLAGSMASK
FILEFLAGS 0x0L
FILEOS VOS_NT_WINDOWS32
FILETYPE VFT_APP
FILESUBTYPE VFT2_UNKNOWN
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "040904b0"
BEGIN
VALUE "FileDescription", "SteamlessController"
VALUE "FileVersion", APP_VERSION_STR
VALUE "InternalName", "SteamlessController"
VALUE "OriginalFilename", "SteamlessController.exe"
VALUE "ProductName", "SteamlessController"
VALUE "ProductVersion", APP_VERSION_STR
END
END
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 0x409, 1200
END
END