[Libreoffice-commits] core.git: configure.ac external/breakpad external/coinmp external/cppunit external/lcms2 external/postgresql external/python3

Hossein (via logerrit) logerrit at kemper.freedesktop.org
Thu Sep 16 17:51:33 UTC 2021


 configure.ac                                      |  109 ++++++++--------------
 external/breakpad/ExternalProject_breakpad.mk     |    1 
 external/coinmp/ExternalProject_coinmp.mk         |    1 
 external/cppunit/ExternalProject_cppunit.mk       |    1 
 external/lcms2/ExternalProject_lcms2.mk           |    1 
 external/postgresql/ExternalProject_postgresql.mk |    1 
 external/python3/ExternalProject_python3.mk       |    1 
 7 files changed, 47 insertions(+), 68 deletions(-)

New commits:
commit c156a8c708f74dd31e1ef024edc578c3915619cb
Author:     Hossein <hossein at libreoffice.org>
AuthorDate: Wed Sep 15 10:08:43 2021 +0200
Commit:     Mike Kaganski <mike.kaganski at collabora.com>
CommitDate: Thu Sep 16 19:50:56 2021 +0200

    Add preliminary VS 2022 support
    
    This patch changes the configure.ac, so that LibreOffice compiles
    with the latest VS 2022 preview.
    
    The option --with-visual-studio=2022 should be added to the
    autogen.input, in order to use VS 2022 preview.
    
    Change-Id: Ia1d9bbeabbbd44ffe82af3624151b69d36c0a45c
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122133
    Tested-by: Jenkins
    Reviewed-by: Mike Kaganski <mike.kaganski at collabora.com>

diff --git a/configure.ac b/configure.ac
index 4af48fc034d7..0a2d098b252c 100644
--- a/configure.ac
+++ b/configure.ac
@@ -3840,6 +3840,8 @@ map_vs_year_to_version()
     case $1 in
     2019)
         vsversion=16;;
+    2022)
+        vsversion=17;;
     *)
         AC_MSG_ERROR([Assertion failure - invalid argument "$1" to map_vs_year_to_version()]);;
     esac
@@ -3931,7 +3933,7 @@ find_msvc()
     PathFormat "$vswhere"
     vswhere=$formatted_path_unix
     for ver in $vsversions; do
-        vswhereoutput=`$vswhere -version "@<:@ $ver , $(expr $ver + 1) @:}@" -requires Microsoft.VisualStudio.Component.VC.Tools.x86.x64 -property installationPath | head -1`
+        vswhereoutput=`$vswhere -prerelease -version "@<:@ $ver , $(expr $ver + 1) @:}@" -requires Microsoft.VisualStudio.Component.VC.Tools.x86.x64 -property installationPath | head -1`
         # Fall back to all MS products (this includes VC++ Build Tools)
         if ! test -n "$vswhereoutput"; then
             AC_MSG_CHECKING([VC++ Build Tools and similar])
@@ -3951,6 +3953,10 @@ find_msvc()
             vcyear=2019
             vcnum=160
             ;;
+        17.0)
+            vcyear=2022
+            vcnum=170
+            ;;
         esac
         vcbuildnumber=`ls $vctest/VC/Tools/MSVC -A1r | head -1`
 
@@ -4064,25 +4070,18 @@ if test "$_os" = "WINNT"; then
     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 "$vcnumwithdot" = "16.0"; then
-            if test "$WIN_BUILD_ARCH" != "x64"; then
-                regvalue="$VC_PRODUCT_DIR/../MSBuild/Current/Bin"
-            else
-                regvalue="$VC_PRODUCT_DIR/../MSBuild/Current/Bin/amd64"
-            fi
+    if test -z "$regvalue" ; then
+        if test "$WIN_BUILD_ARCH" != "x64"; then
+            regvalue="$VC_PRODUCT_DIR/../MSBuild/Current/Bin"
         else
-            if test "$WIN_BUILD_ARCH" != "x64"; then
-                regvalue="$VC_PRODUCT_DIR/../MSBuild/$vcnumwithdot/Bin"
-            else
-                regvalue="$VC_PRODUCT_DIR/../MSBuild/$vcnumwithdot/Bin/amd64"
-            fi
+            regvalue="$VC_PRODUCT_DIR/../MSBuild/Current/Bin/amd64"
         fi
