<?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 gwtRegKey = "SOFTWARE\Google\Google Web Toolkit\Installer" ?>
  <?if $(var.platform)=x64 ?>
      <?define upgradeCode = "53dae7d2-8c28-440f-920b-b2d665ce73b2" ?>
      <?define win64Flag = "yes" ?>
      <?define platformFriendlyName="x64" ?>
  <?else ?>
      <?define upgradeCode = "9a5e649a-ec63-4c7d-99bf-75adb345e7e5" ?>
      <?define win64Flag = "no" ?>
      <?define platformFriendlyName="x86" ?>
  <?endif ?>
  <?define updateRegKey = "SOFTWARE\Google\Update\Clients\{$(var.upgradeCode)}" ?>

  <!--
    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) ($(var.platformFriendlyName))'
    Id='*'
    UpgradeCode='$(var.upgradeCode)'
    Language='1033'
    Codepage='1252'
    Version='$(var.version)'
    Manufacturer='Google'>

    <?if $(var.platform)=x64 ?>
    <Package
          Id='*'
          Keywords='Installer'
          Description='$(var.appName) ($(var.platformFriendlyName))'
          Manufacturer='Google'
          InstallPrivileges='limited'
          InstallerVersion='200'
          Languages='1033'
          Compressed='yes'
          SummaryCodepage='1252'
          Platform='x64'
        />
    <?else ?>
    <Package
          Id='*'
          Keywords='Installer'
          Description='$(var.appName) ($(var.platformFriendlyName))'
          Manufacturer='Google'
          InstallPrivileges='limited'
          InstallerVersion='200'
          Languages='1033'
          Compressed='yes'
          SummaryCodepage='1252'
        />
    <?endif ?>

    <Media Id='1' Cabinet='product.cab' EmbedCab='yes' />

    <Icon Id="gwt.ico" SourceFile=".\gwt.ico"/>

    <!-- Properties -->
    <Property Id='REBOOT'>ReallySuppress</Property>
    <Property Id="ALLUSERS" Secure="yes"></Property>
    <Property Id="ARPPRODUCTICON" Value="gwt.ico" />
    <Property Id="ARPCOMMENTS" Value="Google Web Toolkit Developer Plugin for IE ($(var.platformFriendlyName))" />
    <Property Id="ARPNOMODIFY" Value="1" />
    <Property Id="ARPNOREPAIR" Value="1" />
    <Property Id="ARPHELPLINK" Value="http://code.google.com/webtoolkit/" />
    <Property Id="ARPURLINFOABOUT" Value="http://code.google.com/webtoolkit/" />

    <Upgrade Id='$(var.upgradeCode)'>
        <UpgradeVersion Property='UPGRADING'
                  OnlyDetect='no'
                  Minimum='0.0.0.0' IncludeMinimum='yes'
                  Maximum='$(var.version)' IncludeMaximum='no' />
        <UpgradeVersion Property='NEWERVERSIONDETECTED'
                  OnlyDetect='yes'
                  Minimum='$(var.version)' IncludeMinimum='yes' />
    </Upgrade>

    <InstallExecuteSequence>
      <LaunchConditions After='AppSearch' />
      <RemoveExistingProducts After='InstallValidate' />
      <Custom Action="NewerVersionError" After="FindRelatedProducts">NEWERVERSIONDETECTED</Custom>
    </InstallExecuteSequence>

    <UI>
        <Error Id="4000">A newer version of this product is already installed.</Error>
    </UI>

    <CustomAction Id="NewerVersionError" Error="4000"/>
    
    <!-- Define the install directory. -->
    <?if $(var.platform)=x64 ?>
    <Directory Id='TARGETDIR'    Name='SourceDir'>
      <Directory Id='AppDataFolder' Name='AppData'>
        <Directory Id='GoogleDir' Name='Google'>
          <Component Id="RemoveGoogleDir" Guid="*" DiskId="1" Win64="$(var.win64Flag)">
            <CreateFolder/>
            <RemoveFolder Id="RemoveGoogleDirFolder" On="uninstall" />
            <RegistryKey Root="HKMU" Key="$(var.gwtRegKey)" Action="createAndRemoveOnUninstall">
              <RegistryValue Name="RemoveGoogleDirFolder" Value="" Type="string" KeyPath="yes"/>
            </RegistryKey>
          </Component>
          <Directory Id='GoogleWebToolkitDir' Name='Google Web Toolkit'>
            <Component Id="RemoveGoogleWebToolkitDir" Guid="*" DiskId="1" Win64="$(var.win64Flag)">
              <CreateFolder/>
              <RemoveFolder Id="RemoveGoogleWebToolkitDirFolder" On="uninstall" />
              <RegistryKey Root="HKMU" Key="$(var.gwtRegKey)" Action="createAndRemoveOnUninstall">
                <RegistryValue Name="RemoveGoogleWebToolkitDirFolder" Value="" Type="string" KeyPath="yes"/>
              </RegistryKey>
            </Component>
            <Directory Id='DeveloperPluginDir' Name='Developer Plugin'>
              <Component Id="RemoveDeveloperPluginDir" Guid="*" DiskId="1" Win64="$(var.win64Flag)">
                <CreateFolder/>
                <RemoveFolder Id="RemoveDeveloperPluginDirFolder" On="uninstall" />
                <RegistryKey Root="HKMU" Key="$(var.gwtRegKey)" Action="createAndRemoveOnUninstall">
                  <RegistryValue Name="RemoveDeveloperPluginDirFolder" Value="" Type="string" KeyPath="yes"/>
                </RegistryKey>
              </Component>
              <Directory Id='INSTALLDIR' Name='IE'>
                <Component Id="RemoveInstallDir" Guid="*" DiskId="1" Win64="$(var.win64Flag)">
                  <CreateFolder/>
                  <RemoveFolder Id="RemoveInstallerDirFolder" On="uninstall" />
                  <RegistryKey Root="HKMU" Key="$(var.gwtRegKey)" Action="createAndRemoveOnUninstall">
                    <RegistryValue Name="RemoveInstallerDirFolder" Value="" Type="string" KeyPath="yes"/>
                  </RegistryKey>
                </Component>
              </Directory>
            </Directory>
          </Directory>
        </Directory>
      </Directory>
    </Directory>
    <?else?>
    <Directory Id='TARGETDIR'    Name='SourceDir'>
      <Directory Id='AppDataFolder' Name='AppData'>
        <Directory Id='GoogleDir' Name='Google'>
          <Component Id="RemoveGoogleDir" Guid="*" DiskId="1" Win64="$(var.win64Flag)">
            <CreateFolder/>
            <RemoveFolder Id="RemoveGoogleDirFolder" On="uninstall" />
            <RegistryKey Root="HKMU" Key="$(var.gwtRegKey)" Action="createAndRemoveOnUninstall">
              <RegistryValue Name="RemoveGoogleDirFolder" Value="" Type="string" KeyPath="yes"/>
            </RegistryKey>
          </Component>
          <Directory Id='GoogleWebToolkitDir' Name='Google Web Toolkit'>
            <Component Id="RemoveGoogleWebToolkitDir" Guid="*" DiskId="1" Win64="$(var.win64Flag)">
              <CreateFolder/>
              <RemoveFolder Id="RemoveGoogleWebToolkitDirFolder" On="uninstall" />
              <RegistryKey Root="HKMU" Key="$(var.gwtRegKey)" Action="createAndRemoveOnUninstall">
                <RegistryValue Name="RemoveGoogleWebToolkitDirFolder" Value="" Type="string" KeyPath="yes"/>
              </RegistryKey>
            </Component>
            <Directory Id='DeveloperPluginDir' Name='Developer Plugin'>
              <Component Id="RemoveDeveloperPluginDir" Guid="*" DiskId="1" Win64="$(var.win64Flag)">
                <CreateFolder/>
                <RemoveFolder Id="RemoveDeveloperPluginDirFolder" On="uninstall" />
                <RegistryKey Root="HKMU" Key="$(var.gwtRegKey)" Action="createAndRemoveOnUninstall">
                  <RegistryValue Name="RemoveDeveloperPluginDirFolder" Value="" Type="string" KeyPath="yes"/>
                </RegistryKey>
              </Component>
              <Directory Id='INSTALLDIR' Name='IE'>
                <Component Id="RemoveInstallDir" Guid="*" DiskId="1" Win64="$(var.win64Flag)">
                  <CreateFolder/>
                  <RemoveFolder Id="RemoveInstallerDirFolder" On="uninstall" />
                  <RegistryKey Root="HKMU" Key="$(var.gwtRegKey)" Action="createAndRemoveOnUninstall">
                    <RegistryValue Name="RemoveInstallerDirFolder" Value="" Type="string" KeyPath="yes"/>
                  </RegistryKey>
                </Component>
              </Directory>
            </Directory>
          </Directory>
        </Directory>
      </Directory>
    </Directory>
    <?endif?>

    <Component Id='registryValues' Directory='INSTALLDIR' Guid='*' >
      <RegistryKey Root='HKCU' Action='createAndRemoveOnUninstall' Key='$(var.updateRegKey)'>
        <RegistryValue Name='pv' Value='$(var.version)' Type='string' />
        <RegistryValue Name='name' Value='$(var.appName) ($(var.platformFriendlyName))' 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.
        -->
      <ComponentRef Id='RemoveGoogleDir' />
      <ComponentRef Id='RemoveGoogleWebToolkitDir' />
      <ComponentRef Id='RemoveDeveloperPluginDir' />
      <ComponentRef Id='RemoveInstallDir' />
      <ComponentGroupRef Id='oophmDll' />
      <ComponentRef Id='registryValues' />
    </Feature>
  </Product>
</Wix>
