mirror of
https://github.com/transmission/transmission
synced 2025-02-01 12:08:24 +00:00
Support MSVS 2017 VC CRT MSM file locations (MSI package)
This commit is contained in:
parent
3d9fd25269
commit
a82c26642c
3 changed files with 44 additions and 2 deletions
3
dist/msi/CMakeLists.txt
vendored
3
dist/msi/CMakeLists.txt
vendored
|
@ -20,6 +20,8 @@ if(NOT TR_QT_DIR)
|
|||
set(TR_QT_DIR "$<TARGET_FILE_DIR:Qt5::Core>/..")
|
||||
endif()
|
||||
|
||||
find_msvc_crt_msm(TR_MSVC_CRT_MSM_FILE)
|
||||
|
||||
set(ICONS_DIR "${CMAKE_SOURCE_DIR}/qt/icons/hicolor")
|
||||
png2ico(Transmission.ico
|
||||
"${ICONS_DIR}/16x16/transmission-qt.png"
|
||||
|
@ -67,6 +69,7 @@ wix_candle(${PROJECT_NAME}_OBJS
|
|||
"WebSrcDir=${WEBSRCDIR}"
|
||||
"TrQmSrcDir=${TRQMSRCDIR}"
|
||||
"QtQmSrcDir=${QTQMSRCDIR}"
|
||||
"MsvcCrtMsmFile=${TR_MSVC_CRT_MSM_FILE}"
|
||||
EXTRA_DEPENDS
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/TransmissionConfig.wxi")
|
||||
|
||||
|
|
4
dist/msi/Transmission.wxs
vendored
4
dist/msi/Transmission.wxs
vendored
|
@ -42,7 +42,7 @@
|
|||
<Property Id="DiskPrompt" Value="Transmission $(var.TrVersion) Installation [1]" />
|
||||
|
||||
<Directory Id="TARGETDIR" Name="SourceDir">
|
||||
<Merge Id="VCRedist" SourceFile="$(env.CommonProgramFiles(x86))\Merge Modules\Microsoft_VC140_CRT_$(sys.BUILDARCH).msm" DiskId="1" Language="0" />
|
||||
<Merge Id="VCRedist" SourceFile="$(var.MsvcCrtMsmFile)" DiskId="1" Language="0" />
|
||||
<Directory Id="$(var.PlatformProgramFilesFolder)" Name="PFiles">
|
||||
<Directory Id="INSTALLDIR" Name="Transmission">
|
||||
<Directory Id="WEBINSTALLDIR" Name="web" />
|
||||
|
@ -53,7 +53,7 @@
|
|||
</Directory>
|
||||
|
||||
<Feature Id="CompleteInstall" Title="Transmission" Level="1" AllowAdvertise="no" Display="expand" ConfigurableDirectory="INSTALLDIR">
|
||||
<Feature Id="VCRedist" Title="Visual C++ 14.0 Runtime" Level="1" AllowAdvertise="no" Display="hidden">
|
||||
<Feature Id="VCRedist" Title="Visual C++ Runtime" Level="1" AllowAdvertise="no" Display="hidden">
|
||||
<MergeRef Id="VCRedist" />
|
||||
</Feature>
|
||||
<Feature Id="CommonLibs" Level="1" AllowAdvertise="no" Display="hidden">
|
||||
|
|
39
dist/msi/UtilityFunctions.cmake
vendored
39
dist/msi/UtilityFunctions.cmake
vendored
|
@ -1,5 +1,44 @@
|
|||
include(CMakeParseArguments)
|
||||
|
||||
function(find_msvc_crt_msm OUTPUT_VAR)
|
||||
if(${OUTPUT_VAR})
|
||||
return()
|
||||
endif()
|
||||
|
||||
message(STATUS "Looking for a CRT MSM:")
|
||||
|
||||
if(NOT MSVC_TOOLSET_VERSION)
|
||||
if(MSVC_VERSION GREATER_EQUAL 1920)
|
||||
set(MSVC_TOOLSET_VERSION 142)
|
||||
elseif(MSVC_VERSION GREATER_EQUAL 1910)
|
||||
set(MSVC_TOOLSET_VERSION 141)
|
||||
elseif(MSVC_VERSION GREATER_EQUAL 1900)
|
||||
set(MSVC_TOOLSET_VERSION 140)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
set(MSM_FILE "Microsoft_VC${MSVC_TOOLSET_VERSION}_CRT_${ARCH}.msm")
|
||||
message(STATUS " * File name: ${MSM_FILE}")
|
||||
|
||||
set(VC_DIR "${CMAKE_CXX_COMPILER}")
|
||||
while(VC_DIR AND NOT VC_DIR MATCHES "/VC$")
|
||||
get_filename_component(VC_DIR "${VC_DIR}" DIRECTORY)
|
||||
endwhile()
|
||||
message(STATUS " * VC directory: ${VC_DIR}")
|
||||
|
||||
file(GLOB VC_VER_DIRS "${VC_DIR}/Redist/MSVC/*")
|
||||
message(STATUS " * Redist directories: ${VC_VER_DIRS}")
|
||||
|
||||
set(CMN_PF_DIR "CommonProgramFiles(x86)")
|
||||
find_file(${OUTPUT_VAR}
|
||||
NAMES "${MSM_FILE}"
|
||||
PATHS ${VC_VER_DIRS} $ENV{${CMN_PF_DIR}}
|
||||
PATH_SUFFIXES "MergeModules" "Merge Modules")
|
||||
message(STATUS " * Result: ${${OUTPUT_VAR}}")
|
||||
|
||||
set(${OUTPUT_VAR} "${${OUTPUT_VAR}}" PARENT_SCOPE)
|
||||
endfunction()
|
||||
|
||||
function(png2ico OUTPUT_FILE)
|
||||
if(NOT IS_ABSOLUTE "${OUTPUT_FILE}")
|
||||
set(OUTPUT_FILE "${CMAKE_CURRENT_BINARY_DIR}/${OUTPUT_FILE}")
|
||||
|
|
Loading…
Reference in a new issue