From 19a6301140b6138aa786868034dffd27d530cc77 Mon Sep 17 00:00:00 2001 From: David Lane <42013603+ReenigneArcher@users.noreply.github.com> Date: Tue, 20 Jan 2026 15:47:02 -0500 Subject: [PATCH] build(windows): fix rc version for llvm clang (#4606) --- cmake/compile_definitions/windows.cmake | 2 +- cmake/prep/build_version.cmake | 9 +++++++++ src/platform/windows/windows.rc | 4 ++-- 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/cmake/compile_definitions/windows.cmake b/cmake/compile_definitions/windows.cmake index 4cabe8ab..2dd9615c 100644 --- a/cmake/compile_definitions/windows.cmake +++ b/cmake/compile_definitions/windows.cmake @@ -44,7 +44,7 @@ add_library(sunshine_rc_object OBJECT "${CMAKE_SOURCE_DIR}/src/platform/windows/ # Set minimal properties for RC compilation - only what's needed for the resource file # Otherwise compilation can fail due to "line too long" errors set_target_properties(sunshine_rc_object PROPERTIES - COMPILE_DEFINITIONS "PROJECT_ICON_PATH=${SUNSHINE_ICON_PATH};PROJECT_NAME=${PROJECT_NAME};PROJECT_VENDOR=${SUNSHINE_PUBLISHER_NAME};PROJECT_VERSION=${PROJECT_VERSION};PROJECT_VERSION_MAJOR=${PROJECT_VERSION_MAJOR};PROJECT_VERSION_MINOR=${PROJECT_VERSION_MINOR};PROJECT_VERSION_PATCH=${PROJECT_VERSION_PATCH}" # cmake-lint: disable=C0301 + COMPILE_DEFINITIONS "PROJECT_ICON_PATH=${SUNSHINE_ICON_PATH};PROJECT_NAME=${PROJECT_NAME};PROJECT_VENDOR=${SUNSHINE_PUBLISHER_NAME};PROJECT_VERSION=${PROJECT_VERSION};PROJECT_VERSION_MAJOR=${PROJECT_VERSION_MAJOR};PROJECT_VERSION_MINOR=${PROJECT_VERSION_MINOR};PROJECT_VERSION_PATCH=${PROJECT_VERSION_PATCH};RC_VERSION_BUILD=${RC_VERSION_BUILD};RC_VERSION_REVISION=${RC_VERSION_REVISION}" # cmake-lint: disable=C0301 INCLUDE_DIRECTORIES "" ) diff --git a/cmake/prep/build_version.cmake b/cmake/prep/build_version.cmake index 030e93c4..7c10dde2 100644 --- a/cmake/prep/build_version.cmake +++ b/cmake/prep/build_version.cmake @@ -120,6 +120,13 @@ if(PROJECT_VERSION MATCHES "([0-9]+)\\.([0-9]+)\\.([0-9]+)") set(CMAKE_PROJECT_VERSION_PATCH "${CMAKE_MATCH_3}") endif() +# Split PROJECT_VERSION_PATCH for RC file (Windows VERSIONINFO requires values <= 65535) +# PROJECT_VERSION_PATCH can be 0-245959, so we split it into two parts: +# - Last 2 digits for RC_VERSION_REVISION +# - Leading digits for RC_VERSION_BUILD (0 if original is <= 99) +math(EXPR RC_VERSION_BUILD "${PROJECT_VERSION_PATCH} / 100") +math(EXPR RC_VERSION_REVISION "${PROJECT_VERSION_PATCH} % 100") + message("PROJECT_NAME: ${PROJECT_NAME}") message("PROJECT_VERSION: ${PROJECT_VERSION}") message("PROJECT_VERSION_MAJOR: ${PROJECT_VERSION_MAJOR}") @@ -129,6 +136,8 @@ message("CMAKE_PROJECT_VERSION: ${CMAKE_PROJECT_VERSION}") message("CMAKE_PROJECT_VERSION_MAJOR: ${CMAKE_PROJECT_VERSION_MAJOR}") message("CMAKE_PROJECT_VERSION_MINOR: ${CMAKE_PROJECT_VERSION_MINOR}") message("CMAKE_PROJECT_VERSION_PATCH: ${CMAKE_PROJECT_VERSION_PATCH}") +message("RC_VERSION_BUILD: ${RC_VERSION_BUILD}") +message("RC_VERSION_REVISION: ${RC_VERSION_REVISION}") message("PROJECT_YEAR: ${PROJECT_YEAR}") message("PROJECT_MONTH: ${PROJECT_MONTH}") message("PROJECT_DAY: ${PROJECT_DAY}") diff --git a/src/platform/windows/windows.rc b/src/platform/windows/windows.rc index 7de76b93..8f1c2bf7 100644 --- a/src/platform/windows/windows.rc +++ b/src/platform/windows/windows.rc @@ -8,8 +8,8 @@ #define TOSTRING(x) STRINGIFY(x) VS_VERSION_INFO VERSIONINFO -FILEVERSION PROJECT_VERSION_MAJOR,PROJECT_VERSION_MINOR,PROJECT_VERSION_PATCH,0 -PRODUCTVERSION PROJECT_VERSION_MAJOR,PROJECT_VERSION_MINOR,PROJECT_VERSION_PATCH,0 +FILEVERSION PROJECT_VERSION_MAJOR,PROJECT_VERSION_MINOR,RC_VERSION_BUILD,RC_VERSION_REVISION +PRODUCTVERSION PROJECT_VERSION_MAJOR,PROJECT_VERSION_MINOR,RC_VERSION_BUILD,RC_VERSION_REVISION FILEOS VOS__WINDOWS32 FILETYPE VFT_APP FILESUBTYPE VFT2_UNKNOWN