Skip to content

Commit 508732e

Browse files
authored
WiX: Windows packaging improvements (swiftlang#207)
* WiX: adjust the rules for harvesting directories with heat This should generate durable GUIDs at compile time to allow an in-place upgrade. Remove the unnecessary properties in the developer tools. * WiX: restructure the toolchain MSI This restructures the MSIs into a slightly more granular set of MSIs. It reduces the size of the single MSI making the installer proceed a bit more uniformly. bld: Build Tools (binutils, compilers, linker, assembler) cli: Command Line Tools (clang-format, clang-tidy, swift-api-digester, swift-symbolgraph-extract, swift-package-manager) dbg: Debugging Tools (lldb, repl) ide: IDE Integration Tools (clangd, lldb-vscode, sourcekitd, SourceKit-LSP) In the future, this also provides a logical location for DocC (cli), swift-inspect (dbg), and swift-format (cli). Take the opportunity to use the higher compression by default on all the MSIs. This also removes `swift-build-tool` and `swift-build-sdk-interfaces` until we have a need for them. Simultaneously, we are taking advantage of the WiX 4.0 feature to create a dual-purpose MSI. Unfortunately, burn does not support dual-purpose builds and this implicitly migrates the toolchain to a per-user install currently. However, this is desirable as it will likely provide a space free install path along with removing the need for administrator rights. * WiX: shuffle the runtime into `Runtimes\[SemVer]` This makes it fit more naturally into the layout with the co-located installation. Take the opportunity to claw back some storage by enabling compression. This effectively neurtalises the effects of the split MSIs (and slightly wins even). * WiX: rework the SDK layout Restore the components, move the install location, and enable the dual-purpose installer, and enable higher compression. The higher compression helps offset some of the associated costs for the split MSIs. The SDKs are now relocated to `%ProgramFiles%\Swift\Platforms` to co-locate the Platform SDKs with the toolchain and runtime. The conversion to a dual purpose MSI will relocate this to `%LocalAppData%\Programs\Swift\Platforms`. In most cases this should be a space free path which allows us to finally migrate away from `C:\Library` and fix the issue of incorrect permissions on directories. * WiX: remove the obsolete `DEVELOPER_SDK` environment variable This was removed from use in SPM in 5.7. Update the installer to no longer add this environment variable. * WiX: adjust the environment handling to handle dual purpose Ensure that we properly handle the environment when installing. When performing a per-user install, we should modify the user's environment variables and when performing a per-machine install, modify the system environment variables. * WiX: reduce some vertical whitespace usage Remove the use of empty nodes and collapse them to the short form. This reduces the height of the directory hierarchy listing and makes it easier to identify the leaf nodes in the file system. * WiX: rename version.wxi to config.wxi The original version information has been removed from the include file and now only has the configuration for the build. This allows us to use a single definition for the various architectures. * WiX: draw a diagram of the SDK layout The SDK layout is now the most complex part of the Swift distribution. Draw a rendering of the layout to make it easier to follow. * WiX: revert to per-machine installs The uninstallation path is adversely effected by the dual-purpose builds. This allows installation and uninstallation to function. While this still requires the UAC prompt, a working installation is more important. A subsequent change to enable per-user installs is still feasible.
1 parent 77bb234 commit 508732e

15 files changed

+1594
-1629
lines changed

platforms/Windows/toolchain.wixproj platforms/Windows/bld.wixproj

+25-8
Original file line numberDiff line numberDiff line change
@@ -20,13 +20,26 @@
2020

2121
<PropertyGroup>
2222
<DefineConstants>ProductArchitecture=$(ProductArchitecture);ProductVersion=$(ProductVersion);DEVTOOLS_ROOT=$(DEVTOOLS_ROOT);TOOLCHAIN_ROOT=$(TOOLCHAIN_ROOT);TOOLCHAIN_ROOT_USR_LIB_CLANG=$(TOOLCHAIN_ROOT)\usr\lib\clang</DefineConstants>
23-
<HarvestDirectoryAutogenerateGuids>false</HarvestDirectoryAutogenerateGuids>
24-
<HarvestDirectoryGenerateGuidsNow>true</HarvestDirectoryGenerateGuidsNow>
25-
<HarvestDirectoryNoLogo>true</HarvestDirectoryNoLogo>
26-
<HarvestDirectorySuppressCom>true</HarvestDirectorySuppressCom>
27-
<HarvestDirectorySuppressFragments>true</HarvestDirectorySuppressFragments>
28-
<HarvestDirectorySuppressRegistry>true</HarvestDirectorySuppressRegistry>
29-
<HarvestDirectorySuppressRootDirectory>true</HarvestDirectorySuppressRootDirectory>
23+
</PropertyGroup>
24+
25+
<PropertyGroup>
26+
<HarvestNoLogo>true</HarvestNoLogo>
27+
<HarvestGenerateGuidsNow>true</HarvestGenerateGuidsNow>
28+
</PropertyGroup>
29+
30+
<PropertyGroup Condition=" '$(ProductArchitecture)' == 'amd64' ">
31+
<InstallerPlatform>x64</InstallerPlatform>
32+
</PropertyGroup>
33+
<PropertyGroup Condition=" '$(ProductArchitecture)' == 'arm64' ">
34+
<InstallerPlatform>arm64</InstallerPlatform>
35+
<InstallerVersion>500</InstallerVersion>
36+
</PropertyGroup>
37+
<PropertyGroup Condition=" '$(ProductArchitecture)' == 'arm' ">
38+
<InstallerPlatform>arm</InstallerPlatform>
39+
<InstallerVersion>500</InstallerVersion>
40+
</PropertyGroup>
41+
<PropertyGroup Condition=" '$(ProductArchitecture)' == 'x86' ">
42+
<InstallerPlatform>x86</InstallerPlatform>
3043
</PropertyGroup>
3144

3245
<ItemGroup>
@@ -39,7 +52,11 @@
3952
<ComponentGroupName>ClangResources</ComponentGroupName>
4053
<DirectoryRefId>_usr_lib_clang</DirectoryRefId>
4154
<PreprocessorVariable>var.TOOLCHAIN_ROOT_USR_LIB_CLANG</PreprocessorVariable>
55+
<SuppressCom>true</SuppressCom>
56+
<SuppressRegistry>true</SuppressRegistry>
57+
<SuppressRootDirectory>true</SuppressRootDirectory>
4258
</HarvestDirectory>
43-
<Compile Include="toolchain.wxs" />
59+
60+
<Compile Include="bld.wxs" />
4461
</ItemGroup>
4562
</Project>

platforms/Windows/bld.wxs

+385
Large diffs are not rendered by default.

platforms/Windows/cli.wixproj

+47
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
<Project Sdk="WixToolset.Sdk/4.0.0">
2+
<PropertyGroup>
3+
<EnableDefaultCompileItems>false</EnableDefaultCompileItems>
4+
</PropertyGroup>
5+
6+
<PropertyGroup>
7+
<ProductArchitecture Condition=" '$(ProductArchitecture)' == '' ">amd64</ProductArchitecture>
8+
<ProductArchitecture>$(ProductArchitecture)</ProductArchitecture>
9+
10+
<ProductVersion Condition=" '$(ProductVersion)' == '' ">0.0.0</ProductVersion>
11+
<ProductVersion>$(ProductVersion)</ProductVersion>
12+
</PropertyGroup>
13+
14+
<PropertyGroup>
15+
<OutputPath>build\</OutputPath>
16+
<IntermediateOutputPath>build\obj\</IntermediateOutputPath>
17+
</PropertyGroup>
18+
19+
<Import Project="WiXCodeSigning.targets" />
20+
21+
<PropertyGroup>
22+
<DefineConstants>ProductArchitecture=$(ProductArchitecture);ProductVersion=$(ProductVersion);DEVTOOLS_ROOT=$(DEVTOOLS_ROOT);TOOLCHAIN_ROOT=$(TOOLCHAIN_ROOT);</DefineConstants>
23+
</PropertyGroup>
24+
25+
<PropertyGroup Condition=" '$(ProductArchitecture)' == 'amd64' ">
26+
<InstallerPlatform>x64</InstallerPlatform>
27+
</PropertyGroup>
28+
<PropertyGroup Condition=" '$(ProductArchitecture)' == 'arm64' ">
29+
<InstallerPlatform>arm64</InstallerPlatform>
30+
<InstallerVersion>500</InstallerVersion>
31+
</PropertyGroup>
32+
<PropertyGroup Condition=" '$(ProductArchitecture)' == 'arm' ">
33+
<InstallerPlatform>arm</InstallerPlatform>
34+
<InstallerVersion>500</InstallerVersion>
35+
</PropertyGroup>
36+
<PropertyGroup Condition=" '$(ProductArchitecture)' == 'x86' ">
37+
<InstallerPlatform>x86</InstallerPlatform>
38+
</PropertyGroup>
39+
40+
<ItemGroup>
41+
<PackageReference Include="WixToolset.UI.wixext" Version="4.0.0" />
42+
</ItemGroup>
43+
44+
<ItemGroup>
45+
<Compile Include="cli.wxs" />
46+
</ItemGroup>
47+
</Project>

platforms/Windows/cli.wxs

+268
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,268 @@
1+
<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs" xmlns:ui="http://wixtoolset.org/schemas/v4/wxs/ui">
2+
<Package
3+
Language="1033"
4+
Manufacturer="swift.org"
5+
Name="Swift Command Line Tools"
6+
UpgradeCode="87019842-3f3e-4227-b5c5-23a8ef72ad89"
7+
Version="$(var.ProductVersion)"
8+
Scope="perMachine">
9+
<SummaryInformation Description="Swift Command Line Tools" />
10+
11+
<Media Id="1" Cabinet="cli.cab" EmbedCab="yes" CompressionLevel="high" />
12+
13+
<StandardDirectory Id="ProgramFiles64Folder">
14+
<Directory Id="INSTALLDIR" Name="Swift">
15+
<Directory Id="Toolchains" Name="Toolchains">
16+
<Directory Id="_" Name="$(var.ProductVersion)+Asserts">
17+
<Directory Id="_usr" Name="usr">
18+
<Directory Id="_usr_bin" Name="bin" />
19+
<Directory Id="_usr_include" Name="include">
20+
<Directory Id="_usr_include__InternalSwiftScan" Name="_InternalSwiftScan" />
21+
<Directory Id="_usr_include_clang_c" Name="clang-c" />
22+
<Directory Id="_usr_include_indexstore" Name="indexstore" />
23+
</Directory>
24+
<Directory Id="_usr_lib" Name="lib">
25+
<Directory Id="_usr_lib_swift" Name="swift">
26+
<Directory Id="_usr_lib_swift_pm" Name="pm">
27+
<Directory Id="_usr_lib_swift_pm_ManifestAPI" Name="ManifestAPI" />
28+
<Directory Id="_usr_lib_swift_pm_PluginAPI" Name="PluginAPI" />
29+
</Directory>
30+
</Directory>
31+
</Directory>
32+
</Directory>
33+
</Directory>
34+
</Directory>
35+
</Directory>
36+
</StandardDirectory>
37+
38+
<ComponentGroup Id="clang">
39+
<Component Directory="_usr_bin" Id="clang_format.exe">
40+
<File Id="clang_format.exe" Source="$(var.TOOLCHAIN_ROOT)\usr\bin\clang-format.exe" Checksum="yes" KeyPath="yes" />
41+
</Component>
42+
43+
<Component Directory="_usr_bin" Id="clang_tidy.exe">
44+
<File Id="clang_tidy.exe" Source="$(var.TOOLCHAIN_ROOT)\usr\bin\clang-tidy.exe" Checksum="yes" KeyPath="yes" />
45+
</Component>
46+
</ComponentGroup>
47+
48+
<ComponentGroup Id="libclang">
49+
<Component Directory="_usr_bin" Id="libclang.dll">
50+
<File Id="libclang.dll" Source="$(var.TOOLCHAIN_ROOT)\usr\bin\libclang.dll" Checksum="yes" KeyPath="yes" />
51+
</Component>
52+
53+
<Component Directory="_usr_lib" Id="libclang.lib">
54+
<File Id="libclang.lib" Source="$(var.TOOLCHAIN_ROOT)\usr\lib\libclang.lib" Checksum="yes" KeyPath="yes" />
55+
</Component>
56+
57+
<Component Directory="_usr_include_clang_c" Id="BuildSystem.h">
58+
<File Id="BuildSystem.h" Source="$(var.TOOLCHAIN_ROOT)\usr\include\clang-c\BuildSystem.h" Checksum="yes" KeyPath="yes" />
59+
</Component>
60+
<Component Directory="_usr_include_clang_c" Id="CXCompilationDatabase.h">
61+
<File Id="CXCompilationDatabase.h" Source="$(var.TOOLCHAIN_ROOT)\usr\include\clang-c\CXCompilationDatabase.h" Checksum="yes" KeyPath="yes" />
62+
</Component>
63+
<Component Directory="_usr_include_clang_c" Id="CXErrorCode.h">
64+
<File Id="CXErrorCode.h" Source="$(var.TOOLCHAIN_ROOT)\usr\include\clang-c\CXErrorCode.h" Checksum="yes" KeyPath="yes" />
65+
</Component>
66+
<Component Directory="_usr_include_clang_c" Id="CXString.h">
67+
<File Id="CXString.h" Source="$(var.TOOLCHAIN_ROOT)\usr\include\clang-c\CXString.h" Checksum="yes" KeyPath="yes" />
68+
</Component>
69+
<Component Directory="_usr_include_clang_c" Id="Documentation.h">
70+
<File Id="Documentation.h" Source="$(var.TOOLCHAIN_ROOT)\usr\include\clang-c\Documentation.h" Checksum="yes" KeyPath="yes" />
71+
</Component>
72+
<Component Directory="_usr_include_clang_c" Id="FatalErrorHandler.h">
73+
<File Id="FatalErrorHandler.h" Source="$(var.TOOLCHAIN_ROOT)\usr\include\clang-c\FatalErrorHandler.h" Checksum="yes" KeyPath="yes" />
74+
</Component>
75+
<Component Directory="_usr_include_clang_c" Id="Index.h">
76+
<File Id="Index.h" Source="$(var.TOOLCHAIN_ROOT)\usr\include\clang-c\Index.h" Checksum="yes" KeyPath="yes" />
77+
</Component>
78+
<Component Directory="_usr_include_clang_c" Id="Platform.h">
79+
<File Id="Platform.h" Source="$(var.TOOLCHAIN_ROOT)\usr\include\clang-c\Platform.h" Checksum="yes" KeyPath="yes" />
80+
</Component>
81+
<Component Directory="_usr_include_clang_c" Id="Refactor.h">
82+
<File Id="Refactor.h" Source="$(var.TOOLCHAIN_ROOT)\usr\include\clang-c\Refactor.h" Checksum="yes" KeyPath="yes" />
83+
</Component>
84+
</ComponentGroup>
85+
86+
<ComponentGroup Id="IndexStore">
87+
<Component Directory="_usr_bin" Id="libIndexStore.dll">
88+
<File Id="libIndexStore.dll" Source="$(var.TOOLCHAIN_ROOT)\usr\bin\libIndexStore.dll" Checksum="yes" KeyPath="yes" />
89+
</Component>
90+
91+
<Component Directory="_usr_lib" Id="libIndexStore.lib">
92+
<File Id="libIndexStore.lib" Source="$(var.TOOLCHAIN_ROOT)\usr\lib\libIndexStore.lib" Checksum="yes" KeyPath="yes" />
93+
</Component>
94+
95+
<Component Directory="_usr_include_indexstore" Id="indexstore.h">
96+
<File Id="indexstore.h" Source="$(var.TOOLCHAIN_ROOT)\usr\local\include\indexstore\indexstore.h" Checksum="yes" KeyPath="yes" />
97+
</Component>
98+
<Component Directory="_usr_include_indexstore" Id="IndexStoreCXX.h">
99+
<File Id="IndexStoreCXX.h" Source="$(var.TOOLCHAIN_ROOT)\usr\local\include\indexstore\IndexStoreCXX.h" Checksum="yes" KeyPath="yes" />
100+
</Component>
101+
</ComponentGroup>
102+
103+
<ComponentGroup Id="_InternalSwiftScan">
104+
<Component Directory="_usr_bin" Id="_InternalSwiftScan.dll">
105+
<File Id="_InternalSwiftScan.dll" Source="$(var.TOOLCHAIN_ROOT)\usr\bin\_InternalSwiftScan.dll" Checksum="yes" KeyPath="yes" />
106+
</Component>
107+
108+
<Component Directory="_usr_lib" Id="_InternalSwiftScan.lib">
109+
<File Id="_InternalSwiftScan.lib" Source="$(var.TOOLCHAIN_ROOT)\usr\lib\swift\windows\_InternalSwiftScan.lib" Checksum="yes" KeyPath="yes" />
110+
</Component>
111+
112+
<Component Directory="_usr_include__InternalSwiftScan" Id="DependencyScan.h">
113+
<File Id="DependencyScan.h" Source="$(var.TOOLCHAIN_ROOT)\usr\lib\swift\_InternalSwiftScan\DependencyScan.h" Checksum="yes" KeyPath="yes" />
114+
</Component>
115+
<Component Directory="_usr_include__InternalSwiftScan" Id="DependencyScanMacros.h">
116+
<File Id="DependencyScanMacros.h" Source="$(var.TOOLCHAIN_ROOT)\usr\lib\swift\_InternalSwiftScan\DependencyScanMacros.h" Checksum="yes" KeyPath="yes" />
117+
</Component>
118+
<Component Directory="_usr_include__InternalSwiftScan" Id="_InternalSwiftScan.modulemap">
119+
<File Id="_InternalSwiftScan.modulemap" Source="$(var.TOOLCHAIN_ROOT)\usr\lib\swift\_InternalSwiftScan\module.modulemap" Checksum="yes" KeyPath="yes" />
120+
</Component>
121+
</ComponentGroup>
122+
123+
<ComponentGroup Id="collections">
124+
<Component Directory="_usr_bin" Id="Collections.dll">
125+
<File Id="Collections.dll" Source="$(var.DEVTOOLS_ROOT)\usr\bin\Collections.dll" Checksum="yes" KeyPath="yes" />
126+
</Component>
127+
<Component Directory="_usr_bin" Id="DequeModule.dll">
128+
<File Id="DequeModule.dll" Source="$(var.DEVTOOLS_ROOT)\usr\bin\DequeModule.dll" Checksum="yes" KeyPath="yes" />
129+
</Component>
130+
<Component Directory="_usr_bin" Id="OrderedCollections.dll">
131+
<File Id="OrderedCollections.dll" Source="$(var.DEVTOOLS_ROOT)\usr\bin\OrderedCollections.dll" Checksum="yes" KeyPath="yes" />
132+
</Component>
133+
</ComponentGroup>
134+
135+
<ComponentGroup Id="llbuild">
136+
<Component Directory="_usr_bin" Id="llbuildSwift.dll">
137+
<File Id="llbuildSwift.dll" Source="$(var.DEVTOOLS_ROOT)\usr\bin\llbuildSwift.dll" Checksum="yes" KeyPath="yes" />
138+
</Component>
139+
</ComponentGroup>
140+
141+
<ComponentGroup Id="system">
142+
<Component Directory="_usr_bin" Id="SystemPackage.dll">
143+
<File Id="SystemPackage.dll" Source="$(var.DEVTOOLS_ROOT)\usr\bin\SystemPackage.dll" Checksum="yes" KeyPath="yes" />
144+
</Component>
145+
</ComponentGroup>
146+
147+
<ComponentGroup Id="CompilerPluginSupport">
148+
<Component Directory="_usr_lib_swift_pm_ManifestAPI" Id="CompilerPluginSupport.dll">
149+
<File Id="CompilerPluginSupport.dll" Source="$(var.DEVTOOLS_ROOT)\usr\lib\swift\pm\ManifestAPI\CompilerPluginSupport.dll" Checksum="yes" KeyPath="yes" />
150+
</Component>
151+
<Component Directory="_usr_lib_swift_pm_ManifestAPI" Id="CompilerPluginSupport.lib">
152+
<File Id="CompilerPluginSupport.lib" Source="$(var.DEVTOOLS_ROOT)\usr\lib\swift\pm\ManifestAPI\CompilerPluginSupport.lib" Checksum="yes" KeyPath="yes" />
153+
</Component>
154+
<Component Directory="_usr_lib_swift_pm_ManifestAPI" Id="CompilerPluginSupport.swiftdoc">
155+
<File Id="CompilerPluginSupport.swiftdoc" Source="$(var.DEVTOOLS_ROOT)\usr\lib\swift\pm\ManifestAPI\CompilerPluginSupport.swiftdoc" Checksum="yes" KeyPath="yes" />
156+
</Component>
157+
<Component Directory="_usr_lib_swift_pm_ManifestAPI" Id="CompilerPluginSupport.swiftmodule">
158+
<File Id="CompilerPluginSupport.swiftmodule" Source="$(var.DEVTOOLS_ROOT)\usr\lib\swift\pm\ManifestAPI\CompilerPluginSupport.swiftmodule" Checksum="yes" KeyPath="yes" />
159+
</Component>
160+
</ComponentGroup>
161+
162+
<ComponentGroup Id="PackageDescription">
163+
<Component Directory="_usr_lib_swift_pm_ManifestAPI" Id="PackageDescription.dll">
164+
<File Id="PackageDescription.dll" Source="$(var.DEVTOOLS_ROOT)\usr\lib\swift\pm\ManifestAPI\PackageDescription.dll" Checksum="yes" KeyPath="yes" />
165+
</Component>
166+
<Component Directory="_usr_lib_swift_pm_ManifestAPI" Id="PackageDescription.lib">
167+
<File Id="PackageDescription.lib" Source="$(var.DEVTOOLS_ROOT)\usr\lib\swift\pm\ManifestAPI\PackageDescription.lib" Checksum="yes" KeyPath="yes" />
168+
</Component>
169+
<Component Directory="_usr_lib_swift_pm_ManifestAPI" Id="PackageDescription.swiftdoc">
170+
<File Id="PackageDescription.swiftdoc" Source="$(var.DEVTOOLS_ROOT)\usr\lib\swift\pm\ManifestAPI\PackageDescription.swiftdoc" Checksum="yes" KeyPath="yes" />
171+
</Component>
172+
<Component Directory="_usr_lib_swift_pm_ManifestAPI" Id="PackageDescription.swiftmodule">
173+
<File Id="PackageDescription.swiftmodule" Source="$(var.DEVTOOLS_ROOT)\usr\lib\swift\pm\ManifestAPI\PackageDescription.swiftmodule" Checksum="yes" KeyPath="yes" />
174+
</Component>
175+
</ComponentGroup>
176+
177+
<ComponentGroup Id="PackagePlugin">
178+
<Component Directory="_usr_lib_swift_pm_PluginAPI" Id="PackagePlugin.dll">
179+
<File Id="PackagePlugin.dll" Source="$(var.DEVTOOLS_ROOT)\usr\lib\swift\pm\PluginAPI\PackagePlugin.dll" Checksum="yes" KeyPath="yes" />
180+
</Component>
181+
<Component Directory="_usr_lib_swift_pm_PluginAPI" Id="PackagePlugin.lib">
182+
<File Id="PackagePlugin.lib" Source="$(var.DEVTOOLS_ROOT)\usr\lib\swift\pm\PluginAPI\PackagePlugin.lib" Checksum="yes" KeyPath="yes" />
183+
</Component>
184+
<Component Directory="_usr_lib_swift_pm_PluginAPI" Id="PackagePlugin.swiftdoc">
185+
<File Id="PackagePlugin.swiftdoc" Source="$(var.DEVTOOLS_ROOT)\usr\lib\swift\pm\PluginAPI\PackagePlugin.swiftdoc" Checksum="yes" KeyPath="yes" />
186+
</Component>
187+
<Component Directory="_usr_lib_swift_pm_PluginAPI" Id="PackagePlugin.swiftmodule">
188+
<File Id="PackagePlugin.swiftmodule" Source="$(var.DEVTOOLS_ROOT)\usr\lib\swift\pm\PluginAPI\PackagePlugin.swiftmodule" Checksum="yes" KeyPath="yes" />
189+
</Component>
190+
</ComponentGroup>
191+
192+
<ComponentGroup Id="package_manager">
193+
<ComponentGroupRef Id="CompilerPluginSupport" />
194+
<ComponentGroupRef Id="PackageDescription" />
195+
<ComponentGroupRef Id="PackagePlugin" />
196+
197+
<Component Directory="_usr_bin" Id="swift_build.exe">
198+
<File Id="swift_build.exe" Source="$(var.DEVTOOLS_ROOT)\usr\bin\swift-build.exe" Checksum="yes" KeyPath="yes" />
199+
</Component>
200+
<Component Directory="_usr_bin" Id="swift_package.exe">
201+
<File Id="swift_package.exe" Source="$(var.DEVTOOLS_ROOT)\usr\bin\swift-package.exe" Checksum="yes" KeyPath="yes" />
202+
</Component>
203+
<Component Directory="_usr_bin" Id="swift_run.exe">
204+
<File Id="swift_run.exe" Source="$(var.DEVTOOLS_ROOT)\usr\bin\swift-run.exe" Checksum="yes" KeyPath="yes" />
205+
</Component>
206+
<Component Directory="_usr_bin" Id="swift_test.exe">
207+
<File Id="swift_test.exe" Source="$(var.DEVTOOLS_ROOT)\usr\bin\swift-test.exe" Checksum="yes" KeyPath="yes" />
208+
</Component>
209+
210+
<Component Directory="_usr_bin" Id="Basics.dll">
211+
<File Id="Basics.dll" Source="$(var.DEVTOOLS_ROOT)\usr\bin\Basics.dll" Checksum="yes" KeyPath="yes" />
212+
</Component>
213+
<Component Directory="_usr_bin" Id="Build.dll">
214+
<File Id="Build.dll" Source="$(var.DEVTOOLS_ROOT)\usr\bin\Build.dll" Checksum="yes" KeyPath="yes" />
215+
</Component>
216+
<Component Directory="_usr_bin" Id="Commands.dll">
217+
<File Id="Commands.dll" Source="$(var.DEVTOOLS_ROOT)\usr\bin\Commands.dll" Checksum="yes" KeyPath="yes" />
218+
</Component>
219+
<Component Directory="_usr_bin" Id="CoreCommands.dll">
220+
<File Id="CoreCommands.dll" Source="$(var.DEVTOOLS_ROOT)\usr\bin\CoreCommands.dll" Checksum="yes" KeyPath="yes" />
221+
</Component>
222+
<Component Directory="_usr_bin" Id="DriverSupport.dll">
223+
<File Id="DriverSupport.dll" Source="$(var.DEVTOOLS_ROOT)\usr\bin\DriverSupport.dll" Checksum="yes" KeyPath="yes" />
224+
</Component>
225+
<Component Directory="_usr_bin" Id="PackageGraph.dll">
226+
<File Id="PackageGraph.dll" Source="$(var.DEVTOOLS_ROOT)\usr\bin\PackageGraph.dll" Checksum="yes" KeyPath="yes" />
227+
</Component>
228+
<Component Directory="_usr_bin" Id="PackageLoading.dll">
229+
<File Id="PackageLoading.dll" Source="$(var.DEVTOOLS_ROOT)\usr\bin\PackageLoading.dll" Checksum="yes" KeyPath="yes" />
230+
</Component>
231+
<Component Directory="_usr_bin" Id="PackageModel.dll">
232+
<File Id="PackageModel.dll" Source="$(var.DEVTOOLS_ROOT)\usr\bin\PackageModel.dll" Checksum="yes" KeyPath="yes" />
233+
</Component>
234+
<Component Directory="_usr_bin" Id="SPMBuildCore.dll">
235+
<File Id="SPMBuildCore.dll" Source="$(var.DEVTOOLS_ROOT)\usr\bin\SPMBuildCore.dll" Checksum="yes" KeyPath="yes" />
236+
</Component>
237+
<Component Directory="_usr_bin" Id="Workspace.dll">
238+
<File Id="Workspace.dll" Source="$(var.DEVTOOLS_ROOT)\usr\bin\Workspace.dll" Checksum="yes" KeyPath="yes" />
239+
</Component>
240+
241+
<!-- FIXME(compnerd) we should include the SPM import libraries -->
242+
</ComponentGroup>
243+
244+
<Feature Id="CLITools" AllowAbsent="no" AllowAdvertise="yes" ConfigurableDirectory="INSTALLDIR" Description="Swift Command Line Tools" Level="1" Title="Swift Command Line Tools">
245+
<ComponentGroupRef Id="clang" />
246+
<ComponentGroupRef Id="libclang" />
247+
<ComponentGroupRef Id="IndexStore" />
248+
249+
<ComponentGroupRef Id="_InternalSwiftScan" />
250+
251+
<ComponentGroupRef Id="collections" />
252+
<ComponentGroupRef Id="llbuild" />
253+
<ComponentGroupRef Id="system" />
254+
<ComponentGroupRef Id="package_manager" />
255+
</Feature>
256+
257+
<UI>
258+
<ui:WixUI Id="WixUI_InstallDir" />
259+
<Publish Dialog="WelcomeDlg" Control="Next" Event="NewDialog" Value="InstallDirDlg" Order="2" />
260+
<Publish Dialog="InstallDirDlg" Control="Back" Event="NewDialog" Value="WelcomeDlg" Order="2" />
261+
</UI>
262+
263+
<Property Id="WIXUI_INSTALLDIR" Value="INSTALLDIR"></Property>
264+
265+
<WixVariable Id="WixUIDialogBmp" Value="Resources\swift_dialog.png" />
266+
<WixVariable Id="WixUIBannerBmp" Value="Resources\swift_banner.png" />
267+
</Package>
268+
</Wix>

platforms/Windows/version.wxi platforms/Windows/config.wxi

-8
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,6 @@
11
<?xml version='1.0' encoding='utf-8'?>
22

33
<Include>
4-
<?if $(var.ProductVersion) = "0.0.0"?>
5-
<?define RuntimeName = "runtime-development"?>
6-
<?define ToolchainName = "unknown-Asserts-development.xctoolchain"?>
7-
<?else?>
8-
<?define RuntimeName = "runtime-$(var.ProductVersion)"?>
9-
<?define ToolchainName = "unknown-Asserts-$(var.ProductVersion).xctoolchain"?>
10-
<?endif?>
11-
124
<?if $(var.ProductArchitecture) = "amd64"?>
135
<?define ProcessorArchitecture = "AMD64"?>
146
<?elseif $(var.ProductArchitecture) = "arm64"?>

0 commit comments

Comments
 (0)