+    fi
+    if test -d "$regvalue" ; then
         MSBUILD_PATH=`win_short_path_for_make "$regvalue"`
         AC_MSG_RESULT([$regvalue])
+    else
+        AC_MSG_ERROR([MSBuild.exe location not found])
     fi
 
     # Find the version of devenv.exe
@@ -4125,7 +4124,7 @@ if test "$_os" = "WINNT"; then
         # are always "better", we list them in reverse chronological order.
 
         case "$vcnum" in
-        160)
+        160 | 170)
             WINDOWS_SDK_ACCEPTABLE_VERSIONS="10.0 8.1A 8.1 8.0"
             ;;
         esac
@@ -6410,11 +6409,15 @@ find_msms()
     # Return value: $msmdir
 
     AC_MSG_CHECKING([for MSVC merge modules directory])
-    local my_msm_files=Microsoft_VC${VCVER}_CRT_x86.msm
+    local my_msm_files
     local my_msm_dir
 
+    dnl Order my_msm_files in increasing order. Then check the directories returned
+    dnl by ls in an inner loop; assuming they are also ordered in increasing order,
+    dnl the result will be the highest MSM version found in the highest directory.
+
     case "$VCVER" in
-        160)
+        160 | 170)
         my_msm_files="Microsoft_VC141_CRT_x86.msm Microsoft_VC142_CRT_x86.msm ${my_msm_files}"
         ;;
     esac
@@ -6423,45 +6426,14 @@ find_msms()
     done
 
     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
-            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
-    dnl to never having started Visual Studio on a given machine, so the
-    dnl registry keys checked above had presumably not yet been created?
-    dnl Anyway, if it really is necessary, it might be worthwhile to extend it
-    dnl to also check %CommonProgramFiles(X86)% (typically expanding to
-    dnl "C:\Program Files (X86)\Common Files" compared to %CommonProgramFiles%
-    dnl expanding to "C:\Program Files\Common Files"), which would need
-    dnl something like $(perl -e 'print $ENV{"CommonProgramFiles(x86)"}') to
-    dnl obtain its value from cygwin:
-    if test -z "$msmdir"; then
-        my_msm_dir="${COMMONPROGRAMFILES}/Merge Modules/"
-        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
     case "$VCVER" in
-    160)
-        for l in `ls -1 $VC_PRODUCT_DIR/redist/MSVC/`; do
-            echo "$as_me:$LINENO: looking in $VC_PRODUCT_DIR/redist/MSVC/$l/MergeModules])" >&5
-            my_msm_dir="$VC_PRODUCT_DIR/redist/MSVC/$l/MergeModules/"
-            for f in ${my_msm_files}; do
-                if test -e "$my_msm_dir/${f}"; then
+    160 | 170)
+        for f in ${my_msm_files}; do
+            for l in `ls -1 $VC_PRODUCT_DIR/redist/MSVC/`; do
+                my_msm_dir="$VC_PRODUCT_DIR/redist/MSVC/$l/MergeModules/"
+                echo "$as_me:$LINENO: looking for $my_msm_dir${f}])" >&5
+                if test -e "$my_msm_dir${f}"; then
                     msmdir=$my_msm_dir
-                    break
                 fi
             done
         done
@@ -6486,20 +6458,21 @@ find_msvc_x64_dlls()
     # Return value: $msvcdllpath, $msvcdlls
 
     AC_MSG_CHECKING([for MSVC x64 DLL path])
+
+    dnl Order crtver in increasing order. Then check the directories returned by
+    dnl ls in an inner loop; assuming they are also ordered in increasing order,
+    dnl the result will be the highest CRT version found in the highest directory.
+
     msvcdllpath="$VC_PRODUCT_DIR/redist/x64/Microsoft.VC${VCVER}.CRT"
     case "$VCVER" in
