[Libreoffice-commits] core.git: basic/CppunitTest_basic_macros.mk bridges/inc bridges/source configure.ac external/coinmp external/cppunit external/lcms2 external/libgltf external/python3 scp2/source

David Ostrovsky david at ostrovsky.org
Wed Feb 15 08:24:15 UTC 2017


 basic/CppunitTest_basic_macros.mk                   |    2 
 bridges/inc/except.hxx                              |    2 
 bridges/source/cpp_uno/msvc_win32_x86-64/except.cxx |    2 
 configure.ac                                        |  183 ++++++++++++++++----
 external/coinmp/ExternalProject_coinmp.mk           |    2 
 external/cppunit/ExternalProject_cppunit.mk         |    4 
 external/lcms2/ExternalProject_lcms2.mk             |    5 
 external/libgltf/ExternalProject_libgltf.mk         |    2 
 external/python3/ExternalProject_python3.mk         |    8 
 scp2/source/ooo/vc_redist.scp                       |   19 ++
 10 files changed, 192 insertions(+), 37 deletions(-)

New commits:
commit b862cbdd345ec57c2595629ded6a3969e1e65d56
Author: David Ostrovsky <david at ostrovsky.org>
Date:   Wed Nov 23 23:53:55 2016 +0100

    Support MSVC 15.0
    
    New compiler changes quite some stuff:
    
    * Compiler detection done based on different registry key
    * .NET SDK detection done based on different registry key
    * Msbuild installation directory changed
    * Merge modules installation directory changed
    * SDK number in registry doesn't match the directory name:
      (registry key: 10.0.14393, directory name: 10.0.14393.0)
    * Compiler, include and library location directories changed
    * Architecture specific directory changed: x64 instead of amd64
    * Compiler own include directory must be added with -I option
    * To force usage of SDK 10 (8.1 is selected per default) new
      switch WindowsTargetPlatformVersion is passed to msbuild, to
      avoid patching VC project files with this line:
    <WindowsTargetPlatformVersion><SDK>/WindowsTargetPlatformVersion>
    
    Known issues:
    
    * Firebird is broken: http://paste.openstack.org/show/594333
    
    Change-Id: I148d7932aff43bbbd07bd493504df974726234c2
    Reviewed-on: https://gerrit.libreoffice.org/31279
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: David Ostrovsky <david at ostrovsky.org>

