Adding installer for OOPHM IE plugin.

git-svn-id: https://google-web-toolkit.googlecode.com/svn/trunk@6328 8db76d5a-ed1c-0410-87a9-c151d255dfc7
diff --git a/plugins/MissingBrowserPlugin.html b/plugins/MissingBrowserPlugin.html
index 433c374..a136e8e 100644
--- a/plugins/MissingBrowserPlugin.html
+++ b/plugins/MissingBrowserPlugin.html
@@ -1,60 +1,59 @@
-<html>
-<head>
-<title>Missing GWT Browser Plugin</title>
-<!-- TODO: add JS code to detect browser/platform and just show that link -->
-</head>
-<body>
-<h1>No GWT Browser Plugin Detected</h1>
-<!-- TODO: alter language for final naming decisions -->
-GWT Development Mode needs a browser plugin to operate.  Please install the
-appropriate one for your browser.
-
-<ul>
- <li><b><font size="+1">Chrome</font></b>
- <br><font color="red"><b>Note: this is relatively untested, but appears to
-     work.</b></font><br>
-     If you are running the DevChannel version of Google Chrome on Windows x86
-     (<a href="http://dev.chromium.org/getting-involved/dev-channel">instructions</a> for
-     switching to DevChannel), you can install the
-     <a href="http://google-web-toolkit.googlecode.com/svn/trunk/plugins/npapi/prebuilt/gwtdmp.crx">GWT Chrome extension</a>.
-     Note that performance is slower than the other
-     browsers right now because the plugin runs in an isolated process, though
-     we may be able to improve performance before the final release.  Also, you
-     may get a "plugin unresponsive" warning which is annoying but harmless.
-     <p>
- <li><b><font size="+1">Firefox</font></b>
-  <br>Install the appropriate Firefox plugin via the normal plugin install
-  process.
- <ul>
-  <li><a href="http://google-web-toolkit.googlecode.com/svn/trunk/plugins/xpcom/prebuilt/gwt-dmp-ff2.xpi">Version 1.5-2.0</a> (Mac PPC/x86, Linux x86/x86_64)
-  <li><a
-    href="http://google-web-toolkit.googlecode.com/svn/trunk/plugins/xpcom/prebuilt/gwt-dmp-ff3.xpi">Version
-    3.0</a> (Win x86, Mac PPC/x86, Linux x86/x86_64)
-  <br><i>note that some Linux
-  distributions need a plugin built with alternate libraries which will be
-  available soon</i>
-  <!--
-  <li><a href="http://google-web-toolkit.googlecode.com/svn/trunk/plugins/xpcom/prebuilt/gwt-dmp-ff3+.xpi">Version 3.0 alternate libraries</a> (try this if the one above doesn't work on Linux, known to be needed on Fedora Core 10))
-  -->
-  <li><a href="http://google-web-toolkit.googlecode.com/svn/trunk/plugins/xpcom/prebuilt/gwt-dmp-ff35.xpi">Version 3.5</a> (Win x86, Mac PPC/x86, Linux x86/x86_64)
- </ul>
- <br>
- <li><b><font size="+1">Safari 3/4 (Mac PPC/x86)</font></b>
- <ul>
-  <li>Run the installer from this <a href="http://google-web-toolkit.googlecode.com/svn/trunk/plugins/webkit/prebuilt/oophm.dmg">disk image</a>.
-  <br><font color="red">Note that x86_64 is not yet supported, which means
-    Safari on Snow Leopard is not yet supported.</font>
- </ul>
- <br>
- <li><b><font size="+1">Internet Explorer on Windows (32-bit IE)</font></b>
- <ul>
-   <li>Download <a href="http://google-web-toolkit.googlecode.com/svn/trunk/plugins/ie/prebuilt/oophm.dll">oophm.dll</a>
-  to a safe location on local disk, then run regsvr32 oophm.dll and restart IE.
- </ul>
-</ul>
-
-<h2>Troubleshooting</h2>
-If you believe you have the plugin installed in your current browser (and
-profile, in the case of Firefox), see the <a href="http://code.google.com/p/google-web-toolkit/wiki/TroubleshootingOOPHM">TroubleshootingOOPHM</a> wiki page.
-</body>
-</html>
+<html>

+<head>

+<title>Missing GWT Browser Plugin</title>

+<!-- TODO: add JS code to detect browser/platform and just show that link -->

+</head>

+<body>

+<h1>No GWT Browser Plugin Detected</h1>

+<!-- TODO: alter language for final naming decisions -->

+GWT Development Mode needs a browser plugin to operate.  Please install the

+appropriate one for your browser.

+

+<ul>

+ <li><b><font size="+1">Chrome</font></b>

+ <br><font color="red"><b>Note: this is relatively untested, but appears to

+     work.</b></font><br>

+     If you are running the DevChannel version of Google Chrome on Windows x86

+     (<a href="http://dev.chromium.org/getting-involved/dev-channel">instructions</a> for

+     switching to DevChannel), you can install the

+     <a href="http://google-web-toolkit.googlecode.com/svn/trunk/plugins/npapi/prebuilt/gwtdmp.crx">GWT Chrome extension</a>.

+     Note that performance is slower than the other

+     browsers right now because the plugin runs in an isolated process, though

+     we may be able to improve performance before the final release.  Also, you

+     may get a "plugin unresponsive" warning which is annoying but harmless.

+     <p>

+ <li><b><font size="+1">Firefox</font></b>

+  <br>Install the appropriate Firefox plugin via the normal plugin install

+  process.

+ <ul>

+  <li><a href="http://google-web-toolkit.googlecode.com/svn/trunk/plugins/xpcom/prebuilt/gwt-dmp-ff2.xpi">Version 1.5-2.0</a> (Mac PPC/x86, Linux x86/x86_64)

+  <li><a

+    href="http://google-web-toolkit.googlecode.com/svn/trunk/plugins/xpcom/prebuilt/gwt-dmp-ff3.xpi">Version

+    3.0</a> (Win x86, Mac PPC/x86, Linux x86/x86_64)

+  <br><i>note that some Linux

+  distributions need a plugin built with alternate libraries which will be

+  available soon</i>

+  <!--

+  <li><a href="http://google-web-toolkit.googlecode.com/svn/trunk/plugins/xpcom/prebuilt/gwt-dmp-ff3+.xpi">Version 3.0 alternate libraries</a> (try this if the one above doesn't work on Linux, known to be needed on Fedora Core 10))

+  -->

+  <li><a href="http://google-web-toolkit.googlecode.com/svn/trunk/plugins/xpcom/prebuilt/gwt-dmp-ff35.xpi">Version 3.5</a> (Win x86, Mac PPC/x86, Linux x86/x86_64)

+ </ul>

+ <br>

+ <li><b><font size="+1">Safari 3/4 (Mac PPC/x86)</font></b>

+ <ul>

+  <li>Run the installer from this <a href="http://google-web-toolkit.googlecode.com/svn/trunk/plugins/webkit/prebuilt/oophm.dmg">disk image</a>.

+  <br><font color="red">Note that x86_64 is not yet supported, which means

+    Safari on Snow Leopard is not yet supported.</font>

+ </ul>

+ <br>

+ <li><b><font size="+1">Internet Explorer on Windows (32-bit IE)</font></b>

+ <ul>

+   <li>Download and run the "<a href="http://google-web-toolkit.googlecode.com/svn/trunk/plugins/ie/installer/GwtDevModeIePluginInstaller.msi">GWT Dev Mode Plugin for IE</a>" installer.

+ </ul>

+</ul>

+

+<h2>Troubleshooting</h2>

+If you believe you have the plugin installed in your current browser (and

+profile, in the case of Firefox), see the <a href="http://code.google.com/p/google-web-toolkit/wiki/TroubleshootingOOPHM">TroubleshootingOOPHM</a> wiki page.

+</body>

+</html>

diff --git a/plugins/ie/installer/COPYING.rtf b/plugins/ie/installer/COPYING.rtf
new file mode 100644
index 0000000..fb850bc
--- /dev/null
+++ b/plugins/ie/installer/COPYING.rtf
Binary files differ
diff --git a/plugins/ie/installer/GwtBanner.bmp b/plugins/ie/installer/GwtBanner.bmp
new file mode 100644
index 0000000..5e85ba2
--- /dev/null
+++ b/plugins/ie/installer/GwtBanner.bmp
Binary files differ
diff --git a/plugins/ie/installer/GwtDevModeIePluginInstaller.msi b/plugins/ie/installer/GwtDevModeIePluginInstaller.msi
new file mode 100644
index 0000000..eac8e49
--- /dev/null
+++ b/plugins/ie/installer/GwtDevModeIePluginInstaller.msi
Binary files differ
diff --git a/plugins/ie/installer/GwtDialog.bmp b/plugins/ie/installer/GwtDialog.bmp
new file mode 100644
index 0000000..e60c1df
--- /dev/null
+++ b/plugins/ie/installer/GwtDialog.bmp
Binary files differ
diff --git a/plugins/ie/installer/README.txt b/plugins/ie/installer/README.txt
new file mode 100644
index 0000000..075533a
--- /dev/null
+++ b/plugins/ie/installer/README.txt
@@ -0,0 +1,19 @@
+This directory contains the source code for the Windows installer. A new installer should

+be built using the build script every time oophm.dll is replaced.

+

+The build script will only work on a Windows system with WIX installed:

+http://wix.sourceforge.net/

+

+

+Files contained in this directory:

+installer.wxs.xml - the WIX script used to generate the installer

+

+GwtDevModeIePluginInstaller.msi - the windows installer, which is replaced when the build script is executed

+

+GwtDialog.bmp - the image displayed on the first page of the installer

+

+GwtBanner.bmp - the image displayed at the top of every page other than the first in the installer

+

+COPYING.rtf - Our license agreement in RTF format

+

+build.xml - the ant build script
\ No newline at end of file
diff --git a/plugins/ie/installer/build.xml b/plugins/ie/installer/build.xml
new file mode 100644
index 0000000..8cd2220
--- /dev/null
+++ b/plugins/ie/installer/build.xml
@@ -0,0 +1,48 @@
+<!--
+  Build file for the Windows IE Plugin installer. This build should only be
+  run on a Windows system with WIX installed. You can download WIX at:
+  http://wix.sourceforge.net/ 
+-->
+<project name="ieInstaller" default="build" basedir=".">
+  <property name="gwt.root" location="../../../" />
+  <property name="project.tail" value="plugins/ie/installer" />
+  <import file="../../../common.ant.xml" />
+
+  <property name="wix.bin" location="C:/Program Files/Windows Installer XML v3/bin" />
+  <property name="wix.log" location="${project.build}/wix.log" />
+  <property name="gwt.oophmIeInstallerName" value="GwtDevModeIePluginInstaller.msi" />
+
+  <target name="build" description="Build the installer">
+    <mkdir dir="${project.build}" />
+
+    <echo message="Preparing WIX script for oophm.dll" />
+    <exec executable="${wix.bin}/heat.exe" failonerror="yes" output="${wix.log}">
+      <arg line="file ..\prebuilt\oophm.dll" />
+      <arg line="-out ${project.build}/oophm.wxs.xml" />
+      <arg line="-ag -g1" />
+      <arg line="-dr INSTALLDIR" />
+      <arg line="-cg oophmDll" />
+      <arg line="-var var.PluginIeDir" />
+    </exec>
+
+    <echo message="Compiling WIX scripts" />
+    <exec executable="${wix.bin}/candle.exe" failonerror="yes" output="${wix.log}" append="true">
+      <arg line="-out ${project.build}/" />
+      <arg line="-dPluginIeDir=..\\" />
+      <arg line="${project.build}/oophm.wxs.xml" />
+      <arg line="installer.wxs.xml" />
+    </exec>
+
+    <echo message="Generating Windows Installer" />
+    <exec executable="${wix.bin}/light.exe" failonerror="yes" output="${wix.log}" append="true">
+      <arg line="-o ${project.build}/${gwt.oophmIeInstallerName}" />
+      <arg line="-ext WixUIExtension" />
+      <arg line="${project.build}/oophm.wxs.wixobj" />
+      <arg line="${project.build}/installer.wxs.wixobj" />
+    </exec>
+
+    <echo message="Copying Windows Installer to installer directory" />
+    <copy file="${project.build}/${gwt.oophmIeInstallerName}" tofile="${gwt.oophmIeInstallerName}" />
+  </target>
+
+</project>
diff --git a/plugins/ie/installer/installer.wxs.xml b/plugins/ie/installer/installer.wxs.xml
new file mode 100644
index 0000000..54c9518
--- /dev/null
+++ b/plugins/ie/installer/installer.wxs.xml
@@ -0,0 +1,163 @@
+<?xml version='1.0' encoding='windows-1252'?>

+<Wix

+  xmlns='http://schemas.microsoft.com/wix/2006/wi'>

+

+  <!--

+    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='GWT Development Mode Plugin for IE'

+    Id='*'

+    UpgradeCode='9a5e649a-ec63-4c7d-99bf-75adb345e7e5'

+    Language='1033'

+    Codepage='1252'

+    Version='1.0.0'

+    Manufacturer='Google'>

+

+    <Package

+      Id='*'

+      Keywords='Installer'

+      Description='GWT Development Mode Plugin for IE Installer '

+      Manufacturer='Google'

+      InstallerVersion='100'

+      Languages='1033'

+      Compressed='yes'

+      SummaryCodepage='1252' />

+    <Media

+      Id='1'

+      Cabinet='product.cab'

+      EmbedCab='yes' />

+

+    <!-- Remove old version completely when upgrading.  -->

+    <Upgrade

+      Id='9a5e649a-ec63-4c7d-99bf-75adb345e7e5'>

+      <UpgradeVersion

+        OnlyDetect='no'

+        Property='PREVIOUSFOUND'

+        Minimum='0.0.0'

+        IncludeMinimum='yes'

+        RemoveFeatures='all' />

+    </Upgrade>

+    <InstallExecuteSequence>

+      <LaunchConditions

+        After='AppSearch' />

+      <RemoveExistingProducts

+        After='InstallValidate' />

+    </InstallExecuteSequence>

+

+    <!-- Default to the old install directory if upgrading. -->

+    <Property

+      Id="INSTALLDIR">

+      <RegistrySearch

+        Id='OldInstallDirSarch'

+        Type='raw'

+        Root='HKLM'

+        Key='Software\Google\GwtDevModePluginIE\InstallDir' />

+    </Property>

+

+    <!-- Define the install directory. -->

+    <Directory

+      Id='TARGETDIR'

+      Name='SourceDir'>

+      <Directory

+        Id='ProgramFilesFolder'

+        Name='PFiles'>

+        <Directory

+          Id='Google'

+          Name='Google'>

+          <!-- INSTALLDIR is configurable by the user. -->

+          <Directory

+            Id='INSTALLDIR'

+            Name='GWT Dev Mode Plugin for IE' />

+        </Directory>

+      </Directory>

+    </Directory>

+

+    <!-- Add an uninstall shortcut to the install directory. -->

+    <DirectoryRef

+      Id="INSTALLDIR">

+      <Component

+        Id='uninstaller'

+        Guid='*'>

+        <!--

+          Save the install directory to the registry so we can reuse it

+          on upgrades.

+        -->

+        <RegistryKey

+          Root='HKLM'

+          Action='createAndRemoveOnUninstall'

+          Key='Software\Google\GwtDevModePluginIE\InstallDir'>

+          <RegistryValue

+            Value='[INSTALLDIR]'

+            Type='string' />

+        </RegistryKey>

+        <Shortcut

+          Id='UninstallShortcut'

+          Name='Uninstall GWT Plugin for IE'

+          Target='[System64Folder]msiexec.exe'

+          Arguments='/x [ProductCode]'

+          Description='Uninstalls GWT Development Mode Plugin for IE'

+          WorkingDirectory='SystemDir'

+          Directory='INSTALLDIR' />

+

+        <!-- Remove the shortcut and installation folder on uninstall. -->

+        <RemoveFile

+          Id='RemoveUninstallShortcut'

+          Name='Uninstall GWT Plugin for IE'

+          On='uninstall' />

+        <RemoveFolder

+          Id='RemoveInstallFolder'

+          On='uninstall' />

+      </Component>

+    </DirectoryRef>

+

+    <!-- Define the features to install. -->

+    <Feature

+      Id='CompleteFeature'

+      Title='IE Plugin'

+      Description='GWT Development Mode Plugin for IE.'

+      Display='expand'

+      Level='1'

+      Absent='disallow'>

+      <!--

+        Loaded from oophm.wxs.xml, which is generated by the build

+        script.

+      -->

+      <ComponentGroupRef

+        Id='oophmDll' />

+      <ComponentRef

+        Id='uninstaller' />

+    </Feature>

+

+    <!--

+      Setup the installation UI. WixUI_InstallDir is a simple UI that

+      let's the user choose the installation directory. WIXUI_INSTALLDIR

+      defines the property that contains the install directory.

+    -->

+    <Property

+      Id='WIXUI_INSTALLDIR'

+      Value='INSTALLDIR' />

+    <UIRef

+      Id='WixUI_InstallDir' />

+    <UIRef

+      Id='WixUI_ErrorProgressText' />

+

+    <!-- The license agreement in RTF format. -->

+    <WixVariable

+      Id='WixUILicenseRtf'

+      Value='COPYING.rtf' />

+

+    <!-- The image shown at the top of all pages but the first. -->

+    <WixVariable

+      Id='WixUIBannerBmp'

+      Value='GwtBanner.bmp' />

+

+    <!-- The image shown on the first page. -->

+    <WixVariable

+      Id='WixUIDialogBmp'

+      Value='GwtDialog.bmp' />

+

+  </Product>

+</Wix>
\ No newline at end of file