-    160)
-        for l in `ls -1 $VC_PRODUCT_DIR/redist/MSVC/`; do
-            echo "$as_me:$LINENO: testing $VC_PRODUCT_DIR/redist/MSVC/$l/x64/Microsoft.VC141.CRT" >&5
-            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
-            echo "$as_me:$LINENO: testing $VC_PRODUCT_DIR/redist/MSVC/$l/x64/Microsoft.VC142.CRT" >&5
-            if test -d "$VC_PRODUCT_DIR/redist/MSVC/$l/x64/Microsoft.VC142.CRT"; then
-                msvcdllpath="$VC_PRODUCT_DIR/redist/MSVC/$l/x64/Microsoft.VC142.CRT"
-                break
-            fi
+    160 | 170)
+        for crtver in 141 142; do
+            for l in `ls -1 $VC_PRODUCT_DIR/redist/MSVC/`; do
+                echo "$as_me:$LINENO: testing $VC_PRODUCT_DIR/redist/MSVC/$l/x64/Microsoft.VC$crtver.CRT" >&5
+                if test -d "$VC_PRODUCT_DIR/redist/MSVC/$l/x64/Microsoft.VC$crtver.CRT"; then
+                    msvcdllpath="$VC_PRODUCT_DIR/redist/MSVC/$l/x64/Microsoft.VC$crtver.CRT"
+                fi
+            done
         done
         ;;
     esac
diff --git a/external/breakpad/ExternalProject_breakpad.mk b/external/breakpad/ExternalProject_breakpad.mk
index db1d1c9df83a..3b1f126c3d1e 100644
--- a/external/breakpad/ExternalProject_breakpad.mk
+++ b/external/breakpad/ExternalProject_breakpad.mk
@@ -20,6 +20,7 @@ $(call gb_ExternalProject_get_state_target,breakpad,build) :
 	$(call gb_Trace_StartRange,breakpad,EXTERNAL)
 	$(call gb_ExternalProject_run,build,\
 		MSBuild.exe src/tools/windows/dump_syms/dump_syms.sln -p:Configuration=Release \
+			$(if $(filter 170,$(VCVER)),/p:PlatformToolset=v143 /p:VisualStudioVersion=17.0 /ToolsVersion:Current) \
 	)
 	$(call gb_Trace_EndRange,breakpad,EXTERNAL)
 
diff --git a/external/coinmp/ExternalProject_coinmp.mk b/external/coinmp/ExternalProject_coinmp.mk
index 9bd5a4cd2685..a59e4045d169 100644
--- a/external/coinmp/ExternalProject_coinmp.mk
+++ b/external/coinmp/ExternalProject_coinmp.mk
@@ -21,6 +21,7 @@ $(call gb_ExternalProject_get_state_target,coinmp,build) :
 			/p:Configuration=$(if $(MSVC_USE_DEBUG_RUNTIME),Debug,Release) \
 			/p:Platform=$(if $(filter INTEL,$(CPUNAME)),Win32,x64) \
 			$(if $(filter 160,$(VCVER)),/p:PlatformToolset=v142 /p:VisualStudioVersion=16.0 /ToolsVersion:Current) \
+			$(if $(filter 170,$(VCVER)),/p:PlatformToolset=v143 /p:VisualStudioVersion=17.0 /ToolsVersion:Current) \
 			$(if $(filter 10,$(WINDOWS_SDK_VERSION)),/p:WindowsTargetPlatformVersion=$(UCRTVERSION)) \
 	,CoinMP/MSVisualStudio/v9)
 	$(call gb_Trace_EndRange,coinmp,EXTERNAL)
diff --git a/external/cppunit/ExternalProject_cppunit.mk b/external/cppunit/ExternalProject_cppunit.mk
index 92db8a1953f3..996bf41761ae 100644
--- a/external/cppunit/ExternalProject_cppunit.mk
+++ b/external/cppunit/ExternalProject_cppunit.mk
@@ -20,6 +20,7 @@ $(call gb_ExternalProject_get_state_target,cppunit,build) :
 	    PROFILEFLAGS="$(gb_MSBUILD_CONFIG) \
 		/p:Platform=$(gb_MSBUILD_PLATFORM) \
 			$(if $(filter 160,$(VCVER)),/p:PlatformToolset=v142 /p:VisualStudioVersion=16.0 /ToolsVersion:Current) \
+			$(if $(filter 170,$(VCVER)),/p:PlatformToolset=v143 /p:VisualStudioVersion=17.0 /ToolsVersion:Current) \
 			$(if $(filter 10,$(WINDOWS_SDK_VERSION)),/p:WindowsTargetPlatformVersion=$(UCRTVERSION))" \
 		&& msbuild.exe cppunit_dll.vcxproj /p:Configuration=$${PROFILEFLAGS}  \
 		&& cd ../DllPlugInTester \