diff --git a/basic/CppunitTest_basic_macros.mk b/basic/CppunitTest_basic_macros.mk
index 8d64f40..3435224 100644
--- a/basic/CppunitTest_basic_macros.mk
+++ b/basic/CppunitTest_basic_macros.mk
@@ -42,7 +42,7 @@ $(eval $(call gb_CppunitTest_use_libraries,basic_macros, \
 ifeq ($(OS),WNT)
 $(eval $(call gb_CppunitTest_use_system_win32_libs,basic_macros, \
 	oleaut32 \
-	$(if $(filter 140,$(VCVER)),legacy_stdio_definitions) \
+	$(if $(filter 140 150,$(VCVER)),legacy_stdio_definitions) \
 	odbc32 \
 	odbccp32 \
 ))
diff --git a/bridges/inc/except.hxx b/bridges/inc/except.hxx
index 32e9113..f1437f3 100644
--- a/bridges/inc/except.hxx
+++ b/bridges/inc/except.hxx
@@ -20,7 +20,7 @@
 #ifndef INCLUDED_BRIDGES_INC_EXCEPT_HXX
 #define INCLUDED_BRIDGES_INC_EXCEPT_HXX
 
-#if _MSC_VER >= 1900 // VC 2015 (and later?)
+#if _MSC_VER >= 1900 // VC 2015/2017 (and later?)
 // extern "C" void** __cdecl __current_exception()
 // is defined in MSVS14.0/VC/crt/src/vcruntime/frame.cpp:
 // return &__vcrt_getptd()->_curexception;
diff --git a/bridges/source/cpp_uno/msvc_win32_x86-64/except.cxx b/bridges/source/cpp_uno/msvc_win32_x86-64/except.cxx
index 8348014..5687c0d 100644
--- a/bridges/source/cpp_uno/msvc_win32_x86-64/except.cxx
+++ b/bridges/source/cpp_uno/msvc_win32_x86-64/except.cxx
@@ -803,7 +803,7 @@ int mscx_filterCppException(
     if (rethrow && pRecord == pPointers->ExceptionRecord)
     {
         pRecord = *reinterpret_cast< EXCEPTION_RECORD ** >(
-#if _MSC_VER >= 1900 // VC 2015 (and later?)
+#if _MSC_VER >= 1900 // VC 2015/2017 (and later?)
             __current_exception()
 #else
             // Hack to get msvcrt internal _curexception field
diff --git a/configure.ac b/configure.ac
index 244ea87..5982240 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2112,10 +2112,10 @@ libo_FUZZ_ARG_WITH(doxygen,
 ,with_doxygen=yes)
 
 AC_ARG_WITH(visual-studio,
-    AS_HELP_STRING([--with-visual-studio=<2013/2015>],
+    AS_HELP_STRING([--with-visual-studio=<2013/2015/2017>],
         [Specify which Visual Studio version to use in case several are
          installed. If not specified, only 2013 is detected automatically
-         because 2015 support is currently experimental.]),
+         because 2015 and 2017 support is currently experimental.]),
 ,)
 
 AC_ARG_WITH(windows-sdk,
@@ -3288,6 +3288,8 @@ map_vs_year_to_version()
         vsversion=12.0;;
     2015)
         vsversion=14.0;;
+    2017)
+        vsversion=15.0;;
     *)
         AC_MSG_ERROR([Assertion failure - invalid argument "$1" to map_vs_year_to_version()]);;
     esac
@@ -3304,16 +3306,22 @@ vs_versions_to_check()
         map_vs_year_to_version "$1"
         vsversions=$vsversion
     else
-        # By default we prefer 2013/2015, in this order
-        vsversions="12.0 14.0"
+        # By default we prefer 2013/2015/2017, in this order
+        vsversions="12.0 14.0 15.0"
     fi
 }
 
 win_get_env_from_vsvars32bat()
 {
     WRAPPERBATCHFILEPATH="`mktemp -t wrpXXXXXX.bat`"
+    if test $vcnum = "150"; then
+      # 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
+      echo -e "@call \"`cygpath -w $VC_PRODUCT_DIR`/../Common7/Tools/VsDevCmd.bat\" /no_logo\r\n" >> $WRAPPERBATCHFILEPATH
+    else
+      echo -e "@call \"`cygpath -w $VC_PRODUCT_DIR`/../Common7/Tools/vsvars32.bat\"\r\n" >> $WRAPPERBATCHFILEPATH
+    fi
     echo -e "@setlocal\r\n" >> $WRAPPERBATCHFILEPATH
-    echo -e "@call \"`cygpath -w $VC_PRODUCT_DIR`/../Common7/Tools/vsvars32.bat\"\r\n" >> $WRAPPERBATCHFILEPATH
     echo -e "@echo %$1%\r\n" >> $WRAPPERBATCHFILEPATH
     echo -e "@endlocal\r\n" >> $WRAPPERBATCHFILEPATH
     chmod +x $WRAPPERBATCHFILEPATH
@@ -3330,27 +3338,43 @@ find_ucrt()
         UCRTSDKDIR=$formatted_path
         reg_get_value_32 "HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Microsoft SDKs/Windows/v10.0/ProductVersion"
         UCRTVERSION=$regvalue
+        # Rest if not exist
+        if ! test -d "${UCRTSDKDIR}Include/$UCRTVERSION/ucrt"; then
+          UCRTSDKDIR=
+          AC_MSG_RESULT([UCRT: give up registry detection and retrieve from IDE env file])
+        fi
     fi
     if test -z "$UCRTSDKDIR"; then
-        if test -f "$VC_PRODUCT_DIR/../Common7/Tools/vsvars32.bat"; then
+        ide_env_dir="$VC_PRODUCT_DIR/../Common7/Tools/"
+        if test "$vcnum" = "150"; then
+          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
             PathFormat "`win_get_env_from_vsvars32bat "UniversalCRTSdkDir"`"
             UCRTSDKDIR=$formatted_path
             UCRTVERSION=`win_get_env_from_vsvars32bat "UCRTVersion"`
+        else
+          AC_MSG_ERROR([No UCRT found])
         fi
     fi
 }
 
 find_msvc()
 {
-    # Find Visual C++ 2013/2015
+    # Find Visual C++ 2013/2015/2017
     # Args: $1 (optional) : The VS version year
-    # Return values: $vctest, $vcyear, $vcnum, $vcnumwithdot
+    # Return values: $vctest, $vcyear, $vcnum, $vcnumwithdot, $vcbuildnumber
 
-    unset vctest vcnum vcnumwithdot vcexpress
+    unset vctest vcnum vcnumwithdot vcexpress vcbuildnumber
 
     vs_versions_to_check "$1"
 
+    AC_MSG_CHECKING([whether vs inst is $vsversions])
+
     for ver in $vsversions; do
+        AC_MSG_CHECKING([ver is now: $ver])
         reg_get_value_32 HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/VisualStudio/$ver/Setup/VC/ProductDir
         if test -n "$regvalue"; then
             vctest=$regvalue
@@ -3361,6 +3385,14 @@ find_msvc()
             vctest=$regvalue
             break
         fi
+        # As always MSVC 15.0 is special here
+        reg_get_value_32 HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/VisualStudio/SxS/VS7/$ver
+        if test -n "$regvalue"; then
+            AC_MSG_RESULT([found: $regvalue])
+            PathFormat "$regvalue"
+            vctest=$formatted_path
+            break
+        fi
     done
     if test -n "$vctest"; then
         vcnumwithdot=$ver
@@ -3373,6 +3405,11 @@ find_msvc()
             vcyear=2015
             vcnum=140
             ;;
+        15.0)
+            vcyear=2017
+            vcnum=150
+            vcbuildnumber=`ls $vctest/VC/Tools/MSVC -A1r | head -1`
+            ;;
         esac
         reg_get_value_32 HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/VCExpress/$vcnumwithdot/Setup/VC/ProductDir
         if test -n "$regvalue" -a "$regvalue" = "$vctest" ; then
@@ -3393,24 +3430,28 @@ if test "$_os" = "WINNT"; then
         if test -n "$with_visual_studio"; then
             AC_MSG_ERROR([No Visual Studio $with_visual_studio installation found])
         else
-            AC_MSG_ERROR([No Visual Studio 2013/2015 installation found])
+            AC_MSG_ERROR([No Visual Studio 2013/2015/2017 installation found])
         fi
     fi
 
     if test "$BITNESS_OVERRIDE" = ""; then
         if test -f "$vctest/bin/cl.exe"; then
             VC_PRODUCT_DIR=$vctest
+        elif test -f "$vctest/VC/Tools/MSVC/$vcbuildnumber/bin/HostX86/x86/cl.exe"; then
+            VC_PRODUCT_DIR=$vctest/VC
         else
             AC_MSG_ERROR([No compiler (cl.exe) in $vctest/bin/cl.exe])
         fi
     else
         if test -f "$vctest/bin/amd64/cl.exe"; then
             VC_PRODUCT_DIR=$vctest
+        elif test -f "$vctest/VC/Tools/MSVC/$vcbuildnumber/bin/HostX64/x64/cl.exe"; then
+            VC_PRODUCT_DIR=$vctest/VC
         else
             if test -f "$vctest/bin/x86_amd64/cl.exe" -a "$vcexpress" = "Express"; then
                 VC_PRODUCT_DIR=$vctest
             else
-                AC_MSG_ERROR([No compiler (cl.exe) in $vctest/bin/amd64/cl.exe or $vctest/bin/x86_amd64/cl.exe])
+                AC_MSG_ERROR([No compiler (cl.exe) in $vctest/VC/Tools/MSVC/$vcbuildnumber/bin/HostX64/x64/cl.exe or $vctest/bin/amd64/cl.exe or $vctest/bin/x86_amd64/cl.exe])
             fi
         fi
     fi
@@ -3453,10 +3494,23 @@ if test "$_os" = "WINNT"; then
     AC_SUBST(UCRTSDKDIR)
     AC_SUBST(UCRTVERSION)
 
+    AC_MSG_CHECKING([for MSBuild.exe location for: $vcnumwithdot])
     # Find the proper version of MSBuild.exe to use based on the VS version
     reg_get_value_32 HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/MSBuild/$vcnumwithdot/MSBuildOverrideTasksPath
     if test -n "$regvalue" ; then
+        AC_MSG_RESULT([found: $regvalue])
         MSBUILD_PATH=`win_short_path_for_make "$regvalue"`
+    else
+        if test $vcnum = "150"; then
+            if test "$BITNESS_OVERRIDE" = ""; then
+                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
+            AC_MSG_ERROR([No msbuild found, Visual Studio installation broken?])
+        fi
     fi
 
     # Find the version of devenv.exe
@@ -3474,22 +3528,38 @@ if test "$_os" = "WINNT"; then
     dnl ===========================================================
 
     MSPDB_PATH=
+    CL_DIR=
+    CL_LIB=
 
     if test "$BITNESS_OVERRIDE" = ""; then
         if test "$vcnum" = "120"; then
             MSPDB_PATH="$VC_PRODUCT_DIR/../VC/bin"
+            CL_DIR=bin
         else
             MSPDB_PATH="$VC_PRODUCT_DIR/../Common7/IDE"
+            CL_DIR=bin
         fi
     else
         if test "$vcexpress" = "Express"; then
             MSPDB_PATH="$VC_PRODUCT_DIR/bin"
+            CL_DIR=bin
         else
-            MSPDB_PATH="$VC_PRODUCT_DIR/bin/amd64"
+            if test "$vcnum" = "150"; then
+                MSPDB_PATH="$VC_PRODUCT_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
 
-    mspdbnum=$vcnum
+    # MSVC 15.0 has libraries from 14.0?
+    if test  "$vcnum" = "150"; then
+        mspdbnum="140"
+    else
+        mspdbnum=$vcnum
+    fi
 
     if test ! -e "$MSPDB_PATH/mspdb${mspdbnum}.dll"; then
         AC_MSG_ERROR([No mspdb${mspdbnum}.dll in $MSPDB_PATH, Visual Studio installation broken?])
@@ -3511,7 +3581,7 @@ if test "$_os" = "WINNT"; then
     if test -z "$CC"; then
         if test "$BITNESS_OVERRIDE" = ""; then
             if test -f "$VC_PRODUCT_DIR/bin/cl.exe"; then
-                CC="$VC_PRODUCT_DIR/bin/cl.exe"
+                CC="$VC_PRODUCT_DIR/$CL_DIR/cl.exe"
             fi
         else
             if test "$vcexpress" = "Express"; then
@@ -3519,8 +3589,8 @@ if test "$_os" = "WINNT"; then
                     CC="$VC_PRODUCT_DIR/bin/x86_amd64/cl.exe"
                fi
             else
-               if test -f "$VC_PRODUCT_DIR/bin/amd64/cl.exe"; then
-                    CC="$VC_PRODUCT_DIR/bin/amd64/cl.exe"
+               if test -f "$VC_PRODUCT_DIR/$CL_DIR/cl.exe"; then
+                    CC="$VC_PRODUCT_DIR/$CL_DIR/cl.exe"
                fi
             fi
         fi
@@ -3543,7 +3613,13 @@ if test "$_os" = "WINNT"; then
             dnl since MSVC 2012, default for x86 is -arch:SSE2:
             CC="$CC -arch:SSE"
         fi
-        export INCLUDE=`cygpath -d "$COMPATH/Include"`
+
+        if test "$vcnum" = "150"; then
+            COMPATH="$COMPATH/Tools/MSVC/$vcbuildnumber"
+        fi
+
+        export INCLUDE=`cygpath -d "$COMPATH\Include"`
+        AC_MSG_RESULT([INCLUDE is: ($INCLUDE)])
 
         PathFormat "$COMPATH"
         COMPATH="$formatted_path"
@@ -3563,6 +3639,10 @@ if test "$_os" = "WINNT"; then
             COMEX=19
             WINDOWS_SDK_ACCEPTABLE_VERSIONS="10.0A 10.0 8.1A 8.1 8.0 7.1A"
             ;;
+        150)
+            COMEX=19
+            WINDOWS_SDK_ACCEPTABLE_VERSIONS="10.0A 10.0 8.1A 8.1 8.0 7.1A"
+            ;;
         esac
 
         # The expectation is that --with-windows-sdk should not need to be used
