Skip to content

Commit eb2525a

Browse files
committed
WiX: add support for toolchain variant builds
Add support for the toolchain variant packaging. This is intended to allow us to package a NoAsserts toolchain for distribution alongside the Asserts toolchain.
1 parent 8d82c7b commit eb2525a

File tree

5 files changed

+51
-24
lines changed

5 files changed

+51
-24
lines changed

platforms/Windows/bld/bld.wixproj

+3
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,13 @@
11
<Project Sdk="WixToolset.Sdk/4.0.5">
22
<PropertyGroup>
3+
<OutputName>bld.$(TOOLCHAIN_VARIANT)</OutputName>
4+
35
<DefineConstants>
46
$(DefineConstants);
57
TOOLCHAIN_ROOT=$(TOOLCHAIN_ROOT);
68
TOOLCHAIN_ROOT_USR_LIB_CLANG=$(TOOLCHAIN_ROOT)\usr\lib\clang;
79
TOOLCHAIN_ROOT_USR_LIB_SWIFT_CLANG=$(TOOLCHAIN_ROOT)\usr\lib\swift\clang;
10+
TOOLCHAIN_VARIANT=$(TOOLCHAIN_VARIANT);
811
WORKAROUND_MIMALLOC_ISSUE_997=$(WORKAROUND_MIMALLOC_ISSUE_997);
912
</DefineConstants>
1013
</PropertyGroup>

platforms/Windows/bld/bld.wxs

+2-2
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
Version="$(NonSemVerProductVersion)"
1515
Scope="$(PackageScope)">
1616

17-
<Media Id="1" Cabinet="bld.cab" EmbedCab="$(ArePackageCabsEmbedded)" />
17+
<Media Id="1" Cabinet="bld.$(TOOLCHAIN_VARIANT).cab" EmbedCab="$(ArePackageCabsEmbedded)" />
1818

1919
<WixVariable Id="SideBySidePackageUpgradeCode" Value="$(BldUpgradeCode)" />
2020
<FeatureGroupRef Id="SideBySideUpgradeStrategy" />
@@ -505,7 +505,7 @@
505505
</ComponentGroup>
506506

507507
<ComponentGroup Id="Configuration">
508-
<Component Directory="ToolchainsVersioned">
508+
<Component Directory="VersionedToolchainVariant">
509509
<File Source="$(TOOLCHAIN_ROOT)\ToolchainInfo.plist" />
510510
</Component>
511511
</ComponentGroup>

platforms/Windows/bundle/installer.wixproj

+10-1
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66
<VCRedistDownloadUrl Condition=" '$(VCRedistDownloadUrl)' == '' AND '$(VSMajorVersion)' != '' ">https://aka.ms/vs/$(VSMajorVersion)/release/vc_redist.$(ProductArchitecture).exe</VCRedistDownloadUrl>
77
<DefineConstants>
88
$(DefineConstants);
9+
INCLUDE_ASSERTS_TOOLCHAIN=$(INCLUDE_ASSERTS_TOOLCHAIN);
10+
INCLUDE_NOASSERTS_TOOLCHAIN=$(INCLUDE_NOASSERTS_TOOLCHAIN);
911
INCLUDE_ANDROID_ARM_SDK=$(INCLUDE_ANDROID_ARM_SDK);
1012
INCLUDE_ANDROID_ARM64_SDK=$(INCLUDE_ANDROID_ARM64_SDK);
1113
INCLUDE_ANDROID_X86_SDK=$(INCLUDE_ANDROID_X86_SDK);
@@ -20,8 +22,15 @@
2022
<PackageReference Include="WixToolset.Bal.wixext" Version="4.0.5" />
2123
</ItemGroup>
2224

25+
<ItemGroup Condition=" '$(INCLUDE_ASSERTS_TOOLCHAIN)' != '' ">
26+
<ProjectReference Include="..\bld\bld.wixproj" Properties="TOOLCHAIN_VARIANT=asserts" BindName="bld.asserts" />
27+
</ItemGroup>
28+
29+
<ItemGroup Condition=" '$(INCLUDE_NOASSERTS_TOOLCHAIN)' != '' ">
30+
<ProjectReference Include="..\bld\bld.wixproj" Properties="TOOLCHAIN_VARIANT=noasserts" BindName="bld.noasserts" />
31+
</ItemGroup>
32+
2333
<ItemGroup>
24-
<ProjectReference Include="..\bld\bld.wixproj" BindName="bld" />
2534
<ProjectReference Include="..\cli\cli.wixproj" BindName="cli" />
2635
<ProjectReference Include="..\dbg\dbg.wixproj" BindName="dbg" />
2736
<ProjectReference Include="..\ide\ide.wixproj" BindName="ide" />