diff --git a/external/lcms2/ExternalProject_lcms2.mk b/external/lcms2/ExternalProject_lcms2.mk
index 35dce1bcc03e..4f1ef72e5920 100644
--- a/external/lcms2/ExternalProject_lcms2.mk
+++ b/external/lcms2/ExternalProject_lcms2.mk
@@ -20,6 +20,7 @@ $(call gb_ExternalProject_get_state_target,lcms2,build):
 		MSBuild.exe lcms2_DLL.vcxproj \
 			$(gb_MSBUILD_CONFIG_AND_PLATFORM) /p:TargetName=lcms2 \
 			$(if $(filter 160,$(VCVER)),/p:PlatformToolset=v142 /p:VisualStudioVersion=16.0 /ToolsVersion:Current) \
+			$(if $(filter 170,$(VCVER)),/p:PlatformToolset=v143 /p:VisualStudioVersion=17.0 /ToolsVersion:Current) \
 			$(if $(filter 10,$(WINDOWS_SDK_VERSION)),/p:WindowsTargetPlatformVersion=$(UCRTVERSION)) \
 	,Projects/VC2019/lcms2_DLL)
 	$(call gb_Trace_EndRange,lcms2,EXTERNAL)
diff --git a/external/postgresql/ExternalProject_postgresql.mk b/external/postgresql/ExternalProject_postgresql.mk
index b491301c73b4..eaca2ab23512 100644
--- a/external/postgresql/ExternalProject_postgresql.mk
+++ b/external/postgresql/ExternalProject_postgresql.mk
@@ -27,6 +27,7 @@ $(call gb_ExternalProject_get_state_target,postgresql,build) :
 	$(call gb_ExternalProject_run,build,\
 		MSBFLAGS="/p:Platform=$(gb_MSBUILD_PLATFORM) \
 			$(if $(filter 160,$(VCVER)),/p:PlatformToolset=v142 /p:VisualStudioVersion=16.0 /ToolsVersion:Current) \
+			$(if $(filter 170,$(VCVER)),/p:PlatformToolset=v143 /p:VisualStudioVersion=17.0 /ToolsVersion:Current) \
 			$(if $(filter 10,$(WINDOWS_SDK_VERSION)),/p:WindowsTargetPlatformVersion=$(UCRTVERSION))" \
 		$(PERL) build.pl $(gb_MSBUILD_CONFIG) libpq \
 	,src/tools/msvc)
diff --git a/external/python3/ExternalProject_python3.mk b/external/python3/ExternalProject_python3.mk
index dc268e8bb619..46fbdad5ab14 100644
--- a/external/python3/ExternalProject_python3.mk
+++ b/external/python3/ExternalProject_python3.mk
@@ -43,6 +43,7 @@ $(call gb_ExternalProject_get_state_target,python3,build) :
 			/p:libffiIncludeDir=$(call gb_UnpackedTarball_get_dir,libffi)/$(HOST_PLATFORM)/include \
 			/maxcpucount \
 			$(if $(filter 160,$(VCVER)),/p:PlatformToolset=v142 /p:VisualStudioVersion=16.0 /ToolsVersion:Current) \
+			$(if $(filter 170,$(VCVER)),/p:PlatformToolset=v143 /p:VisualStudioVersion=17.0 /ToolsVersion:Current) \
 			$(if $(filter 10,$(WINDOWS_SDK_VERSION)),/p:WindowsTargetPlatformVersion=$(UCRTVERSION)) \
 	,PCBuild)
 	$(call gb_Trace_EndRange,python3,EXTERNAL)


More information about the Libreoffice-commits mailing list