@@ -217,10 +217,12 @@ AC_DEFUN([TOOLCHAIN_FIND_VISUAL_STUDIO_BAT_FILE],
217217 TOOLCHAIN_CHECK_POSSIBLE_VISUAL_STUDIO_ROOT([ $TARGET_CPU] , [ $VS_VERSION] ,
218218 [ $PROGRAMFILES_X86/$VS_INSTALL_DIR] , [ well-known name] )
219219 fi
220+ # Derive system drive root from CMD (which is at <drive>/windows/system32/cmd.exe)
221+ WINSYSDRIVE_ROOT="$(dirname "$(dirname "$(dirname "$CMD")")")"
220222 TOOLCHAIN_CHECK_POSSIBLE_VISUAL_STUDIO_ROOT([ $TARGET_CPU] , [ $VS_VERSION] ,
221- [ c: /program files/$VS_INSTALL_DIR] , [ well-known name] )
223+ [ $WINSYSDRIVE_ROOT /program files/$VS_INSTALL_DIR] , [ well-known name] )
222224 TOOLCHAIN_CHECK_POSSIBLE_VISUAL_STUDIO_ROOT([ $TARGET_CPU] , [ $VS_VERSION] ,
223- [ c: /program files (x86)/$VS_INSTALL_DIR] , [ well-known name] )
225+ [ $WINSYSDRIVE_ROOT /program files (x86)/$VS_INSTALL_DIR] , [ well-known name] )
224226 if test "x$SDK_INSTALL_DIR" != x; then
225227 if test "x$ProgramW6432" != x; then
226228 TOOLCHAIN_CHECK_POSSIBLE_WIN_SDK_ROOT([ $TARGET_CPU] , [ $VS_VERSION] ,
@@ -235,9 +237,9 @@ AC_DEFUN([TOOLCHAIN_FIND_VISUAL_STUDIO_BAT_FILE],
235237 [ $PROGRAMFILES/$SDK_INSTALL_DIR] , [ well-known name] )
236238 fi
237239 TOOLCHAIN_CHECK_POSSIBLE_WIN_SDK_ROOT([ $TARGET_CPU] , [ $VS_VERSION] ,
238- [ c: /program files/$SDK_INSTALL_DIR] , [ well-known name] )
240+ [ $WINSYSDRIVE_ROOT /program files/$SDK_INSTALL_DIR] , [ well-known name] )
239241 TOOLCHAIN_CHECK_POSSIBLE_WIN_SDK_ROOT([ $TARGET_CPU] , [ $VS_VERSION] ,
240- [ c: /program files (x86)/$SDK_INSTALL_DIR] , [ well-known name] )
242+ [ $WINSYSDRIVE_ROOT /program files (x86)/$SDK_INSTALL_DIR] , [ well-known name] )
241243 fi
242244
243245 VCVARS_VER=auto
@@ -338,7 +340,7 @@ AC_DEFUN([TOOLCHAIN_EXTRACT_VISUAL_STUDIO_ENV],
338340 OLDPATH="$PATH"
339341 # Make sure we only capture additions to PATH needed by VS.
340342 # Clear out path, but need system dir present for vsvars cmd file to be able to run
341- export PATH=$WINENV_PREFIX/c/windows/system32
343+ export PATH="$(dirname "$CMD")"
342344 # The "| cat" is to stop SetEnv.Cmd to mess with system colors on some systems
343345 # We can't pass -vcvars_ver=$VCVARS_VER here because cmd.exe eats all '='
344346 # in bat file arguments. :-(
0 commit comments