@@ -3622,6 +3702,7 @@ if test "$_os" = "WINNT"; then
     LINK_X64_BINARY=
 
     if test "$BITNESS_OVERRIDE" = ""; then
+        # TODO(davido): This is probably broken for MSVC 15.0
         AC_MSG_CHECKING([for a x64 compiler and libraries for 64-bit Explorer extensions])
         if test -f "$VC_PRODUCT_DIR/atlmfc/lib/amd64/atls.lib"; then
             # Prefer native x64 compiler to cross-compiler, in case we are running
@@ -3642,6 +3723,12 @@ if test "$_os" = "WINNT"; then
             AC_MSG_RESULT([not found])
             AC_MSG_WARN([Installation set will not contain 64-bit Explorer extensions])
         fi
+        if test "$BUILD_X64" = TRUE; then
+            AC_MSG_RESULT([found])
+        else
+            AC_MSG_RESULT([not found])
+            AC_MSG_WARN([Installation set will not contain 64-bit Explorer extensions])
+        fi
     fi
     AC_SUBST(BUILD_X64)
 
@@ -5140,6 +5227,14 @@ find_al()
             return
         fi
     done
+
+    # TODO(davido): We need this additional check to detect 4.6.2
+    # This should be made generic, though
+    reg_get_value_32 "HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Microsoft SDKs/NETFXSDK/4.6.2\WinSDK-NetFx40Tools/InstallationFolder"
+    if test -n "$regvalue" -a \( -f "$regvalue/al.exe" -o -f "$regvalue/bin/al.exe" \); then
+        altest=$regvalue
+        return
+    fi
 }
 
 find_dotnetsdk()
