VirtualBox

source: vbox/trunk/src/VBox/Installer/win/VBoxMergeApp.wxi@ 51127

Last change on this file since 51127 was 51127, checked in by vboxsync, 11 years ago

Windows host installer: Split off 32-bit on 64-bit COM support into own module, bugfixes, added some more build dependencies.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 17.7 KB
Line 
1<!--
2 VirtualBox Windows Installation Script (WiX)
3
4 Copyright (C) 2006-2014 Oracle Corporation
5
6 This file is part of VirtualBox Open Source Edition (OSE), as
7 available from http://www.virtualbox.org. This file is free software;
8 you can redistribute it and/or modify it under the terms of the GNU
9 General Public License (GPL) as published by the Free Software
10 Foundation, in version 2 as it comes in the "COPYING" file of the
11 VirtualBox OSE distribution. VirtualBox OSE is distributed in the
12 hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
13-->
14
15<Include xmlns="http://schemas.microsoft.com/wix/2006/wi"
16 xmlns:difxapp="http://schemas.microsoft.com/wix/DifxAppExtension">
17
18<?if $(env.VBOX_WITH_DOCS_PACKING) = "yes" ?>
19 <Directory Id="dir_VBoxAppDocuments" Name="doc">
20 <!-- The documentation is a separate component. This allows to split the install process
21 into pieces if ever necessary. Maintenance is easier, too. The following component
22 will be installed in the "doc" folder -->
23 <Component Id="cp_Docs" Guid="40BD12C5-89A8-4B81-8A5E-5EEE2C2763C4">
24 <?include $(env.PATH_TARGET)\Files_Doc.wxi ?>
25 </Component>
26 </Directory>
27<?endif ?>
28 <!-- Device driver directory -->
29 <Directory Id="dir_VBoxAppDrivers" Name="drivers">
30 <Directory Id="dir_VBoxAppVBoxDrv" Name="vboxdrv">
31 <Component Id="cp_VBoxDrv" Guid="D3E2F2BB-569F-46A2-836C-BDF30FF1EDF8" Win64="$(var.Property_Win64)">
32 <difxapp:Driver AddRemovePrograms="no" ForceInstall="yes"
33 Legacy="$(var.Property_DriverLegacy)" Sequence="2" PlugAndPlayPrompt="no"/>
34 <File Id="file_VBoxDrv.sys" Name="VBoxDrv.sys" KeyPath="yes"
35 Source="$(env.PATH_OUT)\bin\VBoxDrv.sys"/>
36 <File Id="file_VBoxDrv.inf" Name="VBoxDrv.inf"
37 Source="$(env.PATH_OUT)\bin\VBoxDrv.inf" />
38<?if $(env.VBOX_SIGNING_MODE) != none ?>
39 <File Id="file_VBoxDrv.cat" Name="VBoxDrv.cat"
40 Source="$(env.PATH_OUT)\bin\VBoxDrv.cat" />
41<?endif ?>
42 </Component>
43 </Directory>
44 </Directory> <!-- Directory "drivers" -->
45
46<?if $(env.VBOX_WITH_QTGUI) = "yes" ?>
47 <!-- National Language Support directory -->
48 <Directory Id="dir_VBoxAppNLS" Name="nls">
49 <Component Id="cp_NLS" Guid="D63517D7-1CF3-4D06-B3EE-C561E323069B" Win64="$(var.Property_Win64)">
50 <!-- Include the autogenerated NLS file list -->
51 <?include $(env.PATH_TARGET)\VBoxGuiNLS.wxi ?>
52 </Component>
53 </Directory>
54<?endif ?>
55
56 <!-- COM components have a separate entry mainly because of the KeyPath attribute (that hints the
57 TypeLib element where to take the TLB resource from) may appear only once per component -->
58 <Component Id="cp_MainCOM" Guid="CD4A3C6C-C2D5-428D-90A1-B6DA3D0777D6" Win64="$(var.Property_Win64)">
59
60 <!-- Note: This file ID *must not* be changed because of our typelib template generation file! -->
61 <File Id="VBoxSVC" Name="VBoxSVC.exe"
62 Source="$(env.PATH_OUT)\bin\VBoxSVC.exe">
63 </File>
64
65 <!-- We set KeyPath on this file to instruct TypeLib to read the TLB resource from it
66 and create appropriate Interface registry entries. Note that the same TLB is present
67 in VBoxSVC.exe - it's just a matter of choice which one to use -->
68 <!-- Note: This file ID *must not* be changed because of our typelib template generation file! -->
69 <File Id="VBoxC" Name="VBoxC.dll"
70 Source="$(env.PATH_OUT)\bin\VBoxC.dll" KeyPath="yes">
71 </File>
72
73 <!-- Include the auto-generated TypeLib block -->
74 <?include $(env.PATH_TARGET)\VirtualBox_TypeLib.wxi ?>
75
76 </Component>
77
78 <!--
79
80 <Component Id="cp_StartMenuShortcut" Guid="1C137D24-E599-47BD-98D0-2F62F202A8EA" Win64="$(var.Property_Win64)">
81 <RegistryValue Root="HKCU" Key="$(var.Property_RegKeyInstall)" Type="string"
82 Value="installed" KeyPath="yes" />
83 <Shortcut Id="ShortcutStartMenuVBox" Directory="ProgramMenuDir"
84 Name="VirtualBox" WorkingDirectory="INSTALLDIR" Advertise="no" Target="VirtualBox.exe" />
85 <RemoveFolder Id="ShortcutStartMenuVBoxRemove" On="uninstall" />
86 </Component>-->
87
88 <!---->
89
90<?if $(env.VBOX_WITH_QTGUI) = "yes" ?>
91 <Component Id="cp_RegisterExtensions" Guid="FEB8943E-5D60-4E2D-846F-458207019D40"
92 Win64="$(var.Property_Win64)" KeyPath="yes">
93 <Condition>VBOX_REGISTERFILEEXTENSIONS</Condition>
94 <!-- Register file extensions. Note: Extension IDs *must not* be changed! These specify the actual
95 file extension to handle. Also, here would be the place to add more fancy DDE stuff later.
96 Important: The IDs in "IconIndex" *must* be matching "Resources\resource.h" -->
97 <ProgId Id="progId_VirtualBox.Shell.vbox" Description="VirtualBox Machine Definition" Icon="file_VBoxRes.dll" IconIndex="-201">
98 <Extension Id="vbox" ContentType="application/x-virtualbox-vbox">
99 <Verb Id="open" Command="Open" TargetFile="file_VirtualBox.exe" Argument="&quot;%1&quot;" />
100 </Extension>
101 </ProgId>
102 <ProgId Id="progId_VirtualBox.Shell.vbox-extpack" Description="VirtualBox Extension Pack" Icon="file_VBoxRes.dll" IconIndex="-202">
103 <Extension Id="vbox-extpack" ContentType="application/x-virtualbox-vbox-extpack">
104 <Verb Id="open" Command="Open" TargetFile="file_VirtualBox.exe" Argument="&quot;%1&quot;" />
105 </Extension>
106 </ProgId>
107 <ProgId Id="progId_VirtualBox.Shell.ovf" Description="Open Virtualization Format" Icon="file_VBoxRes.dll" IconIndex="-301">
108 <Extension Id="ovf" ContentType="application/x-virtualbox-ovf">
109 <Verb Id="open" Command="Open" TargetFile="file_VirtualBox.exe" Argument="&quot;%1&quot;" />
110 </Extension>
111 </ProgId>
112 <ProgId Id="progId_VirtualBox.Shell.ova" Description="Open Virtualization Format Archive" Icon="file_VBoxRes.dll" IconIndex="-302">
113 <Extension Id="ova" ContentType="application/x-virtualbox-ova">
114 <Verb Id="open" Command="Open" TargetFile="file_VirtualBox.exe" Argument="&quot;%1&quot;" />
115 </Extension>
116 </ProgId>
117 <ProgId Id="progId_VirtualBox.Shell.vdi" Description="Virtual Disk Image" Icon="file_VBoxRes.dll" IconIndex="-303">
118 <Extension Id="vdi" ContentType="application/x-virtualbox-vdi" />
119 </ProgId>
120 <ProgId Id="progId_VirtualBox.Shell.vmdk" Description="Virtual Machine Disk Format" Icon="file_VBoxRes.dll" IconIndex="-304">
121 <Extension Id="vmdk" ContentType="application/x-virtualbox-vmdk" />
122 </ProgId>
123 <ProgId Id="progId_VirtualBox.Shell.vhd" Description="Virtual Hard Disk" Icon="file_VBoxRes.dll" IconIndex="-305">
124 <Extension Id="vhd" ContentType="application/x-virtualbox-vhd" />
125 </ProgId>
126 <ProgId Id="progId_VirtualBox.Shell.hdd" Description="Virtual Hard Disk" Icon="file_VBoxRes.dll" IconIndex="-306">
127 <Extension Id="hdd" ContentType="application/x-virtualbox-hdd" />
128 </ProgId>
129 </Component> <!-- cp_RegisterExtensions -->
130<?endif ?>
131
132 <!-- All Binaries, DLLs (except COM) and drivers are in one component because they belong together. Additional
133 binaries e.g. test tools, utilities etc. should be in another component so they"re clearly separated -->
134 <Component Id="cp_MainBinaries" Guid="5C8FE57A-F744-4DE0-AA3F-A563F486AD98" Win64="$(var.Property_Win64)">
135
136 <!-- Set required environment variables -->
137 <Environment Id="env_VBoxInstallDir" Action="set" Name="VBOX_MSI_INSTALL_PATH"
138 System="yes" Part="last" Permanent="no" Value="[MergeRedirectFolder]" />
139
140 <!-- Files -->
141<?if $(env.VBOX_WITH_DOCS_PACKING) = "yes" ?>
142 <!-- Include all user manual .CHM files (file is generated by makefile) -->
143 <?include $(env.PATH_TARGET)\Files_Main.wxi ?>
144<?endif ?>
145 <!-- Include all license files (file is generated by makefile) -->
146 <?include $(env.PATH_TARGET)\Files_License.wxi ?>
147
148 <!-- Frontends -->
149 <File Id="file_VBoxManage.exe" Name="VBoxManage.exe"
150 Source="$(env.PATH_OUT)\bin\VBoxManage.exe" />
151 <File Id="file_VBoxHeadless.exe" Name="VBoxHeadless.exe"
152 Source="$(env.PATH_OUT)\bin\VBoxHeadless.exe">
153 <!-- Create a simple shortcut for VBoxVRDP, which is not present anymore, pointing to VBoxHeadless.exe -->
154 <!-- <Shortcut Id="ShortcutVBoxVRDP" Directory="INSTALLDIR" Name="VBoxVRDP" Show="normal" WorkingDirectory="INSTALLDIR"/> -->
155 </File>
156 <File Id="file_VBoxBalloonCtrl.exe" Name="VBoxBalloonCtrl.exe"
157 Source="$(env.PATH_OUT)\bin\VBoxBalloonCtrl.exe"/>
158
159 <!-- Misc tools -->
160 <File Id="file_VBoxNetDHCP.exe" Name="VBoxNetDHCP.exe"
161 Source="$(env.PATH_OUT)\bin\VBoxNetDHCP.exe"/>
162 <File Id="file_VBoxNetNAT.exe" Name="VBoxNetNAT.exe"
163 Source="$(env.PATH_OUT)\bin\VBoxNetNAT.exe"/>
164<?if $(env.VBOX_WITH_EXTPACK) = "yes" ?>
165 <File Id="file_VBoxExtPackHelperApp.exe" Name="VBoxExtPackHelperApp.exe"
166 Source="$(env.PATH_OUT)\bin\VBoxExtPackHelperApp.exe"/>
167<?endif ?>
168 <!-- VBox DLL files -->
169 <File Id="file_VBoxDD.dll" Name="VBoxDD.dll"
170 Source="$(env.PATH_OUT)\bin\VBoxDD.dll" />
171 <File Id="file_VBoxDD2.dll" Name="VBoxDD2.dll"
172 Source="$(env.PATH_OUT)\bin\VBoxDD2.dll" />
173 <File Id="file_VBoxDDU.dll" Name="VBoxDDU.dll"
174 Source="$(env.PATH_OUT)\bin\VBoxDDU.dll" />
175 <File Id="file_VBoxRT.dll" Name="VBoxRT.dll"
176 Source="$(env.PATH_OUT)\bin\VBoxRT.dll" />
177 <File Id="file_VBoxREM.dll" Name="VBoxREM.dll"
178 Source="$(env.PATH_OUT)\bin\VBoxREM.dll" />
179<?if $(env.BUILD_TARGET_ARCH) = "x86" ?>
180 <File Id="file_VBoxREM32.dll" Name="VBoxREM32.dll"
181 Source="$(env.PATH_OUT)\bin\VBoxREM32.dll" />
182 <File Id="file_VBoxREM64.dll" Name="VBoxREM64.dll"
183 Source="$(env.PATH_OUT)\bin\VBoxREM64.dll" />
184<?endif ?>
185 <File Id="file_VBoxVMM.dll" Name="VBoxVMM.dll"
186 Source="$(env.PATH_OUT)\bin\VBoxVMM.dll" />
187<?if $(env.VBOX_WITH_VRDP) = "yes" ?>
188 <File Id="file_VBoxVRDP.dll" Name="VBoxVRDP.dll"
189 Source="$(env.PATH_OUT)\bin\VBoxVRDP.dll" />
190<?endif ?>
191 <File Id="file_VBoxSharedFolders.dll" Name="VBoxSharedFolders.dll"
192 Source="$(env.PATH_OUT)\bin\VBoxSharedFolders.dll" />
193 <File Id="file_VBoxSharedClipboard.dll" Name="VBoxSharedClipboard.dll"
194 Source="$(env.PATH_OUT)\bin\VBoxSharedClipboard.dll" />
195<?if $(env.VBOX_WITH_DRAG_AND_DROP)= "yes" ?>
196 <File Id="file_VBoxDragAndDropSvc.dll" Name="VBoxDragAndDropSvc.dll"
197 Source="$(env.PATH_OUT)\bin\VBoxDragAndDropSvc.dll" />
198<?endif ?>
199<?if $(env.VBOX_WITH_GUEST_PROPS) = "yes" ?>
200 <File Id="file_VBoxGuestPropSvc.dll" Name="VBoxGuestPropSvc.dll"
201 Source="$(env.PATH_OUT)\bin\VBoxGuestPropSvc.dll" />
202<?endif ?>
203<?if $(env.VBOX_WITH_GUEST_CONTROL) = "yes" ?>
204 <File Id="file_VBoxGuestControlSvc.dll" Name="VBoxGuestControlSvc.dll"
205 Source="$(env.PATH_OUT)\bin\VBoxGuestControlSvc.dll" />
206<?endif ?>
207 <File Id="file_VBoxHostChannel.dll" Name="VBoxHostChannel.dll"
208 Source="$(env.PATH_OUT)\bin\VBoxHostChannel.dll" />
209 <File Id="file_VBoxAuth.dll" Name="VBoxAuth.dll"
210 Source="$(env.PATH_OUT)\bin\VBoxAuth.dll" />
211 <File Id="file_VBoxAuthSimple.dll" Name="VBoxAuthSimple.dll"
212 Source="$(env.PATH_OUT)\bin\VBoxAuthSimple.dll" />
213
214 <!-- Include resource DLL (icons, ...) -->
215 <File Id="file_VBoxRes.dll" Name="VBoxRes.dll" DiskId="$(var.Property_DiskIdCommon)"
216 Source="$(env.PATH_OUT)\bin\VBoxRes.dll" />
217
218 <File Id="file_VMMGC.gc" Name="VMMGC.gc"
219 Source="$(env.PATH_OUT)\bin\VMMGC.gc" />
220 <File Id="file_VBoxDDGC.gc" Name="VBoxDDGC.gc"
221 Source="$(env.PATH_OUT)\bin\VBoxDDGC.gc" />
222 <File Id="file_VBoxDD2GC.gc" Name="VBoxDD2GC.gc"
223 Source="$(env.PATH_OUT)\bin\VBoxDD2GC.gc" />
224
225 <File Id="file_VMMR0.r0" Name="VMMR0.r0"
226 Source="$(env.PATH_OUT)\bin\VMMR0.r0" />
227 <File Id="file_VBoxDDR0.r0" Name="VBoxDDR0.r0"
228 Source="$(env.PATH_OUT)\bin\VBoxDDR0.r0" />
229 <File Id="file_VBoxDD2R0.r0" Name="VBoxDD2R0.r0"
230 Source="$(env.PATH_OUT)\bin\VBoxDD2R0.r0" />
231
232<?if $(env.VBOX_WITH_CROGL) = "yes" ?>
233 <File Id="file_VBoxTestOGL.exe" Name="VBoxTestOGL.exe"
234 Source="$(env.PATH_OUT)\bin\VBoxTestOGL.exe" />
235<?endif ?>
236<?if $(env.VBOX_WITH_QTGUI) = "yes" ?>
237 <!-- Qt frontend -->
238 <File Id="file_VirtualBox.exe" Name="VirtualBox.exe"
239 Source="$(env.PATH_OUT)\bin\VirtualBox.exe">
240 </File>
241 <File Id="file_QtCoreVBox4.dll" Name="QtCoreVBox4.dll"
242 Source="$(env.PATH_OUT)\bin\QtCoreVBox4.dll" />
243 <File Id="file_QtGuiVBox4.dll" Name="QtGuiVBox4.dll"
244 Source="$(env.PATH_OUT)\bin\QtGuiVBox4.dll" />
245 <File Id="file_QtNetworkVBox4.dll" Name="QtNetworkVBox4.dll"
246 Source="$(env.PATH_OUT)\bin\QtNetworkVBox4.dll" />
247<?endif ?>
248<?if $(env.VBOX_WITH_DEBUGGER_GUI) = "yes" ?>
249 <File Id="file_VBoxDbg.dll" Name="VBoxDbg.dll"
250 Source="$(env.PATH_OUT)\bin\VBoxDbg.dll" />
251<?endif ?>
252<?if $(env.VBOX_GUI_USE_QGL) = "yes" ?>
253 <File Id="file_QtOpenGLVBox4.dll" Name="QtOpenGLVBox4.dll"
254 Source="$(env.PATH_OUT)\bin\QtOpenGLVBox4.dll" />
255<?endif?>
256
257<?if $(env.VBOX_VCC_TOOL_STEM) = "VCC100" ?>
258 <!-- MS C/C++ v10.0 Runtime DLL files -->
259 <File Id="file_msvcr100.dll" Name="msvcr100.dll"
260 Source="$(env.PATH_OUT)\bin\msvcr100.dll" />
261 <File Id="file_msvcp100.dll" Name="msvcp100.dll"
262 Source="$(env.PATH_OUT)\bin\msvcp100.dll" />
263<?endif?>
264<?if $(env.VBOX_VCC_TOOL_STEM) = "VCC110" ?>
265 <!-- MS C/C++ v11.0 Runtime DLL files -->
266 <File Id="file_msvcr110.dll" Name="msvcr110.dll"
267 Source="$(env.PATH_OUT)\bin\msvcr110.dll" />
268 <File Id="file_msvcp110.dll" Name="msvcp110.dll"
269 Source="$(env.PATH_OUT)\bin\msvcp110.dll" />
270<?endif?>
271
272 <!-- EFI firmware -->
273<?if $(env.VBOX_WITH_EFIFW_PACKING) = "yes" ?>
274 <File Id="file_VBoxEFI32.fd" Name="VBoxEFI32.fd" DiskId="$(var.Property_DiskIdCommon)"
275 Source="$(env.PATH_OUT)\bin\VBoxEFI32.fd" />
276 <File Id="file_VBoxEFI64.fd" Name="VBoxEFI64.fd" DiskId="$(var.Property_DiskIdCommon)"
277 Source="$(env.PATH_OUT)\bin\VBoxEFI64.fd" />
278<?endif?>
279 <!-- VBox guest additions -->
280<?if $(env.VBOX_WITH_ADDITIONS_PACKING) = "yes" ?>
281 <?if $(env.VBOX_WITH_COMBINED_PACKAGE) = "yes" ?>
282 <File Id="file_VBoxGuestAdditions.iso" Name="VBoxGuestAdditions.iso"
283 Source="$(env.PATH_MULTIARCH_GUEST_ADDITIONS_ISO)\VBoxGuestAdditions.iso"
284 DiskId="$(var.Property_DiskIdCommon)" />
285 <?else ?>
286 <File Id="file_VBoxGuestAdditions.iso" Name="VBoxGuestAdditions.iso"
287 Source="$(env.PATH_OUT)\bin\additions\VBoxGuestAdditions.iso" />
288 <?endif ?>
289<?endif ?>
290 <!-- Include key for VBox version -->
291 <?include $(env.PATH_TARGET)\VBoxKey.wxi ?>
292
293 </Component> <!-- MainBinaries -->
294
295<?if $(env.VBOX_WITH_QTGUI) = "yes" ?>
296 <!-- Qt accessible plugins -->
297 <Directory Id="dir_VBoxAppAccessible" Name="accessible">
298 <Component Id="cp_QtAccessible" Guid="12040EF9-D4A8-4FB2-A69C-CA2F5C354A45" Win64="$(var.Property_Win64)">
299 <File Id="file_qtaccessiblewidgets4.dll" Name="qtaccessiblewidgets4.dll"
300 Source="$(env.PATH_OUT)\bin\accessible\qtaccessiblewidgets4.dll" />
301 </Component>
302 </Directory>
303<?endif?>
304
305<?if $(env.VBOX_WITH_CROGL) = "yes" ?>
306 <Component Id="cp_VBoxCROpenGL" Guid="874A1297-835A-491D-8A9D-7E723BC29EE7" Win64="$(var.Property_Win64)">
307 <File Id="file_VBoxOGLhostcrutil.dll" Name="VBoxOGLhostcrutil.dll"
308 Source="$(env.PATH_OUT)\bin\VBoxOGLhostcrutil.dll" />
309 <File Id="file_VBoxOGLhosterrorspu.dll" Name="VBoxOGLhosterrorspu.dll"
310 Source="$(env.PATH_OUT)\bin\VBoxOGLhosterrorspu.dll" />
311 <File Id="file_VBoxOGLrenderspu.dll" Name="VBoxOGLrenderspu.dll"
312 Source="$(env.PATH_OUT)\bin\VBoxOGLrenderspu.dll" />
313 <File Id="file_VBoxSharedCrOpenGL.dll" Name="VBoxSharedCrOpenGL.dll"
314 Source="$(env.PATH_OUT)\bin\VBoxSharedCrOpenGL.dll" />
315 </Component>
316<?endif?>
317 <!-- SDL plugins -->
318 <Component Id="cp_VBoxSDLBinaries" Guid="F09D5FD9-E176-42B0-90A9-481BB18B0CB4"
319 Win64="$(var.Property_Win64)">
320 <File Id="file_VBoxSDL.exe" Name="VBoxSDL.exe"
321 Source="$(env.PATH_OUT)\bin\VBoxSDL.exe" />
322 <File Id="file_SDL.dll" Name="SDL.dll"
323 Source="$(env.PATH_OUT)\bin\SDL.dll" />
324<?if $(env.VBOX_WITH_SECURELABEL) = "yes" ?>
325 <File Id="file_SDL_ttf.dll" Name="SDL_ttf.dll"
326 Source="$(env.PATH_OUT)\bin\SDL_ttf.dll" />
327<?endif?>
328 </Component> <!-- SDL plugins -->
329
330<?if $(env.VBOX_WITH_WEBSERVICES) = "yes" ?>
331 <!-- Webservice -->
332 <Component Id="cp_VBoxWebService" Guid="DD404F04-9874-43E9-AEE2-7762924D922E">
333 <File Id="file_VBoxWebSrv.exe" Name="VBoxWebSrv.exe"
334 Source="$(env.PATH_OUT)\bin\vboxwebsrv.exe" />
335 </Component>
336<?endif?>
337 <!-- C API (glue) bindings -->
338 <Component Id="cp_VBoxCAPI" Guid="097F7F53-7111-467F-8E0C-257D9926FDA0"
339 Win64="$(var.Property_Win64)">
340 <File Id="file_VBoxCAPI.dll" Name="VBoxCAPI.dll"
341 Source="$(env.PATH_OUT)\bin\VBoxCAPI.dll" />
342 </Component>
343
344</Include>
Note: See TracBrowser for help on using the repository browser.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette