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()