@@ -5161,7 +5256,7 @@ find_dotnetsdk46()
 {
     unset frametest
 
-    for ver in 4.6.1 4.6; do
+    for ver in 4.6.2 4.6.1 4.6; do
         reg_get_value_64 "HKEY_LOCAL_MACHINE/SOFTWARE/Wow6432Node/Microsoft/Microsoft SDKs/NETFXSDK/$ver/KitsInstallationFolder"
         if test -n "$regvalue"; then
             frametest=$regvalue
@@ -5214,6 +5309,9 @@ find_winsdk_version()
             winsdktest=$regvalue
             reg_get_value_32 "HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Microsoft SDKs/Windows/v${1}/ProductVersion"
             winsdklibsubdir=$regvalue
+            if test "$regvalue" = "10.0.14393"; then
+                winsdklibsubdir="10.0.14393.0"
+            fi
             return
         fi
         ;;
@@ -5240,7 +5338,7 @@ find_msms()
     my_msm_file=Microsoft_VC${VCVER}_CRT_x86.msm
     AC_MSG_CHECKING([for $my_msm_file])
     msmdir=
-    for ver in 12.0 14.0; do
+    for ver in 12.0 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
@@ -5264,6 +5362,15 @@ find_msms()
             msmdir=$my_msm_dir
         fi
     fi
+
+    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
+        fi
+    fi
+
     if test -n "$msmdir"; then
         msmdir=`cygpath -m "$msmdir"`
         AC_MSG_RESULT([$msmdir])
@@ -5279,11 +5386,17 @@ find_msms()
 find_msvc_x64_dlls()
 {
     msvcdllpath="$VC_PRODUCT_DIR/redist/x64/Microsoft.VC${VCVER}.CRT"
+    if test "$VCVER" = 150; then
+        msvcdllpath="$VC_PRODUCT_DIR/redist/MSVC/$vcbuildnumber/x64/Microsoft.VC${VCVER}.CRT"
+    fi
     # http://blogs.msdn.com/b/vcblog/archive/2014/06/03/visual-studio-14-ctp.aspx
     # Refactored C Runtime (CRT): This CTP contains the first preview of the substantially refactored CRT.
     # msvcr140.dll no longer exists. It is replaced by a trio of DLLs: vcruntime140.dll, appcrt140.dll,
     # and desktopcrt140.dll.
-    if test "$VCVER" = 140; then
+
+    if test "$VCVER" = 150; then
+       msvcdlls="msvcp140.dll vcruntime140.dll"
+    elif test "$VCVER" = 140; then
        msvcdlls="msvcp${VCVER}.dll vcruntime${VCVER}.dll"
     else
        msvcdlls="msvcp${VCVER}.dll msvcr${VCVER}.dll"
@@ -9533,7 +9646,7 @@ the  Windows SDK are installed.])
     PathFormat "$WINDOWS_SDK_HOME"
     WINDOWS_SDK_HOME="$formatted_path"
     if test "$build_os" = "cygwin"; then
