From d74cd1cd6aba1a2411c7b488b76f15fdb6b4311a Mon Sep 17 00:00:00 2001 From: DwifteJB Date: Thu, 5 Mar 2026 06:49:35 +0000 Subject: [PATCH] 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()