| <?xml version='1.0' encoding='windows-1252'?> |
| <!-- |
| Copyright 2019 The Bazel Authors. All rights reserved. |
| |
| Licensed under the Apache License, Version 2.0 (the "License"); |
| you may not use this file except in compliance with the License. |
| You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, software |
| distributed under the License is distributed on an "AS IS" BASIS, |
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| See the License for the specific language governing permissions and |
| limitations under the License. |
| --> |
| <Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"> |
| <!-- Product/@Id is auto-generated so every Bazel version (including release |
| candidates) has a unique product GUID. This is fine, all upgrades are |
| "Major upgrades" (see |
| https://www.firegiant.com/wix/tutorial/upgrades-and-modularization/). |
| |
| IMPORTANT: to see the Product GUID of an .msi file: |
| 1. install the Windows SDK |
| 2. find the Orca installer underneath (Orca-x86_en-us.msi) and run it |
| 3. open the .msi file with Orca |
| 4. open the "Property" table: the "ProductCode" property is the |
| generated Product/@Id GUID |
| --> |
| |
| <!-- IMPORTANT: Product/@UpgradeCode must be the same for backwards-compatible |
| versions, but a new code is needed when an incompatible release comes. |
| |
| Versions with the same UpgradeCode are upgraded: higher versions replace |
| lower versions (e.g. version 1.5.2 replaces version 1.0.3). Downgrading |
| is not permitted. |
| Versions with different UpgradeCodes can co-exist (e.g version 2.0.4rc5 |
| can co-exist with version 1.2.0). |
| --> |
| <Product |
| Name="Bazel $(var.RELEASE_NAME)" |
| Codepage="1252" |
| Id="*" |
| Language="1033" |
| Manufacturer="The Bazel Authors (https://bazel.build)" |
| UpgradeCode="$(var.UPGRADE_GUID)" |
| Version="$(var.VERSION)"> |
| <!-- Package/@Id is auto-generated. This is standard practice with WiX, |
| although it makes the compilation step ("candle.exe") |
| non-deterministic. |
| Even if we used a fixed GUID though, the linking step ("light.exe") |
| would still be non-deterministic. |
| --> |
| <Package |
| AdminImage="no" |
| Compressed="yes" |
| Description="Bazel $(var.RELEASE_NAME) installer" |
| Id="*" |
| InstallPrivileges="limited" |
| InstallScope="perUser" |
| InstallerVersion="200" |
| Languages="1033" |
| Manufacturer="The Bazel Authors (https://bazel.build)" |
| Platform="x64" |
| SummaryCodepage="1252" /> |
| <Media Id="1" Cabinet="bazel.cab" EmbedCab="yes" /> |
| |
| <Directory Id="TARGETDIR" Name="SourceDir"> |
| <Directory Id="InstallDirRoot" Name="bazel"> |
| <Directory Id="INSTALLDIR" Name="$(var.RELEASE_NAME)"> |
| <!-- RANDOM_GUID_1: can't use "*" because we'd get LGHT0231 from |
| light.exe --> |
| <Component |
| Guid="$(var.RANDOM_GUID_1)" |
| Id="MainExecutable" |
| Win64="yes"> |
| <File |
| Name="bazel.exe" |
| Id="BazelExe" |
| KeyPath="yes" |
| Source="$(var.BAZEL_EXE)" |
| Vital="yes" /> |
| <Environment |
| Name="PATH" |
| Action="set" |
| Id="UpdatePathEnv" |
| Part="first" |
| System="no" |
| Value="[INSTALLDIR]" /> |
| </Component> |
| <!-- RANDOM_GUID_2: can't use "*" because we'd get LGHT0230 from |
| light.exe --> |
| <Component |
| Guid="$(var.RANDOM_GUID_2)" |
| Id="InstallDirRoot"> |
| <RemoveFolder Id="InstallDirRoot" On="uninstall" /> |
| </Component> |
| </Directory> |
| </Directory> |
| </Directory> |
| |
| <Property Id="WIXUI_INSTALLDIR" Value="INSTALLDIR" /> |
| <UIRef Id="WixUI_InstallDir" /> |
| |
| <Icon Id="BazelIcon" SourceFile="$(var.ICON)" /> |
| <Property Id="ARPPRODUCTICON" Value="BazelIcon" /> |
| |
| <Condition |
| Message="Bazel requires 64 bit Windows 7 or newer (64 bit Windows 10 recommended)"> |
| <![CDATA[VersionNT64 >= 601]]> |
| </Condition> |
| |
| <Feature |
| Absent="disallow" |
| AllowAdvertise="no" |
| ConfigurableDirectory="INSTALLDIR" |
| Display="expand" |
| Id="Complete" |
| Level="1"> |
| <ComponentRef Id="InstallDirRoot" /> |
| <ComponentRef Id="MainExecutable" /> |
| </Feature> |
| |
| <!-- AllowSameVersionUpgrades is enabled, so we can install RC versions, |
| e.g. install 0.28.0rc3 then 0.28.0. Unfortunately we can't easily |
| prevent upgrading a release version to its RC version, or upgrading an |
| RC with an older RC (because their VERSION and UPGRADE_GUID are both |
| the same) but that's an acceptable flaw. --> |
| <MajorUpgrade |
| AllowDowngrades="no" |
| IgnoreRemoveFailure="no" |
| AllowSameVersionUpgrades="yes" |
| DowngradeErrorMessage="A newer and backwards-compatible version is already installed" /> |
| </Product> |
| </Wix> |