diff options
author | Mikkel Krautz <mikkel@krautz.dk> | 2014-04-06 00:00:31 +0400 |
---|---|---|
committer | Mikkel Krautz <mikkel@krautz.dk> | 2014-04-06 00:00:31 +0400 |
commit | 8aafb6cea504c30be51d01cbb6a6a2776b8b3a24 (patch) | |
tree | 7f28c002a7f16159ef9fca318790367b262e1b58 /installer | |
parent | 0e447428ba8380581297e3e619967a09dda036ed (diff) |
installer: automatically embed VCRedist 12.0 DLLs when env var MumbleNoMergeModule is set.
This commit updates the old RedistDirVC10 files to point to their new version 12 copies,
now that we build with MSVS2013.
It also implements an easy way to opt-out of using merge modules for the VCRT
redistributable DLLs.
With this change, if the environment variable MumbleNoMergeModule is set,
the installer build will automatically embed the VCRedist DLL files as
regular files into the final .MSI.
To avoid this behavior, one can set MumbleNoEmbedVCRedist=1. So, to build
a Mumble installer with no VCRT merge modules *and* no embedded VCRT DLLs,
one would set *both*
MumbleNoMergeModules=1
MumbleNoEmbedVCRedist=1
Diffstat (limited to 'installer')
-rw-r--r-- | installer/Files.wxs | 13 | ||||
-rw-r--r-- | installer/Product.wxs | 7 | ||||
-rw-r--r-- | installer/Settings.wxi | 12 |
3 files changed, 24 insertions, 8 deletions
diff --git a/installer/Files.wxs b/installer/Files.wxs index fb4ff9401..a772d71a5 100644 --- a/installer/Files.wxs +++ b/installer/Files.wxs @@ -109,12 +109,15 @@ </Component> <?endif ?> - <?ifdef RedistDirVC10 ?> - <Component Id="msvcp100.dll"> - <File Source="$(var.RedistDirVC10)\msvcp100.dll" KeyPath="yes" /> + <?ifdef RedistDirVC12 ?> + <Component Id="msvcp120.dll"> + <File Source="$(var.RedistDirVC12)\msvcp120.dll" KeyPath="yes" /> </Component> - <Component Id="msvcr100.dll"> - <File Source="$(var.RedistDirVC10)\msvcr100.dll" KeyPath="yes" /> + <Component Id="msvcr120.dll"> + <File Source="$(var.RedistDirVC12)\msvcr120.dll" KeyPath="yes" /> + </Component> + <Component Id="vccorlib120.dll"> + <File Source="$(var.RedistDirVC12)\vccorlib120.dll" KeyPath="yes" /> </Component> <?endif ?> </DirectoryRef> diff --git a/installer/Product.wxs b/installer/Product.wxs index 7c672e561..5fada5f8b 100644 --- a/installer/Product.wxs +++ b/installer/Product.wxs @@ -123,9 +123,10 @@ <ComponentRef Id="libmmd.dll"/> <?endif ?> - <?ifdef RedistDirVC10 ?> - <ComponentRef Id="msvcp100.dll" /> - <ComponentRef Id="msvcr100.dll" /> + <?ifdef RedistDirVC12 ?> + <ComponentRef Id="msvcp120.dll" /> + <ComponentRef Id="msvcr120.dll" /> + <ComponentRef Id="vccorlib120.dll" /> <?endif ?> </ComponentGroup> diff --git a/installer/Settings.wxi b/installer/Settings.wxi index c3623157b..2d47f71f7 100644 --- a/installer/Settings.wxi +++ b/installer/Settings.wxi @@ -72,6 +72,18 @@ <?define MergeModuleDir = "$(env.MumbleMergeModuleDir)" ?> <?endif ?> + <!-- If the MumbleNoMergeModule env var is set, prefer embedding the .DLLs directly into the installer. --> + <?ifdef env.MumbleNoMergeModule ?> + <!-- But, if the MumbleNoEmbedVCRedist env var is set, don't embed them anyway. --> + <?ifndef env.MumbleNoEmbedVCRedist ?> + <?ifndef env.MumbleRedistDirVC12 ?> + <?define RedistDirVC12 = "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\redist\x86\Microsoft.VC120.CRT" ?> + <?else ?> + <?define RedistDirVC12 = "$(env.MumbleRedistDirVC12)" ?> + <?endif ?> + <?endif ?> + <?endif ?> + <!-- Environment flags to disable features. Value doesn't matter --> <?ifdef env.MumbleSSE ?> <?define SSE = true ?> |