-        SOLARINC="$SOLARINC -I$WINDOWS_SDK_HOME/include -I$COMPATH/include"
+        SOLARINC="$SOLARINC -I$WINDOWS_SDK_HOME/include -I$COMPATH/Include"
         if test -d "$WINDOWS_SDK_HOME/include/um"; then
             SOLARINC="$SOLARINC -I$WINDOWS_SDK_HOME/include/um -I$WINDOWS_SDK_HOME/include/shared"
         elif test -d "$WINDOWS_SDK_HOME/Include/$winsdklibsubdir/um"; then
@@ -9705,7 +9818,7 @@ if test "$_os" = "WINNT"; then
             assembler_bin=bin/x86_amd64
         else
             assembler=ml64.exe
-            assembler_bin=bin/amd64
+            assembler_bin=$CL_DIR
         fi
     fi
 
@@ -12205,23 +12318,33 @@ if test "$build_os" = "cygwin"; then
     fi
     ILIB1=-link
     if test "$BITNESS_OVERRIDE" = 64; then
-        ILIB="$ILIB;$COMPATH/lib/amd64"
-        ILIB1="$ILIB1 -LIBPATH:$COMPATH/lib/amd64"
+        if test $vcnum = "150"; then
+            ILIB="$ILIB;$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"
         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
             ILIB="$ILIB;$WINDOWS_SDK_HOME/lib/$winsdklibsubdir/um/x64"
             ILIB1="$ILIB1 -LIBPATH:$WINDOWS_SDK_HOME/lib/$winsdklibsubdir/um/x64"
         fi
