From d74cd1cd6aba1a2411c7b488b76f15fdb6b4311a Mon Sep 17 00:00:00 2001 From: DwifteJB Date: Thu, 5 Mar 2026 06:49:35 +0000 Subject: [PATCH 1/2] fix: if WINDOWS_SDK_PATH is not defined, find via find_program --- cmake/LinuxCrosscompile.cmake | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/cmake/LinuxCrosscompile.cmake b/cmake/LinuxCrosscompile.cmake index c32efeac5..a8f670bb0 100644 --- a/cmake/LinuxCrosscompile.cmake +++ b/cmake/LinuxCrosscompile.cmake @@ -14,6 +14,31 @@ set(CMAKE_TRY_COMPILE_PLATFORM_VARIABLES WINDOWS_SDK_PATH) # You have no idea ho message(STATUS "WINDOWS_SDK_PATH=${WINDOWS_SDK_PATH}") +# if not exists WINDOW_SDK_PATH try find + +if(NOT WINDOWS_SDK_PATH) + if(DEFINED ENV{WINDOWS_SDK_PATH}) + # rm: check if defined within env instead + set(WINDOWS_SDK_PATH $ENV{WINDOWS_SDK_PATH}) + else() + # rm: not found? check to find msbuild wrapper from mscv-wine + find_program(_msbuild_exe msbuild) + if(_msbuild_exe) + get_filename_component(_msbuild_bin ${_msbuild_exe} DIRECTORY) # .../bin/x64 + get_filename_component(_candidate "${_msbuild_bin}/.." ABSOLUTE) # .../bin + if(NOT IS_DIRECTORY "${_candidate}/vc") + get_filename_component(_candidate "${_candidate}/.." ABSOLUTE) # .../ + endif() + message(STATUS "Found Windows SDK Path in ${_candidate}") + set(WINDOWS_SDK_PATH ${_candidate}) + else() + # rm: assume /opt/msvc as a fallback (which is usually the default path) + message(STATUS "Fallback to ${_candidate}") + set(WINDOWS_SDK_PATH /opt/msvc) + endif() + endif() +endif() + if(NOT EXISTS "${WINDOWS_SDK_PATH}/kits/10/Include") message(FATAL_ERROR "Invalid WINDOWS_SDK_PATH: ${WINDOWS_SDK_PATH}") endif() From 248c17573e03576ae3ea8f9406bf2b0acf0bad84 Mon Sep 17 00:00:00 2001 From: DwifteJB Date: Thu, 5 Mar 2026 06:54:18 +0000 Subject: [PATCH 2/2] fix: remove comments that are now out-of-date --- cmake/LinuxCrosscompile.cmake | 4 ---- 1 file changed, 4 deletions(-) diff --git a/cmake/LinuxCrosscompile.cmake b/cmake/LinuxCrosscompile.cmake index a8f670bb0..57e4b3a5c 100644 --- a/cmake/LinuxCrosscompile.cmake +++ b/cmake/LinuxCrosscompile.cmake @@ -7,15 +7,11 @@ set(CMAKE_LINKER lld-link) set(CMAKE_C_COMPILER_FRONTEND_VARIANT MSVC) set(CMAKE_CXX_COMPILER_FRONTEND_VARIANT MSVC) -# TODO add check that WINDOWS_SDK_PATH is real - set(WINDOWS_SDK_PATH "" CACHE PATH "Path to Windows SDK root") set(CMAKE_TRY_COMPILE_PLATFORM_VARIABLES WINDOWS_SDK_PATH) # You have no idea how much suffering I went through to get this solution. I hate this build system with all my message(STATUS "WINDOWS_SDK_PATH=${WINDOWS_SDK_PATH}") -# if not exists WINDOW_SDK_PATH try find - if(NOT WINDOWS_SDK_PATH) if(DEFINED ENV{WINDOWS_SDK_PATH}) # rm: check if defined within env instead