Skip to content

Commit 84aad54

Browse files
committed
WiX: move and rename toolchains on Windows
Migrate the default toolchain location from `%SystemDrive%` to `%ProgramFiles%\Swift\Toolchains` before beginning the work to split up the toolchain components. Because the toolchain is now installed into a vendor indicating path (`Swift`), it seems unnecessary to add the triple-compliant vendor spelling into the toolchain identifier. Dropping the `unknown-` prefix leaves `Asserts-[version]`. Rewrite this into a [SemVer](https://semver.org) compliant spelling of `[version]+Asserts`. We simply propagate the previous `0.0.0` version number as the spelling of `development`. This makes a main snapshot and local development version identifier `0.0.0+Asserts`. The preservation of the `Asserts` as a build modifier is to help enable the parallel installation of a (unsupported) `NoAsserts` variant in case a small performance gain is worth the risk of invalid code generation. This installation naming matches the behaviour of Microsoft and .NET Core.
1 parent 068c8a9 commit 84aad54

File tree

3 files changed

+581
-598
lines changed

3 files changed

+581
-598
lines changed

platforms/Windows/devtools.wxs

Lines changed: 118 additions & 125 deletions
Original file line numberDiff line numberDiff line change
@@ -11,131 +11,124 @@
1111

1212
<Media Id="1" Cabinet="devtools.cab" EmbedCab="yes" />
1313

14-
<!-- WindowsVolume is not a StandardDirectory value, but rather a standard property. See https://github.com/wixtoolset/issues/issues/7314 -->
15-
<SetDirectory Id="WINDOWSVOLUME" Value="[WindowsVolume]" />
16-
17-
<Directory ComponentGuidGenerationSeed="61297eca-77a2-4749-b2f7-3b7ae6304140" Id="WINDOWSVOLUME">
18-
<Directory Id="INSTALLDIR">
19-
<Directory Id="Library" Name="Library">
20-
<Directory Id="Developer" Name="Developer">
21-
<Directory Id="Toolchains" Name="Toolchains">
22-
<Directory Id="xctoolchain" Name="$(var.ToolchainName)">
23-
<Directory Id="_usr" Name="usr">
24-
<Directory Id="_usr_bin" Name="bin">
25-
<!-- swift-collections -->
26-
<Component Id="Collections.dll">
27-
<File Id="Collections.dll" Source="$(var.DEVTOOLS_ROOT)\usr\bin\Collections.dll" Checksum="yes" />
28-
</Component>
29-
<Component Id="DequeModule.dll">
30-
<File Id="DequeModule.dll" Source="$(var.DEVTOOLS_ROOT)\usr\bin\DequeModule.dll" Checksum="yes" />
31-
</Component>
32-
<Component Id="OrderedCollections.dll">
33-
<File Id="OrderedCollections.dll" Source="$(var.DEVTOOLS_ROOT)\usr\bin\OrderedCollections.dll" Checksum="yes" />
34-
</Component>
35-
36-
<!-- swift-system -->
37-
<Component Id="SystemPackage.dll">
38-
<File Id="SystemPackage.dll" Source="$(var.DEVTOOLS_ROOT)\usr\bin\SystemPackage.dll" Checksum="yes" />
39-
</Component>
40-
41-
<!-- swift-package-manager -->
42-
<Component Id="Basics.dll">
43-
<File Id="Basics.dll" Source="$(var.DEVTOOLS_ROOT)\usr\bin\Basics.dll" Checksum="yes" />
44-
</Component>
45-
<Component Id="Build.dll">
46-
<File Id="Build.dll" Source="$(var.DEVTOOLS_ROOT)\usr\bin\Build.dll" Checksum="yes" />
47-
</Component>
48-
<Component Id="Commands.dll">
49-
<File Id="Commands.dll" Source="$(var.DEVTOOLS_ROOT)\usr\bin\Commands.dll" Checksum="yes" />
50-
</Component>
51-
<Component Id="CoreCommands.dll">
52-
<File Id="CoreCommands.dll" Source="$(var.DEVTOOLS_ROOT)\usr\bin\CoreCommands.dll" Checksum="yes" />
53-
</Component>
54-
<Component Id="DriverSupport.dll">
55-
<File Id="DriverSupport.dll" Source="$(var.DEVTOOLS_ROOT)\usr\bin\DriverSupport.dll" Checksum="yes" />
56-
</Component>
57-
<Component Id="PackageGraph.dll">
58-
<File Id="PackageGraph.dll" Source="$(var.DEVTOOLS_ROOT)\usr\bin\PackageGraph.dll" Checksum="yes" />
59-
</Component>
60-
<Component Id="PackageLoading.dll">
61-
<File Id="PackageLoading.dll" Source="$(var.DEVTOOLS_ROOT)\usr\bin\PackageLoading.dll" Checksum="yes" />
62-
</Component>
63-
<Component Id="PackageModel.dll">
64-
<File Id="PackageModel.dll" Source="$(var.DEVTOOLS_ROOT)\usr\bin\PackageModel.dll" Checksum="yes" />
65-
</Component>
66-
<Component Id="SPMBuildCore.dll">
67-
<File Id="SPMBuildCore.dll" Source="$(var.DEVTOOLS_ROOT)\usr\bin\SPMBuildCore.dll" Checksum="yes" />
68-
</Component>
69-
<Component Id="Workspace.dll">
70-
<File Id="Workspace.dll" Source="$(var.DEVTOOLS_ROOT)\usr\bin\Workspace.dll" Checksum="yes" />
71-
</Component>
72-
73-
<Component Id="swift_build.exe">
74-
<File Id="swift_build.exe" Source="$(var.DEVTOOLS_ROOT)\usr\bin\swift-build.exe" Checksum="yes" />
75-
</Component>
76-
<Component Id="swift_package.exe">
77-
<File Id="swift_package.exe" Source="$(var.DEVTOOLS_ROOT)\usr\bin\swift-package.exe" Checksum="yes" />
78-
</Component>
79-
<Component Id="swift_run.exe">
80-
<File Id="swift_run.exe" Source="$(var.DEVTOOLS_ROOT)\usr\bin\swift-run.exe" Checksum="yes" />
81-
</Component>
82-
<Component Id="swift_test.exe">
83-
<File Id="swift_test.exe" Source="$(var.DEVTOOLS_ROOT)\usr\bin\swift-test.exe" Checksum="yes" />
84-
</Component>
85-
86-
<!-- sourcekit-lsp -->
87-
<Component Id="sourcekit_lsp.exe">
88-
<File Id="sourcekit_lsp.exe" Source="$(var.DEVTOOLS_ROOT)\usr\bin\sourcekit-lsp.exe" Checksum="yes" />
89-
</Component>
90-
</Directory>
14+
<StandardDirectory Id="ProgramFiles6432Folder">
15+
<Directory Id="INSTALLDIR" Name="Swift">
16+
<Directory Id="Toolchains" Name="Toolchains">
17+
<Directory Id="xctoolchain" Name="$(var.ProductVersion)+Asserts">
18+
<Directory Id="_usr" Name="usr">
19+
<Directory Id="_usr_bin" Name="bin">
20+
<!-- swift-collections -->
21+
<Component Id="Collections.dll">
22+
<File Id="Collections.dll" Source="$(var.DEVTOOLS_ROOT)\usr\bin\Collections.dll" Checksum="yes" />
23+
</Component>
24+
<Component Id="DequeModule.dll">
25+
<File Id="DequeModule.dll" Source="$(var.DEVTOOLS_ROOT)\usr\bin\DequeModule.dll" Checksum="yes" />
26+
</Component>
27+
<Component Id="OrderedCollections.dll">
28+
<File Id="OrderedCollections.dll" Source="$(var.DEVTOOLS_ROOT)\usr\bin\OrderedCollections.dll" Checksum="yes" />
29+
</Component>
30+
31+
<!-- swift-system -->
32+
<Component Id="SystemPackage.dll">
33+
<File Id="SystemPackage.dll" Source="$(var.DEVTOOLS_ROOT)\usr\bin\SystemPackage.dll" Checksum="yes" />
34+
</Component>
35+
36+
<!-- swift-package-manager -->
37+
<Component Id="Basics.dll">
38+
<File Id="Basics.dll" Source="$(var.DEVTOOLS_ROOT)\usr\bin\Basics.dll" Checksum="yes" />
39+
</Component>
40+
<Component Id="Build.dll">
41+
<File Id="Build.dll" Source="$(var.DEVTOOLS_ROOT)\usr\bin\Build.dll" Checksum="yes" />
42+
</Component>
43+
<Component Id="Commands.dll">
44+
<File Id="Commands.dll" Source="$(var.DEVTOOLS_ROOT)\usr\bin\Commands.dll" Checksum="yes" />
45+
</Component>
46+
<Component Id="CoreCommands.dll">
47+
<File Id="CoreCommands.dll" Source="$(var.DEVTOOLS_ROOT)\usr\bin\CoreCommands.dll" Checksum="yes" />
48+
</Component>
49+
<Component Id="DriverSupport.dll">
50+
<File Id="DriverSupport.dll" Source="$(var.DEVTOOLS_ROOT)\usr\bin\DriverSupport.dll" Checksum="yes" />
51+
</Component>
52+
<Component Id="PackageGraph.dll">
53+
<File Id="PackageGraph.dll" Source="$(var.DEVTOOLS_ROOT)\usr\bin\PackageGraph.dll" Checksum="yes" />
54+
</Component>
55+
<Component Id="PackageLoading.dll">
56+
<File Id="PackageLoading.dll" Source="$(var.DEVTOOLS_ROOT)\usr\bin\PackageLoading.dll" Checksum="yes" />
57+
</Component>
58+
<Component Id="PackageModel.dll">
59+
<File Id="PackageModel.dll" Source="$(var.DEVTOOLS_ROOT)\usr\bin\PackageModel.dll" Checksum="yes" />
60+
</Component>
61+
<Component Id="SPMBuildCore.dll">
62+
<File Id="SPMBuildCore.dll" Source="$(var.DEVTOOLS_ROOT)\usr\bin\SPMBuildCore.dll" Checksum="yes" />
63+
</Component>
64+
<Component Id="Workspace.dll">
65+
<File Id="Workspace.dll" Source="$(var.DEVTOOLS_ROOT)\usr\bin\Workspace.dll" Checksum="yes" />
66+
</Component>
67+
68+
<Component Id="swift_build.exe">
69+
<File Id="swift_build.exe" Source="$(var.DEVTOOLS_ROOT)\usr\bin\swift-build.exe" Checksum="yes" />
70+
</Component>
71+
<Component Id="swift_package.exe">
72+
<File Id="swift_package.exe" Source="$(var.DEVTOOLS_ROOT)\usr\bin\swift-package.exe" Checksum="yes" />
73+
</Component>
74+
<Component Id="swift_run.exe">
75+
<File Id="swift_run.exe" Source="$(var.DEVTOOLS_ROOT)\usr\bin\swift-run.exe" Checksum="yes" />
76+
</Component>
77+
<Component Id="swift_test.exe">
78+
<File Id="swift_test.exe" Source="$(var.DEVTOOLS_ROOT)\usr\bin\swift-test.exe" Checksum="yes" />
79+
</Component>
80+
81+
<!-- sourcekit-lsp -->
82+
<Component Id="sourcekit_lsp.exe">
83+
<File Id="sourcekit_lsp.exe" Source="$(var.DEVTOOLS_ROOT)\usr\bin\sourcekit-lsp.exe" Checksum="yes" />
84+
</Component>
85+
</Directory>
86+
87+
<Directory Id="_usr_lib" Name="lib">
88+
<!-- FIXME(compnerd) should we include the SPM import libraries? -->
89+
<Directory Id="_usr_lib_swift" Name="swift">
90+
<Directory Id="_usr_lib_swift_pm" Name="pm">
91+
<Directory Id="_usr_lib_swift_pm_ManifestAPI" Name="ManifestAPI">
92+
<Component Id="PackageDescription.dll">
93+
<File Id="PackageDescription.dll" Source="$(var.DEVTOOLS_ROOT)\usr\lib\swift\pm\ManifestAPI\PackageDescription.dll" Checksum="yes" />
94+
</Component>
95+
<Component Id="PackageDescription.lib">
96+
<File Id="PackageDescription.lib" Source="$(var.DEVTOOLS_ROOT)\usr\lib\swift\pm\ManifestAPI\PackageDescription.lib" Checksum="yes" />
97+
</Component>
98+
<Component Id="PackageDescription.swiftdoc">
99+
<File Id="PackageDescription.swiftdoc" Source="$(var.DEVTOOLS_ROOT)\usr\lib\swift\pm\ManifestAPI\PackageDescription.swiftdoc" Checksum="yes" />
100+
</Component>
101+
<Component Id="PackageDescription.swiftmodule">
102+
<File Id="PackageDescription.swiftmodule" Source="$(var.DEVTOOLS_ROOT)\usr\lib\swift\pm\ManifestAPI\PackageDescription.swiftmodule" Checksum="yes" />
103+
</Component>
104+
105+
<Component Id="CompilerPluginSupport.dll">
106+
<File Id="CompilerPluginSupport.dll" Source="$(var.DEVTOOLS_ROOT)\usr\lib\swift\pm\ManifestAPI\CompilerPluginSupport.dll" Checksum="yes" />
107+
</Component>
108+
<Component Id="CompilerPluginSupport.lib">
109+
<File Id="CompilerPluginSupport.lib" Source="$(var.DEVTOOLS_ROOT)\usr\lib\swift\pm\ManifestAPI\CompilerPluginSupport.lib" Checksum="yes" />
110+
</Component>
111+
<Component Id="CompilerPluginSupport.swiftdoc">
112+
<File Id="CompilerPluginSupport.swiftdoc" Source="$(var.DEVTOOLS_ROOT)\usr\lib\swift\pm\ManifestAPI\CompilerPluginSupport.swiftdoc" Checksum="yes" />
113+
</Component>
114+
<Component Id="CompilerPluginSupport.swiftmodule">
115+
<File Id="CompilerPluginSupport.swiftmodule" Source="$(var.DEVTOOLS_ROOT)\usr\lib\swift\pm\ManifestAPI\CompilerPluginSupport.swiftmodule" Checksum="yes" />
116+
</Component>
117+
</Directory>
91118

92-
<Directory Id="_usr_lib" Name="lib">
93-
<!-- FIXME(compnerd) should we include the SPM import libraries? -->
94-
<Directory Id="_usr_lib_swift" Name="swift">
95-
<Directory Id="_usr_lib_swift_pm" Name="pm">
96-
<Directory Id="_usr_lib_swift_pm_ManifestAPI" Name="ManifestAPI">
97-
<Component Id="PackageDescription.dll">
98-
<File Id="PackageDescription.dll" Source="$(var.DEVTOOLS_ROOT)\usr\lib\swift\pm\ManifestAPI\PackageDescription.dll" Checksum="yes" />
99-
</Component>
100-
<Component Id="PackageDescription.lib">
101-
<File Id="PackageDescription.lib" Source="$(var.DEVTOOLS_ROOT)\usr\lib\swift\pm\ManifestAPI\PackageDescription.lib" Checksum="yes" />
102-
</Component>
103-
<Component Id="PackageDescription.swiftdoc">
104-
<File Id="PackageDescription.swiftdoc" Source="$(var.DEVTOOLS_ROOT)\usr\lib\swift\pm\ManifestAPI\PackageDescription.swiftdoc" Checksum="yes" />
105-
</Component>
106-
<Component Id="PackageDescription.swiftmodule">
107-
<File Id="PackageDescription.swiftmodule" Source="$(var.DEVTOOLS_ROOT)\usr\lib\swift\pm\ManifestAPI\PackageDescription.swiftmodule" Checksum="yes" />
108-
</Component>
109-
110-
<Component Id="CompilerPluginSupport.dll">
111-
<File Id="CompilerPluginSupport.dll" Source="$(var.DEVTOOLS_ROOT)\usr\lib\swift\pm\ManifestAPI\CompilerPluginSupport.dll" Checksum="yes" />
112-
</Component>
113-
<Component Id="CompilerPluginSupport.lib">
114-
<File Id="CompilerPluginSupport.lib" Source="$(var.DEVTOOLS_ROOT)\usr\lib\swift\pm\ManifestAPI\CompilerPluginSupport.lib" Checksum="yes" />
115-
</Component>
116-
<Component Id="CompilerPluginSupport.swiftdoc">
117-
<File Id="CompilerPluginSupport.swiftdoc" Source="$(var.DEVTOOLS_ROOT)\usr\lib\swift\pm\ManifestAPI\CompilerPluginSupport.swiftdoc" Checksum="yes" />
118-
</Component>
119-
<Component Id="CompilerPluginSupport.swiftmodule">
120-
<File Id="CompilerPluginSupport.swiftmodule" Source="$(var.DEVTOOLS_ROOT)\usr\lib\swift\pm\ManifestAPI\CompilerPluginSupport.swiftmodule" Checksum="yes" />
121-
</Component>
122-
</Directory>
123-
124-
<Directory Id="_usr_lib_swift_pm_PluginAPI" Name="PluginAPI">
125-
<Component Id="PackagePlugin.dll">
126-
<File Id="PackagePlugin.dll" Source="$(var.DEVTOOLS_ROOT)\usr\lib\swift\pm\PluginAPI\PackagePlugin.dll" Checksum="yes" />
127-
</Component>
128-
<Component Id="PackagePlugin.lib">
129-
<File Id="PackagePlugin.lib" Source="$(var.DEVTOOLS_ROOT)\usr\lib\swift\pm\PluginAPI\PackagePlugin.lib" Checksum="yes" />
130-
</Component>
131-
<Component Id="PackagePlugin.swiftdoc">
132-
<File Id="PackagePlugin.swiftdoc" Source="$(var.DEVTOOLS_ROOT)\usr\lib\swift\pm\PluginAPI\PackagePlugin.swiftdoc" Checksum="yes" />
133-
</Component>
134-
<Component Id="PackagePlugin.swiftmodule">
135-
<File Id="PackagePlugin.swiftmodule" Source="$(var.DEVTOOLS_ROOT)\usr\lib\swift\pm\PluginAPI\PackagePlugin.swiftmodule" Checksum="yes" />
136-
</Component>
137-
</Directory>
138-
</Directory>
119+
<Directory Id="_usr_lib_swift_pm_PluginAPI" Name="PluginAPI">
120+
<Component Id="PackagePlugin.dll">
121+
<File Id="PackagePlugin.dll" Source="$(var.DEVTOOLS_ROOT)\usr\lib\swift\pm\PluginAPI\PackagePlugin.dll" Checksum="yes" />
122+
</Component>
123+
<Component Id="PackagePlugin.lib">
124+
<File Id="PackagePlugin.lib" Source="$(var.DEVTOOLS_ROOT)\usr\lib\swift\pm\PluginAPI\PackagePlugin.lib" Checksum="yes" />
125+
</Component>
126+
<Component Id="PackagePlugin.swiftdoc">
127+
<File Id="PackagePlugin.swiftdoc" Source="$(var.DEVTOOLS_ROOT)\usr\lib\swift\pm\PluginAPI\PackagePlugin.swiftdoc" Checksum="yes" />
128+
</Component>
129+
<Component Id="PackagePlugin.swiftmodule">
130+
<File Id="PackagePlugin.swiftmodule" Source="$(var.DEVTOOLS_ROOT)\usr\lib\swift\pm\PluginAPI\PackagePlugin.swiftmodule" Checksum="yes" />
131+
</Component>
139132
</Directory>
140133
</Directory>
141134
</Directory>
@@ -144,7 +137,7 @@
144137
</Directory>
145138
</Directory>
146139
</Directory>
147-
</Directory>
140+
</StandardDirectory>
148141

149142
<Feature Id="DeveloperTools" AllowAbsent="no" AllowAdvertise="yes" ConfigurableDirectory="INSTALLDIR" Description="Swift Developer Tools" Level="1" Title="Swift Developer Tools">
150143
<!-- swift-collections -->

0 commit comments

Comments
 (0)