-        if test $VCVER = 140; then
+        if test $VCVER = 140 -o $VCVER = 150; then
             PathFormat "${UCRTSDKDIR}lib/$UCRTVERSION/ucrt/x64"
             ucrtlibpath_formatted=$formatted_path
             ILIB="$ILIB;$ucrtlibpath_formatted"
             ILIB1="$ILIB1 -LIBPATH:$ucrtlibpath_formatted"
         fi
     else
-        ILIB="$ILIB;$COMPATH/lib"
-        ILIB1="$ILIB1 -LIBPATH:$COMPATH/lib"
+        if test $vcnum = "150"; then
+            ILIB="$ILIB;$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"
         ILIB1="$ILIB1 -LIBPATH:$WINDOWS_SDK_HOME/lib"
         if test $WINDOWS_SDK_VERSION = 80 -o $WINDOWS_SDK_VERSION = 81 -o $WINDOWS_SDK_VERSION = 10; then
@@ -12437,7 +12560,11 @@ if test "$build_os" = "cygwin"; then
         ATL_INCLUDE="$WINDOWS_SDK_HOME/include/atl"
     fi
     if test "$BITNESS_OVERRIDE" = 64; then
-        ATL_LIB="$ATL_LIB/amd64"
+        if test $VCVER = "150"; then
+            ATL_LIB="$ATL_LIB/x64"
+        else
+            ATL_LIB="$ATL_LIB/amd64"
+        fi
     fi
     # sort.exe and find.exe also exist in C:/Windows/system32 so need /usr/bin/
     PathFormat "/usr/bin/find.exe"
diff --git a/external/coinmp/ExternalProject_coinmp.mk b/external/coinmp/ExternalProject_coinmp.mk
index c2090d7..a09f266 100644
--- a/external/coinmp/ExternalProject_coinmp.mk
+++ b/external/coinmp/ExternalProject_coinmp.mk
@@ -21,6 +21,8 @@ $(call gb_ExternalProject_get_state_target,coinmp,build) :
 			/p:Platform=$(if $(filter INTEL,$(CPUNAME)),Win32,x64) \
 			$(if $(filter 120,$(VCVER)),/p:PlatformToolset=v120 /p:VisualStudioVersion=12.0 /ToolsVersion:12.0) \
 			$(if $(filter 140,$(VCVER)),/p:PlatformToolset=v140 /p:VisualStudioVersion=14.0 /ToolsVersion:14.0) \
