Skip to content

Commit fb22471

Browse files
WiX: Fix default Windows install directory regression from WiX v4 port (swiftlang#185)
* Fix regression on default install dir after wix v4 port * Switched to StandardDirectory for runtime wxs * Fixed WindowsVolume reference for C:\Library-targeting wxs's * Capitalized Swift under Program Files * Change overridable install dir to the level above Library * Uniformize comments
1 parent 2a30cde commit fb22471

12 files changed

+439
-408
lines changed

platforms/Windows/devtools-amd64.wxs

+20-16
Original file line numberDiff line numberDiff line change
@@ -14,20 +14,26 @@
1414
<?endif?>
1515

1616
<!-- Directory Structure -->
17-
<Directory Id="INSTALLDIR">
18-
<Directory Id="Developer" Name="Developer">
19-
<Directory Id="Toolchains" Name="Toolchains">
20-
<Directory Id="xctoolchain" Name="unknown-Asserts-development.xctoolchain">
21-
<Directory Id="_usr" Name="usr">
22-
<Directory Id="_usr_bin" Name="bin">
23-
</Directory>
24-
<Directory Id="_usr_lib" Name="lib">
25-
<!-- FIXME(compnerd) should we include the SPM import libraries? -->
26-
<Directory Id="_usr_lib_swift" Name="swift">
27-
<Directory Id="_usr_lib_swift_pm" Name="pm">
28-
<Directory Id="_usr_lib_swift_pm_ManifestAPI" Name="ManifestAPI">
29-
</Directory>
30-
<Directory Id="_usr_lib_swift_pm_PluginAPI" Name="PluginAPI">
17+
<!-- WindowsVolume is not a StandardDirectory value, but rather a standard property. See https://github.com/wixtoolset/issues/issues/7314 -->
18+
<SetDirectory Id="WINDOWSVOLUME" Value="[WindowsVolume]" />
19+
<Directory ComponentGuidGenerationSeed="07cd7a30-e084-447d-af16-ca3a013c5147" Id="WINDOWSVOLUME">
20+
<Directory Id="INSTALLDIR">
21+
<Directory Id="Library" Name="Library">
22+
<Directory Id="Developer" Name="Developer">
23+
<Directory Id="Toolchains" Name="Toolchains">
24+
<Directory Id="xctoolchain" Name="unknown-Asserts-development.xctoolchain">
25+
<Directory Id="_usr" Name="usr">
26+
<Directory Id="_usr_bin" Name="bin">
27+
</Directory>
28+
<Directory Id="_usr_lib" Name="lib">
29+
<!-- FIXME(compnerd) should we include the SPM import libraries? -->
30+
<Directory Id="_usr_lib_swift" Name="swift">
31+
<Directory Id="_usr_lib_swift_pm" Name="pm">
32+
<Directory Id="_usr_lib_swift_pm_ManifestAPI" Name="ManifestAPI">
33+
</Directory>
34+
<Directory Id="_usr_lib_swift_pm_PluginAPI" Name="PluginAPI">
35+
</Directory>
36+
</Directory>
3137
</Directory>
3238
</Directory>
3339
</Directory>
@@ -38,8 +44,6 @@
3844
</Directory>
3945
</Directory>
4046

41-
<SetDirectory Id="INSTALLDIR" Value="[WindowsVolume]Library" Condition="NOT INSTALLDIR" />
42-
4347
<!-- Components -->
4448
<ComponentGroup Id="SwiftCollections">
4549
<Component Id="Collections.dll" Directory="_usr_bin" Guid="fd0862f1-2e80-4040-8736-b73fc9c4230d">

platforms/Windows/devtools-arm64.wxs

+20-16
Original file line numberDiff line numberDiff line change
@@ -14,20 +14,26 @@
1414
<?endif?>
1515

1616
<!-- Directory Structure -->
17-
<Directory Id="INSTALLDIR">
18-
<Directory Id="Developer" Name="Developer">
19-
<Directory Id="Toolchains" Name="Toolchains">
20-
<Directory Id="xctoolchain" Name="unknown-Asserts-development.xctoolchain">
21-
<Directory Id="_usr" Name="usr">
22-
<Directory Id="_usr_bin" Name="bin">
23-
</Directory>
24-
<Directory Id="_usr_lib" Name="lib">
25-
<!-- FIXME(compnerd) should we include the SPM import libraries? -->
26-
<Directory Id="_usr_lib_swift" Name="swift">
27-
<Directory Id="_usr_lib_swift_pm" Name="pm">
28-
<Directory Id="_usr_lib_swift_pm_ManifestAPI" Name="ManifestAPI">
29-
</Directory>
30-
<Directory Id="_usr_lib_swift_pm_PluginAPI" Name="PluginAPI">
17+
<!-- WindowsVolume is not a StandardDirectory value, but rather a standard property. See https://github.com/wixtoolset/issues/issues/7314 -->
18+
<SetDirectory Id="WINDOWSVOLUME" Value="[WindowsVolume]" />
19+
<Directory ComponentGuidGenerationSeed="61297eca-77a2-4749-b2f7-3b7ae6304140" Id="WINDOWSVOLUME">
20+
<Directory Id="INSTALLDIR">
21+
<Directory Id="Library" Name="Library">
22+
<Directory Id="Developer" Name="Developer">
23+
<Directory Id="Toolchains" Name="Toolchains">
24+
<Directory Id="xctoolchain" Name="unknown-Asserts-development.xctoolchain">
25+
<Directory Id="_usr" Name="usr">
26+
<Directory Id="_usr_bin" Name="bin">
27+
</Directory>
28+
<Directory Id="_usr_lib" Name="lib">
29+
<!-- FIXME(compnerd) should we include the SPM import libraries? -->
30+
<Directory Id="_usr_lib_swift" Name="swift">
31+
<Directory Id="_usr_lib_swift_pm" Name="pm">
32+
<Directory Id="_usr_lib_swift_pm_ManifestAPI" Name="ManifestAPI">
33+
</Directory>
34+
<Directory Id="_usr_lib_swift_pm_PluginAPI" Name="PluginAPI">
35+
</Directory>
36+
</Directory>
3137
</Directory>
3238
</Directory>
3339
</Directory>
@@ -38,8 +44,6 @@
3844
</Directory>
3945
</Directory>
4046

41-
<SetDirectory Id="INSTALLDIR" Value="[WindowsVolume]Library" Condition="NOT INSTALLDIR" />
42-
4347
<!-- Components -->
4448
<ComponentGroup Id="SwiftCollections">
4549
<Component Id="Collections.dll" Directory="_usr_bin" Guid="b705e7a1-698a-4608-b53f-48578380696c">

platforms/Windows/runtime-amd64.wxs

+8-8
Original file line numberDiff line numberDiff line change
@@ -14,17 +14,17 @@
1414
<?endif?>
1515

1616
<!-- Directory Structure -->
17-
<Directory Id="INSTALLDIR">
18-
<!-- TODO(compnerd) use $(var.ProductVersion) -->
19-
<Directory Id="_" Name="runtime-development">
20-
<Directory Id="_usr" Name="usr">
21-
<Directory Id="_usr_bin" Name="bin">
17+
<StandardDirectory Id="ProgramFiles64Folder">
18+
<Directory Id="INSTALLDIR" Name="Swift">
19+
<!-- TODO(compnerd) use $(var.ProductVersion) -->
20+
<Directory Id="_" Name="runtime-development">
21+
<Directory Id="_usr" Name="usr">
22+
<Directory Id="_usr_bin" Name="bin">
23+
</Directory>
2224
</Directory>
2325
</Directory>
2426
</Directory>
25-
</Directory>
26-
27-
<SetDirectory Id="INSTALLDIR" Value="[ProgramFiles64Folder]swift" Condition="NOT INSTALLDIR" />
27+
</StandardDirectory>
2828

2929
<!-- Components -->
3030
<ComponentGroup Id="SwiftRuntime" Directory="_usr_bin">

platforms/Windows/runtime-arm64.wxs

+8-9
Original file line numberDiff line numberDiff line change
@@ -14,18 +14,17 @@
1414
<?endif?>
1515

1616
<!-- Directory Structure -->
17-
<Directory Id="INSTALLDIR">
18-
<!-- TODO(compnerd) use $(var.ProductVersion) -->
19-
<Directory Id="_" Name="runtime-development">
20-
<Directory Id="_usr" Name="usr">
21-
<Directory Id="_usr_bin" Name="bin">
17+
<StandardDirectory Id="ProgramFiles64Folder">
18+
<Directory Id="INSTALLDIR" Name="Swift">
19+
<!-- TODO(compnerd) use $(var.ProductVersion) -->
20+
<Directory Id="_" Name="runtime-development">
21+
<Directory Id="_usr" Name="usr">
22+
<Directory Id="_usr_bin" Name="bin">
23+
</Directory>
2224
</Directory>
2325
</Directory>
2426
</Directory>
25-
</Directory>
26-
27-
28-
<SetDirectory Id="INSTALLDIR" Value="[ProgramFiles64Folder]swift" Condition="NOT INSTALLDIR" />
27+
</StandardDirectory>
2928

3029
<!-- Components -->
3130
<ComponentGroup Id="SwiftRuntime" Directory="_usr_bin">

platforms/Windows/runtime-x86.wxs

+8-8
Original file line numberDiff line numberDiff line change
@@ -14,17 +14,17 @@
1414
<?endif?>
1515

1616
<!-- Directory Structure -->
17-
<Directory Id="INSTALLDIR">
18-
<!-- TODO(compnerd) use $(var.ProductVersion) -->
19-
<Directory Id="_" Name="runtime-development">
20-
<Directory Id="_usr" Name="usr">
21-
<Directory Id="_usr_bin" Name="bin">
17+
<StandardDirectory Id="ProgramFilesFolder">
18+
<Directory Id="INSTALLDIR" Name="Swift">
19+
<!-- TODO(compnerd) use $(var.ProductVersion) -->
20+
<Directory Id="_" Name="runtime-development">
21+
<Directory Id="_usr" Name="usr">
22+
<Directory Id="_usr_bin" Name="bin">
23+
</Directory>
2224
</Directory>
2325
</Directory>
2426
</Directory>
25-
</Directory>
26-
27-
<SetDirectory Id="INSTALLDIR" Value="[ProgramFilesFolder]swift" Condition="NOT INSTALLDIR" />
27+
</StandardDirectory>
2828

2929
<!-- Components -->
3030
<ComponentGroup Id="SwiftRuntime" Directory="_usr_bin">

platforms/Windows/sdk-amd64.wxs

+79-76
Original file line numberDiff line numberDiff line change
@@ -14,93 +14,99 @@
1414
<?endif?>
1515

1616
<!-- Directory Structure -->
17-
<Directory Id="INSTALLDIR">
18-
<Directory Id="Developer" Name="Developer">
19-
<Directory Id="DeveloperPlatforms" Name="Platforms">
20-
<Directory Id="WindowsPlatform" Name="Windows.platform">
21-
<Directory Id="WindowsPlatform_Developer" Name="Developer">
22-
<Directory Id="WindowsPlatform_Developer_Library" Name="Library">
23-
24-
<!-- XCTest -->
25-
<!--
26-
FIXME(compnerd) this should actually be the proper version
27-
of XCTest, and needs to be reflected in the plist as well.
28-
-->
29-
<Directory Id="XCTest" Name="XCTest-development">
30-
<Directory Id="XCTest_usr" Name="usr">
31-
<Directory Id="XCTest_usr_bin64" Name="bin64">
32-
</Directory>
33-
<Directory Id="XCTest_usr_lib" Name="lib">
34-
<Directory Id="XCTest_usr_lib_swift" Name="swift">
35-
<Directory Id="XCTest_usr_lib_swift_windows" Name="windows">
36-
<Directory Id="XCTest_usr_lib_swift_windows_x86_64" Name="x86_64">
37-
</Directory>
38-
<Directory Id="XCTest.swiftmodule" Name="XCTest.swiftmodule">
17+
<!-- WindowsVolume is not a StandardDirectory value, but rather a standard property. See https://github.com/wixtoolset/issues/issues/7314 -->
18+
<SetDirectory Id="WINDOWSVOLUME" Value="[WindowsVolume]" />
19+
<Directory ComponentGuidGenerationSeed="bedc1fea-99ee-40be-ab38-3101698f2c0b" Id="WINDOWSVOLUME">
20+
<Directory Id="INSTALLDIR">
21+
<Directory Id="Library" Name="Library">
22+
<Directory Id="Developer" Name="Developer">
23+
<Directory Id="DeveloperPlatforms" Name="Platforms">
24+
<Directory Id="WindowsPlatform" Name="Windows.platform">
25+
<Directory Id="WindowsPlatform_Developer" Name="Developer">
26+
<Directory Id="WindowsPlatform_Developer_Library" Name="Library">
27+
28+
<!-- XCTest -->
29+
<!--
30+
FIXME(compnerd) this should actually be the proper version
31+
of XCTest, and needs to be reflected in the plist as well.
32+
-->
33+
<Directory Id="XCTest" Name="XCTest-development">
34+
<Directory Id="XCTest_usr" Name="usr">
35+
<Directory Id="XCTest_usr_bin64" Name="bin64">
36+
</Directory>
37+
<Directory Id="XCTest_usr_lib" Name="lib">
38+
<Directory Id="XCTest_usr_lib_swift" Name="swift">
39+
<Directory Id="XCTest_usr_lib_swift_windows" Name="windows">
40+
<Directory Id="XCTest_usr_lib_swift_windows_x86_64" Name="x86_64">
41+
</Directory>
42+
<Directory Id="XCTest.swiftmodule" Name="XCTest.swiftmodule">
43+
</Directory>
44+
</Directory>
3945
</Directory>
4046
</Directory>
4147
</Directory>
4248
</Directory>
4349
</Directory>
44-
</Directory>
45-
</Directory>
4650

47-
<Directory Id="SDKs" Name="SDKs">
51+
<Directory Id="SDKs" Name="SDKs">
4852

49-
<!-- Windows.sdk -->
50-
<Directory Id="WindowsSDK" Name="Windows.sdk">
51-
<Directory Id="WindowsSDK_usr" Name="usr">
52-
<Directory Id="WindowsSDK_usr_include" Name="include">
53-
<Directory Id="WindowsSDK_usr_include_Block" Name="Block">
54-
</Directory>
55-
<Directory Id="WindowsSDK_usr_include_dispatch" Name="dispatch">
56-
</Directory>
57-
<Directory Id="WindowsSDK_usr_include_os" Name="os">
58-
</Directory>
59-
<Directory Id="WindowsSDK_usr_include_swift" Name="swift">
60-
<Directory Id="WindowsSDK_usr_include_swift_SwiftRemoteMirror" Name="SwiftRemoteMirror">
61-
</Directory>
62-
</Directory>
63-
</Directory>
64-
<Directory Id="WindowsSDK_usr_lib" Name="lib">
65-
<Directory Id="WindowsSDK_usr_lib_swift" Name="swift">
66-
<Directory Id="WindowsSDK_usr_lib_swift_shims" Name="shims">
67-
</Directory>
68-
<Directory Id="WindowsSDK_usr_lib_swift_windows" Name="windows">
69-
<Directory Id="_Concurrency.swiftmodule" Name="_Concurrency.swiftmodule">
70-
</Directory>
71-
<Directory Id="_Differentiation.swiftmodule" Name="_Differentiation.swiftmodule">
53+
<!-- Windows.sdk -->
54+
<Directory Id="WindowsSDK" Name="Windows.sdk">
55+
<Directory Id="WindowsSDK_usr" Name="usr">
56+
<Directory Id="WindowsSDK_usr_include" Name="include">
57+
<Directory Id="WindowsSDK_usr_include_Block" Name="Block">
7258
</Directory>
73-
<Directory Id="Distributed.swiftmodule" Name="Distributed.swiftmodule">
59+
<Directory Id="WindowsSDK_usr_include_dispatch" Name="dispatch">
7460
</Directory>
75-
<Directory Id="_RegexParser.swiftmodule" Name="_RegexParser.swiftmodule">
61+
<Directory Id="WindowsSDK_usr_include_os" Name="os">
7662
</Directory>
77-
<Directory Id="_StringProcessing.swiftmodule" Name="_StringProcessing.swiftmodule">
63+
<Directory Id="WindowsSDK_usr_include_swift" Name="swift">
64+
<Directory Id="WindowsSDK_usr_include_swift_SwiftRemoteMirror" Name="SwiftRemoteMirror">
65+
</Directory>
7866
</Directory>
79-
<Directory Id="CRT.swiftmodule" Name="CRT.swiftmodule">
80-
</Directory>
81-
<Directory Id="Cxx.swiftmodule" Name="Cxx.swiftmodule">
82-
</Directory>
83-
<Directory Id="Dispatch.swiftmodule" Name="Dispatch.swiftmodule">
84-
</Directory>
85-
<Directory Id="Foundation.swiftmodule" Name="Foundation.swiftmodule">
86-
</Directory>
87-
<Directory Id="FoundationNetworking.swiftmodule" Name="FoundationNetworking.swiftmodule">
88-
</Directory>
89-
<Directory Id="FoundationXML.swiftmodule" Name="FoundationXML.swiftmodule">
90-
</Directory>
91-
<Directory Id="Swift.swiftmodule" Name="Swift.swiftmodule">
92-
</Directory>
93-
<Directory Id="SwiftOnoneSupport.swiftmodule" Name="SwiftOnoneSupport.swiftmodule">
94-
</Directory>
95-
<Directory Id="WinSDK.swiftmodule" Name="WinSDK.swiftmodule">
96-
</Directory>
97-
<Directory Id="WindowsSDK_usr_lib_swift_windows_x86_64" Name="x86_64">
67+
</Directory>
68+
<Directory Id="WindowsSDK_usr_lib" Name="lib">
69+
<Directory Id="WindowsSDK_usr_lib_swift" Name="swift">
70+
<Directory Id="WindowsSDK_usr_lib_swift_shims" Name="shims">
71+
</Directory>
72+
<Directory Id="WindowsSDK_usr_lib_swift_windows" Name="windows">
73+
<Directory Id="_Concurrency.swiftmodule" Name="_Concurrency.swiftmodule">
74+
</Directory>
75+
<Directory Id="_Differentiation.swiftmodule" Name="_Differentiation.swiftmodule">
76+
</Directory>
77+
<Directory Id="Distributed.swiftmodule" Name="Distributed.swiftmodule">
78+
</Directory>
79+
<Directory Id="_RegexParser.swiftmodule" Name="_RegexParser.swiftmodule">
80+
</Directory>
81+
<Directory Id="_StringProcessing.swiftmodule" Name="_StringProcessing.swiftmodule">
82+
</Directory>
83+
<Directory Id="CRT.swiftmodule" Name="CRT.swiftmodule">
84+
</Directory>
85+
<Directory Id="Cxx.swiftmodule" Name="Cxx.swiftmodule">
86+
</Directory>
87+
<Directory Id="Dispatch.swiftmodule" Name="Dispatch.swiftmodule">
88+
</Directory>
89+
<Directory Id="Foundation.swiftmodule" Name="Foundation.swiftmodule">
90+
</Directory>
91+
<Directory Id="FoundationNetworking.swiftmodule" Name="FoundationNetworking.swiftmodule">
92+
</Directory>
93+
<Directory Id="FoundationXML.swiftmodule" Name="FoundationXML.swiftmodule">
94+
</Directory>
95+
<Directory Id="Swift.swiftmodule" Name="Swift.swiftmodule">
96+
</Directory>
97+
<Directory Id="SwiftOnoneSupport.swiftmodule" Name="SwiftOnoneSupport.swiftmodule">
98+
</Directory>
99+
<Directory Id="WinSDK.swiftmodule" Name="WinSDK.swiftmodule">
100+
</Directory>
101+
<Directory Id="WindowsSDK_usr_lib_swift_windows_x86_64" Name="x86_64">
102+
</Directory>
103+
</Directory>
98104
</Directory>
99105
</Directory>
106+
<Directory Id="WindowsSDK_usr_share" Name="share">
107+
</Directory>
100108
</Directory>
101109
</Directory>
102-
<Directory Id="WindowsSDK_usr_share" Name="share">
103-
</Directory>
104110
</Directory>
105111
</Directory>
106112
</Directory>
@@ -109,9 +115,6 @@
109115
</Directory>
110116
</Directory>
111117
</Directory>
112-
113-
114-
<SetDirectory Id="INSTALLDIR" Value="[WindowsVolume]Library" Condition="NOT INSTALLDIR" />
115118

116119
<!-- Components -->
117120
<ComponentGroup Id="XCTest">
@@ -488,7 +491,7 @@
488491

489492
<Component Id="EnvironmentVariables" Directory="INSTALLDIR" Guid="bd3ddc62-4c5c-4f6b-806e-02d2c6a65b65">
490493
<!-- <Condition> %PROCESSOR_ARCHITECTURE~="amd64" </Condition> -->
491-
<Environment Id="SDKRoot" Action="set" Name="SDKROOT" Part="all" Permanent="no" System="yes" Value="[INSTALLDIR]Developer\Platforms\Windows.platform\Developer\SDKs\Windows.sdk" />
494+
<Environment Id="SDKRoot" Action="set" Name="SDKROOT" Part="all" Permanent="no" System="yes" Value="[INSTALLDIR]Library\Developer\Platforms\Windows.platform\Developer\SDKs\Windows.sdk" />
492495
</Component>
493496

494497
<!-- Features -->

0 commit comments

Comments
 (0)