platforms/Windows/bundle/installer.wxs

+15-5
Original file line numberDiff line numberDiff line change
@@ -77,11 +77,21 @@
7777
<MsiProperty Name="InstallUtilities" Value="[OptionsInstallUtilities]" />
7878
</MsiPackage>
7979

80-
<MsiPackage
81-
SourceFile="!(bindpath.bld)\bld.msi"
82-
DownloadUrl="$(BaseReleaseDownloadUrl)/{2}">
83-
<MsiProperty Name="INSTALLROOT" Value="[InstallRoot]" />
84-
</MsiPackage>
80+
<?if $(INCLUDE_ASSERTS_TOOLCHAIN) == true ?>
81+
<MsiPackage
82+
SourceFile="!(bindpath.bld.asserts)\bld.asserts.msi"
83+
DownloadUrl="$(BaseReleaseDownloadUrl)/{2}">
84+
<MsiProperty Name="INSTALLROOT" Value="[InstallRoot]" />
85+
</MsiPackage>
86+
<?endif?>
87+
88+
<?if $(INCLUDE_NOASSERTS_TOOLCHAIN) == true ?>
89+
<MsiPackage
90+
SourceFile="!(bindpath.bld.noasserts)\bld.noasserts.msi"
91+
DownloadUrl="$(BaseReleaseDownloadUrl)/{2}">
92+
<MsiProperty Name="INSTALLROOT" Value="[InstallRoot]" />
93+
</MsiPackage>
94+
<?endif?>
8595

8696
<MsiPackage
8797
SourceFile="!(bindpath.cli)\cli.msi"

platforms/Windows/shared/shared.wxs

+21-16
Original file line numberDiff line numberDiff line change
@@ -38,27 +38,32 @@
3838
<Fragment>
3939
<DirectoryRef Id="INSTALLROOT">
4040
<Directory Name="Toolchains">
41-
<Directory Id="ToolchainsVersioned" Name="$(ProductVersion)+Asserts">
42-
<Directory Id="_usr" Name="usr">
43-
<Directory Id="_usr_bin" Name="bin" />
44-
<Directory Id="_usr_include" Name="include" />
45-
<Directory Id="_usr_lib" Name="lib">
46-
<Directory Id="_usr_lib_clang" Name="clang" />
47-
<Directory Id="_usr_lib_swift" Name="swift">
48-
<Directory Id="_usr_lib_swift_clang" Name="clang" />
49-
</Directory>
50-
</Directory>
51-
<Directory Id="_usr_share" Name="share">
52-
<Directory Id="_usr_share_docc" Name="docc">
53-
<Directory Id="_usr_share_docc_render" Name="render" />
54-
</Directory>
55-
</Directory>
56-
</Directory>
41+
<Directory Id="VersionedToolchainVariant" Name="$(ProductVersion)+Asserts">
5742
</Directory>
5843
</Directory>
5944
</DirectoryRef>
6045
</Fragment>
6146

47+
<Fragment>
48+
<DirectoryRef Id="VersionedToolchainVariant">
49+
<Directory Id="_usr" Name="usr">
50+
<Directory Id="_usr_bin" Name="bin" />
51+
<Directory Id="_usr_include" Name="include" />
52+
<Directory Id="_usr_lib" Name="lib">
53+
<Directory Id="_usr_lib_clang" Name="clang" />
54+
<Directory Id="_usr_lib_swift" Name="swift">
55+
<Directory Id="_usr_lib_swift_clang" Name="clang" />
56+
</Directory>
57+
</Directory>
58+
<Directory Id="_usr_share" Name="share">
59+
<Directory Id="_usr_share_docc" Name="docc">
60+
<Directory Id="_usr_share_docc_render" Name="render" />
61+
</Directory>
62+
</Directory>
63+
</Directory>
64+
</DirectoryRef>
65+
</Fragment>
66+
6267
<!--
6368
Use RemoveFolderEx to clean up the empty subdirectories Windows Installer
6469
leaves when there are other directory siblings left behind, as happens when

0 commit comments

Comments
 (0)