+			$(if $(filter 150,$(VCVER)),/p:PlatformToolset=v141 /p:VisualStudioVersion=15.0 /ToolsVersion:15.0) \
+			$(if $(filter $(UCRTVERSION),),,/p:WindowsTargetPlatformVersion=$(UCRTVERSION)) \
 	,CoinMP/MSVisualStudio/v9)
 
 else
diff --git a/external/cppunit/ExternalProject_cppunit.mk b/external/cppunit/ExternalProject_cppunit.mk
index a11cc27..6722a27 100644
--- a/external/cppunit/ExternalProject_cppunit.mk
+++ b/external/cppunit/ExternalProject_cppunit.mk
@@ -19,7 +19,9 @@ $(call gb_ExternalProject_get_state_target,cppunit,build) :
 	    PROFILEFLAGS="$(if $(MSVC_USE_DEBUG_RUNTIME),Debug,Release) \
 		/p:Platform=$(if $(filter INTEL,$(CPUNAME)),Win32,x64) \
 			$(if $(filter 120,$(VCVER)),/p:PlatformToolset=v120 /p:VisualStudioVersion=12.0 /ToolsVersion:12.0) \
-			$(if $(filter 140,$(VCVER)),/p:PlatformToolset=v140 /p:VisualStudioVersion=14.0 /ToolsVersion:14.0)" \
+			$(if $(filter 140,$(VCVER)),/p:PlatformToolset=v140 /p:VisualStudioVersion=14.0 /ToolsVersion:14.0) \
+			$(if $(filter 150,$(VCVER)),/p:PlatformToolset=v141 /p:VisualStudioVersion=15.0 /ToolsVersion:15.0) \
+			$(if $(filter $(UCRTVERSION),),,/p:WindowsTargetPlatformVersion=$(UCRTVERSION))" \
 		&& msbuild.exe cppunit_dll.vcxproj /p:Configuration=$${PROFILEFLAGS}  \
 		&& cd ../DllPlugInTester \
 		&& msbuild.exe DllPlugInTester.vcxproj /p:Configuration=$${PROFILEFLAGS} \
diff --git a/external/lcms2/ExternalProject_lcms2.mk b/external/lcms2/ExternalProject_lcms2.mk
index e307a30..b54b368 100644
--- a/external/lcms2/ExternalProject_lcms2.mk
+++ b/external/lcms2/ExternalProject_lcms2.mk
@@ -19,7 +19,10 @@ $(call gb_ExternalProject_get_state_target,lcms2,build):
 	$(call gb_ExternalProject_run,build,\
 		$(if $(filter 140,$(VCVER)),$(DEVENV) /Upgrade lcms2_DLL.vcxproj,echo up-to-date) && \
 		MSBuild.exe lcms2_DLL.vcxproj \
-			$(if $(filter 140,$(VCVER)),/p:PlatformToolset=v140,/p:PlatformToolset=v120) \
+			$(if $(filter 120,$(VCVER)),/p:PlatformToolset=v120 /p:VisualStudioVersion=12.0 /ToolsVersion:12.0) \
+			$(if $(filter 140,$(VCVER)),/p:PlatformToolset=v140 /p:VisualStudioVersion=14.0 /ToolsVersion:14.0) \
+			$(if $(filter 150,$(VCVER)),/p:PlatformToolset=v141 /p:VisualStudioVersion=15.0 /ToolsVersion:15.0) \
+			$(if $(filter $(UCRTVERSION),),,/p:WindowsTargetPlatformVersion=$(UCRTVERSION)) \
 			/p:Configuration=$(if $(MSVC_USE_DEBUG_RUNTIME),Debug,Release) \
 			/p:Platform=$(if $(filter INTEL,$(CPUNAME)),Win32,x64) /p:TargetName=lcms2 \
 	,Projects/VC2013/lcms2_DLL)
