Bin support for Visual Studio 2015, leaving just 2017 for now
Change-Id: I6e604a8a463ff453b82ca60f1bf92b7c73870482 Reviewed-on: https://gerrit.libreoffice.org/56455 Tested-by: Jenkins Reviewed-by: Tor Lillqvist <tml@collabora.com>
This commit is contained in:
parent
4ed059490d
commit
cd6a441a77
130
configure.ac
130
configure.ac
@ -2033,9 +2033,9 @@ libo_FUZZ_ARG_WITH(doxygen,
|
|||||||
,with_doxygen=yes)
|
,with_doxygen=yes)
|
||||||
|
|
||||||
AC_ARG_WITH(visual-studio,
|
AC_ARG_WITH(visual-studio,
|
||||||
AS_HELP_STRING([--with-visual-studio=<2015/2017>],
|
AS_HELP_STRING([--with-visual-studio=<2017>],
|
||||||
[Specify which Visual Studio version to use in case several are
|
[Specify which Visual Studio version to use in case several are
|
||||||
installed. If not specified, defaults to 2015.]),
|
installed. Currently only 2017 is supported.]),
|
||||||
,)
|
,)
|
||||||
|
|
||||||
AC_ARG_WITH(windows-sdk,
|
AC_ARG_WITH(windows-sdk,
|
||||||
@ -3261,8 +3261,6 @@ map_vs_year_to_version()
|
|||||||
unset vsversion
|
unset vsversion
|
||||||
|
|
||||||
case $1 in
|
case $1 in
|
||||||
2015)
|
|
||||||
vsversion=14.0;;
|
|
||||||
2017)
|
2017)
|
||||||
vsversion=15.0;;
|
vsversion=15.0;;
|
||||||
*)
|
*)
|
||||||
@ -3281,21 +3279,17 @@ vs_versions_to_check()
|
|||||||
map_vs_year_to_version "$1"
|
map_vs_year_to_version "$1"
|
||||||
vsversions=$vsversion
|
vsversions=$vsversion
|
||||||
else
|
else
|
||||||
# By default we prefer 2015/2017, in this order
|
# We accept only 2017
|
||||||
vsversions="14.0 15.0"
|
vsversions="15.0"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
win_get_env_from_vsvars32bat()
|
win_get_env_from_vsvars32bat()
|
||||||
{
|
{
|
||||||
WRAPPERBATCHFILEPATH="`mktemp -t wrpXXXXXX.bat`"
|
WRAPPERBATCHFILEPATH="`mktemp -t wrpXXXXXX.bat`"
|
||||||
if test $vcnum = "150"; then
|
# Also seems to be located in another directory under the same name: vsvars32.bat
|
||||||
# Also seems to be located in another directory under the same name: vsvars32.bat
|
# https://github.com/bazelbuild/bazel/blob/master/src/main/native/build_windows_jni.sh#L56-L57
|
||||||
# https://github.com/bazelbuild/bazel/blob/master/src/main/native/build_windows_jni.sh#L56-L57
|
printf '@call "%s/../Common7/Tools/VsDevCmd.bat" /no_logo\r\n' "$(cygpath -w $VC_PRODUCT_DIR)" > $WRAPPERBATCHFILEPATH
|
||||||
printf '@call "%s/../Common7/Tools/VsDevCmd.bat" /no_logo\r\n' "$(cygpath -w $VC_PRODUCT_DIR)" > $WRAPPERBATCHFILEPATH
|
|
||||||
else
|
|
||||||
printf '@call "%s/../Common7/Tools/vsvars32.bat"\r\n' "$(cygpath -w $VC_PRODUCT_DIR)" > $WRAPPERBATCHFILEPATH
|
|
||||||
fi
|
|
||||||
printf '@setlocal\r\n@echo %%%s%%\r\n@endlocal\r\n' "$1" >> $WRAPPERBATCHFILEPATH
|
printf '@setlocal\r\n@echo %%%s%%\r\n@endlocal\r\n' "$1" >> $WRAPPERBATCHFILEPATH
|
||||||
chmod +x $WRAPPERBATCHFILEPATH
|
chmod +x $WRAPPERBATCHFILEPATH
|
||||||
_win_get_env_from_vsvars32bat=$("$WRAPPERBATCHFILEPATH" | tr -d '\r')
|
_win_get_env_from_vsvars32bat=$("$WRAPPERBATCHFILEPATH" | tr -d '\r')
|
||||||
@ -3318,11 +3312,7 @@ find_ucrt()
|
|||||||
fi
|
fi
|
||||||
if test -z "$UCRTSDKDIR"; then
|
if test -z "$UCRTSDKDIR"; then
|
||||||
ide_env_dir="$VC_PRODUCT_DIR/../Common7/Tools/"
|
ide_env_dir="$VC_PRODUCT_DIR/../Common7/Tools/"
|
||||||
if test "$vcnum" = "150"; then
|
ide_env_file="${ide_env_dir}VsDevCmd.bat"
|
||||||
ide_env_file="${ide_env_dir}VsDevCmd.bat"
|
|
||||||
else
|
|
||||||
ide_env_file="${ide_env_dir}/vsvars32.bat"
|
|
||||||
fi
|
|
||||||
if test -f "$ide_env_file"; then
|
if test -f "$ide_env_file"; then
|
||||||
PathFormat "$(win_get_env_from_vsvars32bat UniversalCRTSdkDir)"
|
PathFormat "$(win_get_env_from_vsvars32bat UniversalCRTSdkDir)"
|
||||||
UCRTSDKDIR=$formatted_path
|
UCRTSDKDIR=$formatted_path
|
||||||
@ -3342,7 +3332,7 @@ find_ucrt()
|
|||||||
|
|
||||||
find_msvc()
|
find_msvc()
|
||||||
{
|
{
|
||||||
# Find Visual C++ 2015/2017
|
# Find Visual C++ 2017
|
||||||
# Args: $1 (optional) : The VS version year
|
# Args: $1 (optional) : The VS version year
|
||||||
# Return values: $vctest, $vcyear, $vcnum, $vcnumwithdot, $vcbuildnumber
|
# Return values: $vctest, $vcyear, $vcnum, $vcnumwithdot, $vcbuildnumber
|
||||||
|
|
||||||
@ -3356,7 +3346,6 @@ find_msvc()
|
|||||||
vctest=$regvalue
|
vctest=$regvalue
|
||||||
break
|
break
|
||||||
fi
|
fi
|
||||||
# As always MSVC 15.0 is special here
|
|
||||||
reg_get_value_32 HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/VisualStudio/SxS/VS7/$ver
|
reg_get_value_32 HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/VisualStudio/SxS/VS7/$ver
|
||||||
if test -n "$regvalue"; then
|
if test -n "$regvalue"; then
|
||||||
AC_MSG_RESULT([found: $regvalue])
|
AC_MSG_RESULT([found: $regvalue])
|
||||||
@ -3368,10 +3357,6 @@ find_msvc()
|
|||||||
if test -n "$vctest"; then
|
if test -n "$vctest"; then
|
||||||
vcnumwithdot=$ver
|
vcnumwithdot=$ver
|
||||||
case "$vcnumwithdot" in
|
case "$vcnumwithdot" in
|
||||||
14.0)
|
|
||||||
vcyear=2015
|
|
||||||
vcnum=140
|
|
||||||
;;
|
|
||||||
15.0)
|
15.0)
|
||||||
vcyear=2017
|
vcyear=2017
|
||||||
vcnum=150
|
vcnum=150
|
||||||
@ -3392,7 +3377,7 @@ if test "$_os" = "WINNT"; then
|
|||||||
if test -n "$with_visual_studio"; then
|
if test -n "$with_visual_studio"; then
|
||||||
AC_MSG_ERROR([No Visual Studio $with_visual_studio installation found])
|
AC_MSG_ERROR([No Visual Studio $with_visual_studio installation found])
|
||||||
else
|
else
|
||||||
AC_MSG_ERROR([No Visual Studio 2015/2017 installation found])
|
AC_MSG_ERROR([No Visual Studio 2017 installation found])
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -3445,16 +3430,12 @@ if test "$_os" = "WINNT"; then
|
|||||||
AC_MSG_RESULT([found: $regvalue])
|
AC_MSG_RESULT([found: $regvalue])
|
||||||
MSBUILD_PATH=`win_short_path_for_make "$regvalue"`
|
MSBUILD_PATH=`win_short_path_for_make "$regvalue"`
|
||||||
else
|
else
|
||||||
if test $vcnum = "150"; then
|
if test "$BITNESS_OVERRIDE" = ""; then
|
||||||
if test "$BITNESS_OVERRIDE" = ""; then
|
regvalue="$VC_PRODUCT_DIR/../MSBuild/$vcnumwithdot/Bin"
|
||||||
regvalue="$VC_PRODUCT_DIR/../MSBuild/$vcnumwithdot/Bin"
|
|
||||||
else
|
|
||||||
regvalue="$VC_PRODUCT_DIR/../MSBuild/$vcnumwithdot/Bin/amd64"
|
|
||||||
fi
|
|
||||||
MSBUILD_PATH=`win_short_path_for_make "$regvalue"`
|
|
||||||
else
|
else
|
||||||
AC_MSG_ERROR([No msbuild found, Visual Studio installation broken?])
|
regvalue="$VC_PRODUCT_DIR/../MSBuild/$vcnumwithdot/Bin/amd64"
|
||||||
fi
|
fi
|
||||||
|
MSBUILD_PATH=`win_short_path_for_make "$regvalue"`
|
||||||
AC_MSG_RESULT([$regvalue])
|
AC_MSG_RESULT([$regvalue])
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -3474,29 +3455,15 @@ if test "$_os" = "WINNT"; then
|
|||||||
CL_LIB=
|
CL_LIB=
|
||||||
|
|
||||||
if test "$BITNESS_OVERRIDE" = ""; then
|
if test "$BITNESS_OVERRIDE" = ""; then
|
||||||
if test "$vcnum" = "150"; then
|
MSPDB_PATH="$VC_PRODUCT_DIR/Tools/MSVC/$vcbuildnumber/bin/HostX86/x86"
|
||||||
MSPDB_PATH="$VC_PRODUCT_DIR/Tools/MSVC/$vcbuildnumber/bin/HostX86/x86"
|
CL_DIR=Tools/MSVC/$vcbuildnumber/bin/HostX86/x86
|
||||||
CL_DIR=Tools/MSVC/$vcbuildnumber/bin/HostX86/x86
|
|
||||||
else
|
|
||||||
MSPDB_PATH="$VC_PRODUCT_DIR/../Common7/IDE"
|
|
||||||
CL_DIR=bin
|
|
||||||
fi
|
|
||||||
else
|
else
|
||||||
if test "$vcnum" = "150"; then
|
MSPDB_PATH="$VC_PRODUCT_DIR/Tools/MSVC/$vcbuildnumber/bin/HostX64/x64"
|
||||||
MSPDB_PATH="$VC_PRODUCT_DIR/Tools/MSVC/$vcbuildnumber/bin/HostX64/x64"
|
CL_DIR=Tools/MSVC/$vcbuildnumber/bin/HostX64/x64
|
||||||
CL_DIR=Tools/MSVC/$vcbuildnumber/bin/HostX64/x64
|
|
||||||
else
|
|
||||||
MSPDB_PATH="$VC_PRODUCT_DIR/bin/amd64"
|
|
||||||
CL_DIR=bin/amd64
|
|
||||||
fi
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# MSVC 15.0 has libraries from 14.0?
|
# MSVC 15.0 has libraries from 14.0?
|
||||||
if test "$vcnum" = "150"; then
|
mspdbnum="140"
|
||||||
mspdbnum="140"
|
|
||||||
else
|
|
||||||
mspdbnum=$vcnum
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test ! -e "$MSPDB_PATH/mspdb${mspdbnum}.dll"; then
|
if test ! -e "$MSPDB_PATH/mspdb${mspdbnum}.dll"; then
|
||||||
AC_MSG_ERROR([No mspdb${mspdbnum}.dll in $MSPDB_PATH, Visual Studio installation broken?])
|
AC_MSG_ERROR([No mspdb${mspdbnum}.dll in $MSPDB_PATH, Visual Studio installation broken?])
|
||||||
@ -3544,11 +3511,7 @@ if test "$_os" = "WINNT"; then
|
|||||||
# Remove /cl.exe from CC case insensitive
|
# Remove /cl.exe from CC case insensitive
|
||||||
AC_MSG_RESULT([found Visual C++ $vcyear ($CC)])
|
AC_MSG_RESULT([found Visual C++ $vcyear ($CC)])
|
||||||
if test "$BITNESS_OVERRIDE" = ""; then
|
if test "$BITNESS_OVERRIDE" = ""; then
|
||||||
if test "$vcnum" = "150"; then
|
COMPATH="$VC_PRODUCT_DIR"
|
||||||
COMPATH="$VC_PRODUCT_DIR"
|
|
||||||
else
|
|
||||||
COMPATH=`echo "$CC" | $SED -e 's@\/[[Bb]][[Ii]][[Nn]]\/[[cC]][[lL]]\.[[eE]][[xX]][[eE]].*@@' -e 's@^.* @@'`
|
|
||||||
fi
|
|
||||||
else
|
else
|
||||||
if test -n "$VC_PRODUCT_DIR"; then
|
if test -n "$VC_PRODUCT_DIR"; then
|
||||||
COMPATH=$VC_PRODUCT_DIR
|
COMPATH=$VC_PRODUCT_DIR
|
||||||
@ -3559,9 +3522,7 @@ if test "$_os" = "WINNT"; then
|
|||||||
CC="$CC -arch:SSE"
|
CC="$CC -arch:SSE"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if test "$vcnum" = "150"; then
|
COMPATH="$COMPATH/Tools/MSVC/$vcbuildnumber"
|
||||||
COMPATH="$COMPATH/Tools/MSVC/$vcbuildnumber"
|
|
||||||
fi
|
|
||||||
|
|
||||||
export INCLUDE=`cygpath -d "$COMPATH\Include"`
|
export INCLUDE=`cygpath -d "$COMPATH\Include"`
|
||||||
|
|
||||||
@ -3575,10 +3536,6 @@ if test "$_os" = "WINNT"; then
|
|||||||
# are always "better", we list them in reverse chronological order.
|
# are always "better", we list them in reverse chronological order.
|
||||||
|
|
||||||
case $vcnum in
|
case $vcnum in
|
||||||
140)
|
|
||||||
COMEX=19
|
|
||||||
WINDOWS_SDK_ACCEPTABLE_VERSIONS="10.0 8.1A 8.1 8.0 7.1A"
|
|
||||||
;;
|
|
||||||
150)
|
150)
|
||||||
COMEX=19
|
COMEX=19
|
||||||
WINDOWS_SDK_ACCEPTABLE_VERSIONS="10.0 8.1A 8.1 8.0 7.1A"
|
WINDOWS_SDK_ACCEPTABLE_VERSIONS="10.0 8.1A 8.1 8.0 7.1A"
|
||||||
@ -5687,31 +5644,6 @@ else
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
dnl At least MSVC 2015 Update 1 is known to sporadically emit warning C4592
|
|
||||||
dnl ("implementation limitation" when defining OUStringLiteral variables in
|
|
||||||
dnl vcl/source/app/IconThemeInfo.cxx), while Update 3 is known good, and it is
|
|
||||||
dnl probably a good idea to require that anyway. A reliable way to check for
|
|
||||||
dnl MSVC 2015 Update 3 appears to be to check for support of C++17 nested
|
|
||||||
dnl namespace definitions (which requires /std:c++latest to be enabled):
|
|
||||||
if test "$COM" = MSC -a "$VCVER" = 140; then
|
|
||||||
AC_MSG_CHECKING([whether MSVC 2015 compiler $MSVC_CXX is at least Update 3])
|
|
||||||
save_CXX=$CXX
|
|
||||||
save_CXXFLAGS=$CXXFLAGS
|
|
||||||
CXX=$MSVC_CXX
|
|
||||||
CXXFLAGS="$CXXFLAGS /std:c++latest"
|
|
||||||
AC_LANG_PUSH([C++])
|
|
||||||
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
|
|
||||||
namespace A::B {}
|
|
||||||
]])], [good=yes], [good=no])
|
|
||||||
AC_LANG_POP([C++])
|
|
||||||
CXX=$save_CXX
|
|
||||||
CXXFLAGS=$save_CXXFLAGS
|
|
||||||
AC_MSG_RESULT([$good])
|
|
||||||
if test "$good" = no; then
|
|
||||||
AC_MSG_ERROR([When using MSVC 2015, at least Update 3 must be installed])
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
dnl check for GNU C++ compiler version
|
dnl check for GNU C++ compiler version
|
||||||
if test "$GXX" = "yes"; then
|
if test "$GXX" = "yes"; then
|
||||||
AC_MSG_CHECKING([the GNU C++ compiler version])
|
AC_MSG_CHECKING([the GNU C++ compiler version])
|
||||||
@ -12435,13 +12367,8 @@ if test "$build_os" = "cygwin"; then
|
|||||||
fi
|
fi
|
||||||
ILIB1=-link
|
ILIB1=-link
|
||||||
if test "$BITNESS_OVERRIDE" = 64; then
|
if test "$BITNESS_OVERRIDE" = 64; then
|
||||||
if test $vcnum = "150"; then
|
ILIB="$ILIB;$COMPATH/lib/x64"
|
||||||
ILIB="$ILIB;$COMPATH/lib/x64"
|
ILIB1="$ILIB1 -LIBPATH:$COMPATH/lib/x64"
|
||||||
ILIB1="$ILIB1 -LIBPATH:$COMPATH/lib/x64"
|
|
||||||
else
|
|
||||||
ILIB="$ILIB;$COMPATH/lib/amd64"
|
|
||||||
ILIB1="$ILIB1 -LIBPATH:$COMPATH/lib/amd64"
|
|
||||||
fi
|
|
||||||
ILIB="$ILIB;$WINDOWS_SDK_HOME/lib/x64"
|
ILIB="$ILIB;$WINDOWS_SDK_HOME/lib/x64"
|
||||||
ILIB1="$ILIB1 -LIBPATH:$WINDOWS_SDK_HOME/lib/x64"
|
ILIB1="$ILIB1 -LIBPATH:$WINDOWS_SDK_HOME/lib/x64"
|
||||||
if test $WINDOWS_SDK_VERSION = 80 -o $WINDOWS_SDK_VERSION = 81 -o $WINDOWS_SDK_VERSION = 10; then
|
if test $WINDOWS_SDK_VERSION = 80 -o $WINDOWS_SDK_VERSION = 81 -o $WINDOWS_SDK_VERSION = 10; then
|
||||||
@ -12453,13 +12380,8 @@ if test "$build_os" = "cygwin"; then
|
|||||||
ILIB="$ILIB;$ucrtlibpath_formatted"
|
ILIB="$ILIB;$ucrtlibpath_formatted"
|
||||||
ILIB1="$ILIB1 -LIBPATH:$ucrtlibpath_formatted"
|
ILIB1="$ILIB1 -LIBPATH:$ucrtlibpath_formatted"
|
||||||
else
|
else
|
||||||
if test $vcnum = "150"; then
|
ILIB="$ILIB;$COMPATH/lib/x86"
|
||||||
ILIB="$ILIB;$COMPATH/lib/x86"
|
ILIB1="$ILIB1 -LIBPATH:$COMPATH/lib/x86"
|
||||||
ILIB1="$ILIB1 -LIBPATH:$COMPATH/lib/x86"
|
|
||||||
else
|
|
||||||
ILIB="$ILIB;$COMPATH/lib"
|
|
||||||
ILIB1="$ILIB1 -LIBPATH:$COMPATH/lib"
|
|
||||||
fi
|
|
||||||
ILIB="$ILIB;$WINDOWS_SDK_HOME/lib"
|
ILIB="$ILIB;$WINDOWS_SDK_HOME/lib"
|
||||||
ILIB1="$ILIB1 -LIBPATH:$WINDOWS_SDK_HOME/lib"
|
ILIB1="$ILIB1 -LIBPATH:$WINDOWS_SDK_HOME/lib"
|
||||||
if test $WINDOWS_SDK_VERSION = 80 -o $WINDOWS_SDK_VERSION = 81 -o $WINDOWS_SDK_VERSION = 10; then
|
if test $WINDOWS_SDK_VERSION = 80 -o $WINDOWS_SDK_VERSION = 81 -o $WINDOWS_SDK_VERSION = 10; then
|
||||||
@ -12905,7 +12827,7 @@ place yourself in a working directory of you choice.
|
|||||||
|
|
||||||
git clone git://git.savannah.gnu.org/make.git
|
git clone git://git.savannah.gnu.org/make.git
|
||||||
|
|
||||||
[go to Start menu, click "All Programs", click "Visual Studio 2015", click "Visual Studio Tools", double-click "VS2015 x86 Native Tools Command Prompt" or "VS2015 x64 Native Tools Command Prompt"]
|
[go to Start menu, open "Visual Studio 2017", click "VS2017 x86 Native Tools Command Prompt" or "VS2017 x64 Native Tools Command Prompt"]
|
||||||
set PATH=%PATH%;C:\Cygwin\bin
|
set PATH=%PATH%;C:\Cygwin\bin
|
||||||
[or Cygwin64, if that is what you have]
|
[or Cygwin64, if that is what you have]
|
||||||
cd path-to-make-repo-you-cloned-above
|
cd path-to-make-repo-you-cloned-above
|
||||||
|
Loading…
x
Reference in New Issue
Block a user