VBoxMergeApp.wxs revision f89a9a89bbb6486fda960f0b97be6dc931ca5ba1
<?xml version="1.0"?>
<!--
VirtualBox Windows Installation Script (WiX)
Copyright (C) 2006-2014 Oracle Corporation
This file is part of VirtualBox Open Source Edition (OSE), as
available from http://www.virtualbox.org. This file is free software;
General Public License (GPL) as published by the Free Software
Foundation, in version 2 as it comes in the "COPYING" file of the
VirtualBox OSE distribution. VirtualBox OSE is distributed in the
hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
-->
<?include Properties.wxi ?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"
xmlns:difxapp="http://schemas.microsoft.com/wix/DifxAppExtension">
<!-- Note: GUIDs in WiX *must* be uppercase! -->
<!-- Always include an upgrade ID or otherwise upgrade installation will not be possible. When doing
a major upgrade (more than just fixing a few files) change the product GUID. We always do a major
upgrade even for minor VBox updates. For that only change the product ID and the product version.
The upgrade code *never* must be changed! -->
<!-- Update / Upgrade policies:
Update Type Package Code Product Version Product Code Upgrade Code
Small update change don't change don't change don't change
Minor update change change don't change don't change
Major upgrade change change change don't change -->
<!-- Old product ID: <Product Id="B59FE77B-738F-4f1c-AB48-3104895AF676"
Old upgrade code of innotek: UpgradeCode="F5FFAEBF-97AE-4038-8F91-4DE719456127" -->
<Module Id="msm_VBoxApp"
Version="$(var.Property_Version)">
<Package Id="d255feb6-597d-4f49-a170-e34f289fa0d3"
Keywords="Installer, Setup"
Description="$(env.VBOX_PRODUCT) $(var.Property_VersionExt) installation package"
Comments="$(env.VBOX_PRODUCT) installation package"
Manufacturer="$(env.VBOX_VENDOR)"
InstallerVersion="200"
AdminImage="yes"
InstallPrivileges="elevated"
Platform="$(var.Property_Platform)"
SummaryCodepage="1252"/>
<!-- Custom actions -->
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="MergeRedirectFolder" FileSource=".">
<Directory Id="dir_Documents" Name="doc">
<!-- The documentation is a separate component. This allows to split the install process
into pieces if ever necessary. Maintenance is easier, too. The following component
will be installed in the "doc" folder. -->
<Component Id="cp_Docs" Guid="40BD12C5-89A8-4B81-8A5E-5EEE2C2763C4">
</Component>
</Directory>
<?endif ?>
<!-- Device driver directory -->
<Directory Id="dir_Drivers" Name="drivers">
<Directory Id="dir_VBoxDrv" Name="vboxdrv">
<Component Id="cp_VBoxDrv" Guid="D3E2F2BB-569F-46A2-836C-BDF30FF1EDF8" Win64="$(var.Property_Win64)">
<difxapp:Driver AddRemovePrograms="no" ForceInstall="yes"
Source="$(env.PATH_OUT)\bin\VBoxDrv.sys"/>
Source="$(env.PATH_OUT)\bin\VBoxDrv.inf" />
Source="$(env.PATH_OUT)\bin\VBoxDrv.cat" />
<?endif ?>
</Component>
</Directory>
</Directory> <!-- Directory "drivers" -->
<!-- National Language Support directory -->
<Directory Id="dir_NLS" Name="nls">
<!-- Include the autogenerated NLS file list -->
</Component>
</Directory>
<Directory Id="dir_X86" Name="x86">
<!-- The 32-bit client COM component (see also cp_MainCom below). -->
<Component Id="cp_MainCOM_x86" Guid="B600824E-4A25-2EB3-4B44-3D8CB7F9B92D" Win64="no">
Source="$(env.PATH_OUT)\bin\x86\VBoxClient-x86.dll" KeyPath="yes"
DiskId="$(var.Property_DiskIdCommon)">
</File>
Source="$(env.PATH_OUT)\bin\x86\VBoxRT-x86.dll"
DiskId="$(var.Property_DiskIdCommon)">
</File>
<!-- MS C/C++ v10.0 32 bit Runtime DLL files. -->
Source="$(env.PATH_OUT)\bin\x86\msvcr100.dll"
DiskId="$(var.Property_DiskIdCommon)" />
Source="$(env.PATH_OUT)\bin\x86\msvcp100.dll"
DiskId="$(var.Property_DiskIdCommon)" />
<?endif?>
<!-- MS C/C++ v11.0 Runtime DLL files. -->
Source="$(env.PATH_OUT)\bin\x86\msvcr110.dll"
DiskId="$(var.Property_DiskIdCommon)" />
Source="$(env.PATH_OUT)\bin\x86\msvcp110.dll"
DiskId="$(var.Property_DiskIdCommon)" />
<?endif?>
</Component>
</Directory>
<?endif?>
<!-- COM components have a separate entry mainly because of the KeyPath attribute (that hints the
TypeLib element where to take the TLB resource from) may appear only once per Component. -->
<Component Id="cp_MainCOM" Guid="CD4A3C6C-C2D5-428D-90A1-B6DA3D0777D6" Win64="$(var.Property_Win64)">
<!-- File ID *must not* be changed because of our typelib template generation file! -->
Source="$(env.PATH_OUT)\bin\VBoxSVC.exe">
</File>
<!-- We set KeyPath on this file to instruct TypeLib to read the TLB resource from it
and create appropriate Interface registry entries. Note that the same TLB is present
in VBoxSVC.exe - it's just a matter of choice which one to use -->
<!-- File ID *must not* be changed because of our typelib template generation file! -->
Source="$(env.PATH_OUT)\bin\VBoxC.dll" KeyPath="yes">
</File>
<!-- Include the autogenerated TypeLib block -->
</Component>
<!--
<Component Id="cp_StartMenuShortcut" Guid="1C137D24-E599-47BD-98D0-2F62F202A8EA" Win64="$(var.Property_Win64)">
<RegistryValue Root="HKCU" Key="$(var.Property_RegKeyInstall)" Type="string"
Value="installed" KeyPath="yes" />
<Shortcut Id="ShortcutStartMenuVBox" Directory="ProgramMenuDir"
Name="VirtualBox" WorkingDirectory="INSTALLDIR" Advertise="no" Target="VirtualBox.exe" />
<RemoveFolder Id="ShortcutStartMenuVBoxRemove" On="uninstall" />
</Component>-->
<!---->
<Component Id="cp_RegisterExtensions" Guid="FEB8943E-5D60-4E2D-846F-458207019D40" Win64="$(var.Property_Win64)">
<Condition>VBOX_REGISTERFILEEXTENSIONS</Condition>
<!-- Register file extensions. Note: Extension Id's *must not* be changed! These specify the actual
file extension to handle. Also, here would be the place to add more fancy DDE stuff later.
Important: The IDs in "IconIndex" *must* be matching "Resources\resource.h". -->
<ProgId Id="progId_VirtualBox.Shell.vbox" Description="VirtualBox Machine Definition" Icon="file_VBoxRes.dll" IconIndex="-201">
</Extension>
</ProgId>
<ProgId Id="progId_VirtualBox.Shell.vbox-extpack" Description="VirtualBox Extension Pack" Icon="file_VBoxRes.dll" IconIndex="-202">
</Extension>
</ProgId>
<ProgId Id="progId_VirtualBox.Shell.ovf" Description="Open Virtualization Format" Icon="file_VBoxRes.dll" IconIndex="-301">
</Extension>
</ProgId>
<ProgId Id="progId_VirtualBox.Shell.ova" Description="Open Virtualization Format Archive" Icon="file_VBoxRes.dll" IconIndex="-302">
</Extension>
</ProgId>
<ProgId Id="progId_VirtualBox.Shell.vdi" Description="Virtual Disk Image" Icon="file_VBoxRes.dll" IconIndex="-303">
</ProgId>
<ProgId Id="progId_VirtualBox.Shell.vmdk" Description="Virtual Machine Disk Format" Icon="file_VBoxRes.dll" IconIndex="-304">
</ProgId>
<ProgId Id="progId_VirtualBox.Shell.vhd" Description="Virtual Hard Disk" Icon="file_VBoxRes.dll" IconIndex="-305">
</ProgId>
<ProgId Id="progId_VirtualBox.Shell.hdd" Description="Virtual Hard Disk" Icon="file_VBoxRes.dll" IconIndex="-306">
</ProgId>
</Component> <!-- RegisterExtensions -->
<!-- All Binaries, DLLs (except COM) and drivers are in one component because they belong together. Additional
binaries e.g. test tools, utilities etc. should be in another component so they"re clearly separated. -->
<Component Id="cp_MainBinaries" Guid="5C8FE57A-F744-4DE0-AA3F-A563F486AD98" Win64="$(var.Property_Win64)">
<!-- Set required environment variables. -->
<Environment Id="env_VBoxInstallDir" Action="set" Name="VBOX_INSTALL_PATH"
System="yes" Part="last" Permanent="no" Value="MergeRedirectFolder" />
<!-- Files -->
<!-- Include all user manual .CHM files (file is generated by makefile). -->
<?endif ?>
<!-- Include all license files (file is generated by makefile). -->
<!-- Frontends -->
Source="$(env.PATH_OUT)\bin\VBoxManage.exe" />
Source="$(env.PATH_OUT)\bin\VBoxHeadless.exe">
<!-- Create a simple shortcut for VBoxVRDP, which is not present anymore, pointing to VBoxHeadless.exe -->
<!-- <Shortcut Id="ShortcutVBoxVRDP" Directory="INSTALLDIR" Name="VBoxVRDP" Show="normal" WorkingDirectory="INSTALLDIR"/> -->
</File>
Source="$(env.PATH_OUT)\bin\VBoxBalloonCtrl.exe"/>
<!-- Misc tools -->
Source="$(env.PATH_OUT)\bin\VBoxNetDHCP.exe"/>
Source="$(env.PATH_OUT)\bin\VBoxNetNAT.exe"/>
Source="$(env.PATH_OUT)\bin\VBoxExtPackHelperApp.exe"/>
<?endif ?>
<!-- VBox DLL files -->
Source="$(env.PATH_OUT)\bin\VBoxDD.dll" />
Source="$(env.PATH_OUT)\bin\VBoxDD2.dll" />
Source="$(env.PATH_OUT)\bin\VBoxDDU.dll" />
Source="$(env.PATH_OUT)\bin\VBoxRT.dll" />
Source="$(env.PATH_OUT)\bin\VBoxREM.dll" />
Source="$(env.PATH_OUT)\bin\VBoxREM32.dll" />
Source="$(env.PATH_OUT)\bin\VBoxREM64.dll" />
<?endif ?>
Source="$(env.PATH_OUT)\bin\VBoxVMM.dll" />
Source="$(env.PATH_OUT)\bin\VBoxVRDP.dll" />
<?endif ?>
Source="$(env.PATH_OUT)\bin\VBoxSharedFolders.dll" />
Source="$(env.PATH_OUT)\bin\VBoxSharedClipboard.dll" />
Source="$(env.PATH_OUT)\bin\VBoxDragAndDropSvc.dll" />
<?endif ?>
Source="$(env.PATH_OUT)\bin\VBoxGuestPropSvc.dll" />
<?endif ?>
Source="$(env.PATH_OUT)\bin\VBoxGuestControlSvc.dll" />
<?endif ?>
Source="$(env.PATH_OUT)\bin\VBoxHostChannel.dll" />
Source="$(env.PATH_OUT)\bin\VBoxAuth.dll" />
Source="$(env.PATH_OUT)\bin\VBoxAuthSimple.dll" />
<!-- Include resource DLL (icons, ...). -->
Source="$(env.PATH_OUT)\bin\VBoxRes.dll" />
Source="$(env.PATH_OUT)\bin\VMMGC.gc" />
Source="$(env.PATH_OUT)\bin\VBoxDDGC.gc" />
Source="$(env.PATH_OUT)\bin\VBoxDD2GC.gc" />
Source="$(env.PATH_OUT)\bin\VMMR0.r0" />
Source="$(env.PATH_OUT)\bin\VBoxDDR0.r0" />
Source="$(env.PATH_OUT)\bin\VBoxDD2R0.r0" />
Source="$(env.PATH_OUT)\bin\VBoxTestOGL.exe" />
<?endif ?>
<!-- Qt frontend -->
Source="$(env.PATH_OUT)\bin\VirtualBox.exe">
</File>
Source="$(env.PATH_OUT)\bin\QtCoreVBox4.dll" />
Source="$(env.PATH_OUT)\bin\QtGuiVBox4.dll" />
Source="$(env.PATH_OUT)\bin\QtNetworkVBox4.dll" />
Source="$(env.PATH_OUT)\bin\VBoxDbg.dll" />
<?endif ?>
Source="$(env.PATH_OUT)\bin\QtOpenGLVBox4.dll" />
<?endif?>
<!-- MS C/C++ v10.0 Runtime DLL files. -->
Source="$(env.PATH_OUT)\bin\msvcr100.dll" />
Source="$(env.PATH_OUT)\bin\msvcp100.dll" />
<?endif?>
<!-- MS C/C++ v11.0 Runtime DLL files. -->
Source="$(env.PATH_OUT)\bin\msvcr110.dll" />
Source="$(env.PATH_OUT)\bin\msvcp110.dll" />
<?endif?>
<!-- EFI firmware -->
Source="$(env.PATH_OUT)\bin\VBoxEFI32.fd" />
Source="$(env.PATH_OUT)\bin\VBoxEFI64.fd" />
<?endif?>
<!-- VBox guest additions -->
DiskId="$(var.Property_DiskIdCommon)" />
<?else ?>
Source="$(env.PATH_OUT)\bin\additions\VBoxGuestAdditions.iso" />
<?endif ?>
<?endif ?>
<!-- Include key for VBox version -->
</Component> <!-- MainBinaries -->
<!-- Qt accessible plugins -->
<Directory Id="dir_Accessible" Name="accessible">
<Component Id="cp_QtAccessible" Guid="12040EF9-D4A8-4FB2-A69C-CA2F5C354A45" Win64="$(var.Property_Win64)">
Source="$(env.PATH_OUT)\bin\accessible\qtaccessiblewidgets4.dll" />
</Component>
</Directory>
<?endif?>
<Component Id="cp_VBoxCROpenGL" Guid="874A1297-835A-491D-8A9D-7E723BC29EE7" Win64="$(var.Property_Win64)">
Source="$(env.PATH_OUT)\bin\VBoxOGLhostcrutil.dll" />
Source="$(env.PATH_OUT)\bin\VBoxOGLhosterrorspu.dll" />
Source="$(env.PATH_OUT)\bin\VBoxOGLrenderspu.dll" />
Source="$(env.PATH_OUT)\bin\VBoxSharedCrOpenGL.dll" />
</Component>
<?endif?>
<!-- SDL plugins -->
<Component Id="cp_VBoxSDLBinaries" Guid="F09D5FD9-E176-42B0-90A9-481BB18B0CB4" Win64="$(var.Property_Win64)">
Source="$(env.PATH_OUT)\bin\VBoxSDL.exe" />
Source="$(env.PATH_OUT)\bin\SDL.dll" />
Source="$(env.PATH_OUT)\bin\SDL_ttf.dll" />
<?endif?>
</Component> <!-- SDL plugins -->
<!-- Webservice -->
<Component Id="cp_VBoxWebService" Guid="DD404F04-9874-43E9-AEE2-7762924D922E">
Source="$(env.PATH_OUT)\bin\vboxwebsrv.exe" />
</Component>
<?endif?>
<!-- C API (glue) bindings -->
<Component Id="cp_VBoxCAPI" Guid="097F7F53-7111-467F-8E0C-257D9926FDA0">
Source="$(env.PATH_OUT)\bin\VBoxCAPI.dll" />
</Component>
<Component Id="cp_VBoxPythonBinding" Guid="293D7E11-78DA-4C31-AEED-AE2FE42F6881">
<Condition>VBOX_PYTHON_IS_INSTALLED</Condition>
</Component>
<?endif?>
</Directory> <!-- MergeRedirectFolder directory -->
</Directory> <!-- TARGETDIR -->
</Module>
</Wix>