summaryrefslogtreecommitdiff
path: root/win
diff options
context:
space:
mode:
authorVladislav Vaintroub <wlad@mariadb.com>2022-01-08 19:56:13 +0100
committerVladislav Vaintroub <wlad@mariadb.com>2022-01-08 19:56:13 +0100
commit7dfa1168b44acead41eee5433900ddadbf287226 (patch)
tree228a14f62c1ef9392262ca9533aa81a9c02f53ad /win
parent8265d6d9f632add97f0d13cdfca7188164ba8f2c (diff)
downloadmariadb-git-7dfa1168b44acead41eee5433900ddadbf287226.tar.gz
MDEV-27446 Windows, MSI - fix redistributable merge module path for VS2022bb-10.4-wlad
Diffstat (limited to 'win')
-rw-r--r--win/packaging/CMakeLists.txt43
1 files changed, 13 insertions, 30 deletions
diff --git a/win/packaging/CMakeLists.txt b/win/packaging/CMakeLists.txt
index 66ac6300728..591d02345be 100644
--- a/win/packaging/CMakeLists.txt
+++ b/win/packaging/CMakeLists.txt
@@ -176,40 +176,23 @@ IF(CMAKE_GENERATOR MATCHES "Visual Studio")
SET(CONFIG_PARAM "-DCMAKE_INSTALL_CONFIG_NAME=${CMAKE_CFG_INTDIR}")
ENDIF()
-IF(MSVC_CRT_TYPE MATCHES "/MD")
+IF(MSVC_CRT_TYPE MATCHES "/MD" AND (NOT VCRedist_MSM))
# Find out CRT merge module path, we're going to use it in installer
- # The path and name depends on VS version
- IF(MSVC_VERSION LESS 1900)
- # VS2015
- SET(VCREDIST_MSM_FILENAME Microsoft_VC140_CRT_${WIX_ARCH_SUFFIX}.msm)
- SET(ProgramFilesX86 "ProgramFiles(x86)")
- FIND_FILE(${VCREDIST_MSM_FILENAME}
- NO_DEFAULT_PATH
- PATHS
- "$ENV{${ProgramFilesX86}}/Common Files/Merge Modules"
- "$ENV{ProgramFiles}/Common Files/Merge Modules"
- )
- ELSEIF(MSVC_VERSION LESS 1920)
- # VS2017
- SET(VCREDIST_MSM_FILENAME Microsoft_VC141_CRT_${WIX_ARCH_SUFFIX}.msm)
- FILE(GLOB MSM_LIST "C:/Program Files*/Microsoft Visual Studio/2017/*/VC/Redist/MSVC/*/MergeModules/${VCREDIST_MSM_FILENAME}")
- LIST(LENGTH MSM_LIST LEN)
- IF(LEN GREATER 0)
- LIST(GET MSM_LIST 0 VCRedist_MSM)
- ENDIF()
- ELSE()
- # VS2019
- SET(VCREDIST_MSM_FILENAME Microsoft_VC142_CRT_${WIX_ARCH_SUFFIX}.msm)
- FILE(GLOB MSM_LIST "C:/Program Files*/Microsoft Visual Studio/2019/*/VC/Redist/MSVC/*/MergeModules/${VCREDIST_MSM_FILENAME}")
- LIST(LENGTH MSM_LIST LEN)
- IF(LEN GREATER 0)
- LIST(GET MSM_LIST 0 VCRedist_MSM)
- ENDIF()
+
+ # merge module file name depends on MSVC version.
+ MATH(EXPR VC_CRT_VER "(${MSVC_VERSION} - 1900)/10 + 140")
+ SET(VCREDIST_MSM_FILENAME Microsoft_VC${VC_CRT_VER}_CRT_${WIX_ARCH_SUFFIX}.msm)
+
+ FILE(GLOB MSM_LIST "C:/Program Files*/Microsoft Visual Studio/*/*/VC/Redist/MSVC/*/MergeModules/${VCREDIST_MSM_FILENAME}")
+ LIST(LENGTH MSM_LIST LEN)
+ IF(LEN GREATER 0)
+ LIST(GET MSM_LIST 0 VCRedist_MSM_Location)
ENDIF()
- IF (NOT VCRedist_MSM)
+ IF (NOT VCRedist_MSM_Location)
MESSAGE(WARNING "Can't find merge module ${VCREDIST_MSM_FILENAME}")
ELSE()
- FILE(TO_NATIVE_PATH ${VCRedist_MSM} VCRedist_MSM)
+ FILE(TO_NATIVE_PATH ${VCRedist_MSM_Location} VCRedist_MSM_Location)
+ SET(VCRedist_MSM "${VCRedist_MSM_Location}" CACHE INTERNAL "Location of redistributable merge module")
# MESSAGE("VCRedist_MSM=${VCRedist_MSM}")
ENDIF()
ENDIF()