diff --git a/external/libgltf/ExternalProject_libgltf.mk b/external/libgltf/ExternalProject_libgltf.mk
index 90a1d96..94e20b6 100644
--- a/external/libgltf/ExternalProject_libgltf.mk
+++ b/external/libgltf/ExternalProject_libgltf.mk
@@ -44,6 +44,8 @@ $(call gb_ExternalProject_get_state_target,libgltf,build) :
 			/p:Configuration=$(if $(MSVC_USE_DEBUG_RUNTIME),Debug,Release) \
 			$(if $(filter 120,$(VCVER)),/p:PlatformToolset=v120 /p:VisualStudioVersion=12.0 /ToolsVersion:12.0) \
 			$(if $(filter 140,$(VCVER)),/p:PlatformToolset=v140 /p:VisualStudioVersion=14.0 /ToolsVersion:14.0) \
+			$(if $(filter 150,$(VCVER)),/p:PlatformToolset=v141 /p:VisualStudioVersion=15.0 /ToolsVersion:15.0) \
+			$(if $(filter $(UCRTVERSION),),,/p:WindowsTargetPlatformVersion=$(UCRTVERSION)) \
 			'/p:AdditionalIncludeDirectories=$(subst $(WHITESPACE),;,$(subst /,\,$(strip $(libgltf_AdditionalIncludes))))' \
 			/p:AdditionalLibraryDirectories=$(if $(SYSTEM_EPOXY),,"$(subst /,\,$(call gb_UnpackedTarball_get_dir,epoxy))\lib\$(if $(MSVC_USE_DEBUG_RUNTIME),Debug,Release)\Win32") \
 	,build/win32)
diff --git a/external/python3/ExternalProject_python3.mk b/external/python3/ExternalProject_python3.mk
index 2c97ef1..2f28cea 100644
--- a/external/python3/ExternalProject_python3.mk
+++ b/external/python3/ExternalProject_python3.mk
@@ -35,10 +35,10 @@ $(call gb_ExternalProject_get_state_target,python3,build) :
 		MAKEFLAGS= MSBuild.exe pcbuild.sln /t:Build \
 			/p:Configuration=$(if $(MSVC_USE_DEBUG_RUNTIME),Debug,Release) \
 			/p:Platform=$(if $(filter INTEL,$(CPUNAME)),Win32,x64) \
-			$(if $(filter 120,$(VCVER)),/p:PlatformToolset=v120 \
-				/p:VisualStudioVersion=12.0 /ToolsVersion:12.0) \
-			$(if $(filter 140,$(VCVER)),/p:PlatformToolset=v140 \
-				/p:VisualStudioVersion=14.0 /ToolsVersion:14.0) \
+			$(if $(filter 120,$(VCVER)),/p:PlatformToolset=v120 /p:VisualStudioVersion=12.0 /ToolsVersion:12.0) \
+			$(if $(filter 140,$(VCVER)),/p:PlatformToolset=v140 /p:VisualStudioVersion=14.0 /ToolsVersion:14.0) \
+			$(if $(filter 150,$(VCVER)),/p:PlatformToolset=v141 /p:VisualStudioVersion=15.0 /ToolsVersion:15.0) \
+			$(if $(filter $(UCRTVERSION),),,/p:WindowsTargetPlatformVersion=$(UCRTVERSION)) \
 	,PCBuild)
 
 else
diff --git a/scp2/source/ooo/vc_redist.scp b/scp2/source/ooo/vc_redist.scp
index 8f21124..160e73e 100644
--- a/scp2/source/ooo/vc_redist.scp
+++ b/scp2/source/ooo/vc_redist.scp
@@ -56,3 +56,22 @@ End
 
 #endif
 
+#if defined(WITH_VC150_REDIST)
+
+#if defined WINDOWS_X64
+MergeModule gid_MergeModule_Microsoft_VC150_CRT_x64
+#else
+MergeModule gid_MergeModule_Microsoft_VC150_CRT_x86
+#endif
+    Feature = gm_Root;
+#if defined WINDOWS_X64
+    Name = "Microsoft_VC150_CRT_x64.msm";
+#else
+    Name = "Microsoft_VC150_CRT_x86.msm";
+#endif
+    RootDir = "TARGETDIR";
+    ComponentCondition = "VC_REDIST=1";
+End
+
+#endif
+


More information about the Libreoffice-commits mailing list