17
0
mirror of https://github.com/MaSzyna-EU07/maszyna.git synced 2026-10-17 19:09:25 +02:00

define WIN32 when not building with the MSVC driver

Only Platform/Windows-MSVC.cmake passes /DWIN32; neither Windows-GNU nor
the GNU branch of Windows-Clang does. Switching drivers silently took the
macro away from every translation unit, and third-party code that tests
the unprefixed WIN32 took its non-Windows path: FSR2 defined wcscpy_s as
wcscpy, which then failed against the SDK's own three-argument call. asio
reads the same macro.

Defined before any add_subdirectory so every target sees it.
This commit is contained in:
maj00r
2026-09-10 14:24:15 +02:00
parent 5b4df01565
commit 14b2e6dc6f

View File

@@ -28,6 +28,15 @@ if (NOT CMAKE_CXX_COMPILER_ID MATCHES "Clang|MSVC")
"Build with Clang (CI uses 22) or MSVC.")
endif()
# Only Platform/Windows-MSVC.cmake passes /DWIN32; the GNU-driver platform files
# do not. Plenty of third-party code tests the unprefixed WIN32 rather than
# _WIN32 - asio and AMD's FSR2 among it, the latter swapping in POSIX shims for
# wcscpy_s and _countof that then collide with the real CRT. Define it here,
# before any add_subdirectory, so every target sees what an MSVC build saw.
if (WIN32 AND NOT MSVC)
add_compile_definitions(WIN32)
endif()
#set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsanitize=address -fsanitize=undefined")
#set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=address -fsanitize=undefined -Wformat")
#set(CMAKE_LD_FLAGS "${CMAKE_LD_FLAGS} -fsanitize=address -fsanitize=undefined")