Kaydet (Commit) 6dce5d16 authored tarafından David Ostrovsky's avatar David Ostrovsky Kaydeden (comit) Thorsten Behrens

MSVC 15.0: Fix configure to work with update 15.3

Update 15.3 renamed redist directory from 150 to 141 and introduced
intermediate build number directories, that are different from the
compiler build number directories.

While the compiler is located under:

  [...]/MSVC/14.11.25503/bin/HostX64/x64/cl.exe

the merge modules are located now under:

  VC/redist/MSVC/14.11.25325/MergeModules

Change the hard coded detection approach, to the dynamic one: list
all directories in suspected locations and check for existnace of
the artifacts we are looking for.

Change-Id: Ie040f290d1748ab4ec5c715b6636cc3733329e1c
Reviewed-on: https://gerrit.libreoffice.org/41922Reviewed-by: 's avatarThorsten Behrens <Thorsten.Behrens@CIB.de>
Tested-by: 's avatarThorsten Behrens <Thorsten.Behrens@CIB.de>
üst 89c25a02
......@@ -5207,6 +5207,9 @@ find_winsdk()
find_msms()
{
my_msm_file=Microsoft_VC${VCVER}_CRT_x86.msm
if test $VCVER = 150; then
my_msm_file=Microsoft_VC141_CRT_x86.msm
fi
AC_MSG_CHECKING([for $my_msm_file])
msmdir=
for ver in 14.0 15.0; do
......@@ -5236,16 +5239,14 @@ find_msms()
dnl Starting from MSVC 15.0, merge modules are located in different directory
if test $VCVER = 150; then
my_msm_dir="$VC_PRODUCT_DIR/redist/MSVC/$vcbuildnumber/MergeModules/"
if test -e "$my_msm_dir/$my_msm_file"; then
msmdir=$my_msm_dir
else
# got everything in 14.10.15017 except the MSMS in 25008... huh?
my_msm_dir="$VC_PRODUCT_DIR/redist/MSVC/14.10.25008/MergeModules/"
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
fi
done
fi
if test -n "$msmdir"; then
......@@ -5265,11 +5266,13 @@ find_msvc_x64_dlls()
{
msvcdllpath="$VC_PRODUCT_DIR/redist/x64/Microsoft.VC${VCVER}.CRT"
if test "$VCVER" = 150; then
if test $vcbuildnumber = 14.10.25017; then
msvcdllpath="$VC_PRODUCT_DIR/redist/MSVC/$vcbuildnumber/onecore/x64/Microsoft.VC${VCVER}.CRT"
else
msvcdllpath="$VC_PRODUCT_DIR/redist/MSVC/$vcbuildnumber/x64/Microsoft.VC${VCVER}.CRT"
fi
for l in `ls -1 $VC_PRODUCT_DIR/redist/MSVC/`; do
AC_MSG_CHECKING([for $VC_PRODUCT_DIR/redist/MSVC/$l/x64/Microsoft.VC141.CRT])
if test -d "$VC_PRODUCT_DIR/redist/MSVC/$l/x64/Microsoft.VC141.CRT"; then
msvcdllpath="$VC_PRODUCT_DIR/redist/MSVC/$l/x64/Microsoft.VC141.CRT"
break
fi
done
fi
msvcdlls="msvcp140.dll vcruntime140.dll"
for dll in $msvcdlls; do
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment