configure: find MSVC 2017 MSMs & DLLs again

They're still called "VC150" in my installation.

Change-Id: I0a005236ff5edc758be41616e33b254577144f17
This commit is contained in:
Michael Stahl
2017-09-07 13:26:44 +02:00
parent bfa662d99a
commit d74424a09e

View File

@@ -5206,19 +5206,21 @@ find_winsdk()
find_msms()
{
my_msm_file=Microsoft_VC${VCVER}_CRT_x86.msm
my_msm_files=Microsoft_VC${VCVER}_CRT_x86.msm
if test $VCVER = 150; then
my_msm_file=Microsoft_VC141_CRT_x86.msm
my_msm_files="Microsoft_VC141_CRT_x86.msm ${my_msm_files}"
fi
AC_MSG_CHECKING([for $my_msm_file])
AC_MSG_CHECKING([for ${my_msm_files}])
msmdir=
for ver in 14.0 15.0; do
reg_get_value_32 HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/VisualStudio/$ver/Setup/VS/MSMDir
if test -n "$regvalue"; then
if test -e "$regvalue/$my_msm_file"; then
msmdir=$regvalue
break
fi
for f in ${my_msm_files}; do
if test -e "$regvalue/${f}"; then
msmdir=$regvalue
break
fi
done
fi
done
dnl Is the following fallback really necessary, or was it added in response
@@ -5232,9 +5234,11 @@ find_msms()
dnl obtain its value from cygwin:
if test -z "$msmdir"; then
my_msm_dir="${COMMONPROGRAMFILES}/Merge Modules/"
if test -e "$my_msm_dir/$my_msm_file"; then
msmdir=$my_msm_dir
fi
for f in ${my_msm_files}; do
if test -e "$my_msm_dir/${f}"; then
msmdir=$my_msm_dir
fi
done
fi
dnl Starting from MSVC 15.0, merge modules are located in different directory
@@ -5242,10 +5246,12 @@ find_msms()
for l in `ls -1 $VC_PRODUCT_DIR/redist/MSVC/`; do
AC_MSG_CHECKING([for $VC_PRODUCT_DIR/redist/MSVC/$l/MergeModules])
my_msm_dir="$VC_PRODUCT_DIR/redist/MSVC/$l/MergeModules/"
if test -e "$my_msm_dir/$my_msm_file"; then
msmdir=$my_msm_dir
break
fi
for f in ${my_msm_files}; do
if test -e "$my_msm_dir/${f}"; then
msmdir=$my_msm_dir
break
fi
done
done
fi
@@ -5257,7 +5263,7 @@ find_msms()
AC_MSG_ERROR([not found])
else
AC_MSG_WARN([not found])
add_warning "MSM $my_msm_file not found"
add_warning "MSM none of ${my_msm_files} found"
fi
fi
}
@@ -5272,6 +5278,10 @@ find_msvc_x64_dlls()
msvcdllpath="$VC_PRODUCT_DIR/redist/MSVC/$l/x64/Microsoft.VC141.CRT"
break
fi
if test -d "$VC_PRODUCT_DIR/redist/MSVC/$l/onecore/x64/Microsoft.VC150.CRT"; then
msvcdllpath="$VC_PRODUCT_DIR/redist/MSVC/$l/onecore/x64/Microsoft.VC150.CRT"
break
fi
done
fi
msvcdlls="msvcp140.dll vcruntime140.dll"