From 8ac81954dd9724494c54e84673b0c22cf844495d Mon Sep 17 00:00:00 2001 From: Jakub Vesely <1251980+tinix0@users.noreply.github.com> Date: Wed, 9 Sep 2026 13:10:22 +0200 Subject: [PATCH 1/2] Derive OPENTS_ARCH from the compiler's architecture id CMAKE_VS_PLATFORM_NAME only sets OPENTS_ARCH under the Visual Studio generator, leaving it empty for the clang-cl toolchain and any other generator. CMAKE_CXX_COMPILER_ARCHITECTURE_ID is set on every MSVC-ABI toolchain path, so use that instead. --- CMakeLists.txt | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index 6ac8022f7..1d4cdc1ae 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -14,6 +14,7 @@ option(OPENTS_OFFICIAL_BUILD "Build as an official release of the declared versi option(OPENTS_EXPERIMENTAL_CLANG_CL "Build with clang-cl using the MSVC ABI" OFF) option(OPENTS_EXPERIMENTAL_X64 "Configure an unsupported 64-bit Windows build" OFF) + if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang" AND CMAKE_CXX_COMPILER_FRONTEND_VARIANT STREQUAL "MSVC") if(NOT OPENTS_EXPERIMENTAL_CLANG_CL) @@ -41,6 +42,11 @@ else() "-DCMAKE_TOOLCHAIN_FILE=cmake/toolchains/clang-cl-msvc.cmake.") endif() +string(TOLOWER "${CMAKE_CXX_COMPILER_ARCHITECTURE_ID}" OPENTS_ARCH) +if(NOT OPENTS_ARCH) + set(OPENTS_ARCH "unknown") +endif() + enable_language(RC) set(CMAKE_CXX_STANDARD 20) @@ -71,6 +77,7 @@ set(OPENTS_STAMP_ARGS "-DOPENTS_SOURCE_DIR=${CMAKE_SOURCE_DIR}" "-DOPENTS_VERSION_HEADER=${OPENTS_VERSION_HEADER}" "-DOPENTS_STAMP_HEADER=${OPENTS_STAMP_HEADER}" + "-DOPENTS_ARCH=${OPENTS_ARCH}" -P "${CMAKE_SOURCE_DIR}/cmake/GitStamp.cmake" ) From 373d9cff96d5d70c470a464750684c00589bc522 Mon Sep 17 00:00:00 2001 From: Jakub Vesely <1251980+tinix0@users.noreply.github.com> Date: Wed, 9 Sep 2026 13:10:26 +0200 Subject: [PATCH 2/2] Report OPENTS_ARCH in the version header and display string --- cmake/GitStamp.cmake | 10 ++++++---- code/dbgprint.cpp | 2 +- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/cmake/GitStamp.cmake b/cmake/GitStamp.cmake index 3438dc44d..b13c7aaff 100644 --- a/cmake/GitStamp.cmake +++ b/cmake/GitStamp.cmake @@ -71,6 +71,8 @@ set(VERSION_CONTENT #else #define OPENTS_RC_PRERELEASE_FLAG 0x0L #endif + +#define OPENTS_ARCH \"${OPENTS_ARCH}\" ") set(OPENTS_COMMIT "unknown") @@ -173,13 +175,13 @@ if(OPENTS_COMMIT_DIRTY) endif() if(OPENTS_OFFICIAL_BUILD) - set(OPENTS_VERSION_DISPLAY "${OPENTS_VERSION}") + set(OPENTS_VERSION_DISPLAY "${OPENTS_VERSION} (${OPENTS_ARCH})") elseif(OPENTS_COMMIT STREQUAL "unknown") - set(OPENTS_VERSION_DISPLAY "${OPENTS_VERSION}") + set(OPENTS_VERSION_DISPLAY "${OPENTS_VERSION} (${OPENTS_ARCH})") elseif(OPENTS_COMMIT_DIRTY) - set(OPENTS_VERSION_DISPLAY "${OPENTS_VERSION} (${OPENTS_COMMIT}, modified)") + set(OPENTS_VERSION_DISPLAY "${OPENTS_VERSION} (${OPENTS_COMMIT}, modified, ${OPENTS_ARCH})") else() - set(OPENTS_VERSION_DISPLAY "${OPENTS_VERSION} (${OPENTS_COMMIT})") + set(OPENTS_VERSION_DISPLAY "${OPENTS_VERSION} (${OPENTS_COMMIT}, ${OPENTS_ARCH})") endif() set(STAMP_CONTENT diff --git a/code/dbgprint.cpp b/code/dbgprint.cpp index 41bcbb097..97ef4f21b 100644 --- a/code/dbgprint.cpp +++ b/code/dbgprint.cpp @@ -385,7 +385,7 @@ R"ART( char line[512]; - snprintf(line, sizeof(line), "Version : OpenTS %s (%s build)\n", OPENTS_VERSION, BuildType); + snprintf(line, sizeof(line), "Version : OpenTS %s (%s %s build)\n", OPENTS_VERSION, OPENTS_ARCH, BuildType); Write_Message_Locked(line, false); snprintf(line, sizeof(line), "Commit : %s on %s%s\n", OPENTS_COMMIT, OPENTS_BRANCH,