<?xml version='1.0' encoding='windows-1252'?>
<Wix
  xmlns='http://schemas.microsoft.com/wix/2006/wi'>

  <!-- Variables. -->
  <?define appName = "Google Web Toolkit Developer Plugin for IE" ?>
  <?define version = "0.9.0" ?>
  <?define upgradeCode = "9a5e649a-ec63-4c7d-99bf-75adb345e7e5" ?>

  <!--
    The main product to install. We generate a new GUID (*) on each
    compile to ensure that windows installer completely removes the old
    version and reinstalls the new version without complaining.
  -->
  <Product
    Name='$(var.appName)'
    Id='*'
    UpgradeCode='$(var.upgradeCode)'
    Language='1033'
    Codepage='1252'
    Version='$(var.version)'
    Manufacturer='Google'>

    <Package
      Id='*'
      Keywords='Installer'
      Description='$(var.appName) Installer'
      Manufacturer='Google'
      InstallerVersion='100'
      Languages='1033'
      Compressed='yes'
      SummaryCodepage='1252' />
    <Media
      Id='1'
      Cabinet='product.cab'
      EmbedCab='yes' />

    <!-- Suppress reboot prompts. -->
    <Property Id='REBOOT'>ReallySuppress</Property>

    <!-- Remove old version completely when upgrading.  -->
    <Upgrade
      Id='$(var.upgradeCode)'>
      <UpgradeVersion
        OnlyDetect='no'
        Property='PREVIOUSFOUND'
        Minimum='0.0.0'
        IncludeMinimum='yes'
        RemoveFeatures='all' />
    </Upgrade>
    <InstallExecuteSequence>
      <LaunchConditions
        After='AppSearch' />
      <RemoveExistingProducts
        After='InstallValidate' />
    </InstallExecuteSequence>

    <!-- Define the install directory. -->
    <Directory
      Id='TARGETDIR'
      Name='SourceDir'>
      <Directory
        Id='ProgramFilesFolder'
        Name='PFiles'>
        <Directory
          Id='GoogleDir'
          Name='Google'>
          <Directory
            Id='GoogleWebToolkitDir'
            Name='Google Web Toolkit'>
            <Directory
              Id='DeveloperPluginDir'
              Name='Developer Plugin'>
              <Directory
                Id='INSTALLDIR'
                Name='IE' />
            </Directory>
          </Directory>
        </Directory>
      </Directory>
    </Directory>

    <!-- Set some registry values. -->
    <Component
      Id='registryValues'
      Directory='INSTALLDIR'
      Guid='*'>
      <RegistryKey
        Root='HKLM'
        Action='createAndRemoveOnUninstall'
        Key='SOFTWARE\Google\Update\Clients\{$(var.upgradeCode)}'>
        <RegistryValue
          Name='pv'
          Value='$(var.version)'
          Type='string' />
        <RegistryValue
          Name='name'
          Value='$(var.appName)'
          Type='string' />
        <RegistryValue
          Name='lang'
          Value='en'
          Type='string' />
      </RegistryKey>
    </Component>

    <!-- Define the features to install. -->
    <Feature
      Id='CompleteFeature'
      Display='expand'
      Level='1'
      Absent='disallow'>
      <!--
        Loaded from oophm.wxs.xml, which is generated by the build
        script.
      -->
      <ComponentGroupRef
        Id='oophmDll' />
      <ComponentRef
        Id='registryValues' />
    </Feature>

  </Product>
</Wix>
