win: add virt-viewer.msi build rule

In order to build the MSI, you will need msitools:
http://ftp.gnome.org/pub/GNOME/sources/msitools/

The MANUFACTURER environment variable is mandatory and should be set
to the manufacturer/author of the MSI build.
This commit is contained in:
Marc-André Lureau 2013-01-16 17:27:58 +01:00
parent 6203eff3bc
commit db19b2ec99
3 changed files with 111 additions and 1 deletions

View File

@ -203,6 +203,7 @@ AC_DEFINE_UNQUOTED([BUILDID], "$with_buildid", [Build version details])
AC_CONFIG_FILES([
Makefile
data/Makefile
data/virt-viewer.wxs
data/virt-viewer.nsis
data/virt-viewer-debug.nsis
icons/Makefile

View File

@ -3,11 +3,13 @@ CLEANFILES =
EXTRA_DIST = \
spice-xpi-client-remote-viewer \
virt-viewer.wxs.in \
virt-viewer.nsis.in \
virt-viewer-debug.nsis.in \
$(NULL)
if OS_WIN32
deps.txt:
$(AM_V_GEN)rpm -qa | grep $(host_os) | sort | unix2dos > $@
@ -17,7 +19,22 @@ virt-viewer-$(VERSION).exe: virt-viewer.nsis deps.txt
makensis -NOCD -DDESTDIR=$$DESTDIR $< >/dev/null && \
rm -rf $$DESTDIR
CLEANFILES += deps.txt virt-viewer-$(VERSION).exe
virt-viewer-$(VERSION).msi: virt-viewer.wxs deps.txt
$(AM_V_GEN)DESTDIR=`mktemp -d` && \
make -C $(top_builddir) install DESTDIR=$$DESTDIR >/dev/null && \
find $$DESTDIR | wixl-heat -p $$DESTDIR$(prefix)/ \
--component-group CG.virt-viewer --var var.DESTDIR \
--directory-ref=INSTALLDIR > virt-viewer-files.wxs && \
wixl -D SourceDir=$(prefix) \
-D DESTDIR=$$DESTDIR$(prefix) -o $@ \
$< virt-viewer-files.wxs && \
rm -rf $$DESTDIR virt-viewer-files.wxs
CLEANFILES = \
deps.txt \
virt-viewer-$(VERSION).exe \
virt-viewer-$(VERSION).msi \
$(NULL)
else #!WIN32

92
data/virt-viewer.wxs.in Normal file
View File

@ -0,0 +1,92 @@
<?xml version="1.0" encoding="utf-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<?require spice-gtk.wxi?>
<?require gtk-vnc.wxi?>
<?require libvirt.wxi?>
<?define Version = "@VERSION@"?>
<?define UpgradeCode = "5B027138-1A63-49E6-877E-055E5EEC1903"?>
<Product Id="*" Name="VirtViewer" Manufacturer="$(env.MANUFACTURER)"
Version="$(var.Version)" UpgradeCode="$(var.UpgradeCode)"
Language="1033">
<Package InstallerVersion="200" Compressed="yes" Comments="comments"/>
<Media Id="1" Cabinet="cabinet.cab" EmbedCab="yes"/>
<Property Id="ARPHELPLINK" Value="http://www.virt-tools.org"/>
<Property Id="ARPNOMODIFY" Value="1"/>
<Property Id="ARPNOREPAIR" Value="1"/>
<Property Id="ARPPRODUCTICON" Value="virt-viewer.ico"/>
<Property Id="ARPURLINFOABOUT" Value="http://www.virt-tools.org/about"/>
<Upgrade Id="$(var.UpgradeCode)">
<UpgradeVersion Minimum="$(var.Version)" OnlyDetect="yes" Property="NEWERVERSIONDETECTED"/>
<UpgradeVersion Minimum="0.0.0" Maximum="$(var.Version)" IncludeMinimum="yes" IncludeMaximum="no" Property="OLDERVERSIONBEINGUPGRADED"/>
</Upgrade>
<Condition Message="VirtViewer is already installed.">NOT NEWERVERSIONDETECTED</Condition>
<DirectoryRef Id="TARGETDIR">
<Component Id="CRegistryEntries" Guid="*">
<RegistryKey Root='HKLM' Key='Software\Microsoft\Internet Explorer\Low Rights\ElevationPolicy\{96190E9D-6FBB-64DB-9095-29F6FDE0B897}'>
<RegistryValue Type='string' Name='AppPath' Value='[INSTALLDIR]\bin'/>
<RegistryValue Type='string' Name='AppName' Value='remote-viewer.exe'/>
<RegistryValue Type='integer' Name='Policy' Value='3'/>
</RegistryKey>
<RegistryKey Root='HKLM' Key='Software\spice-space.org\spicex'>
<RegistryValue Type='string' Name='client' Value='[INSTALLDIR]\bin\remote-viewer.exe --spice-controller'/>
</RegistryKey>
</Component>
<Component Id="CProgIds" Guid="89D6F46D-9C5E-4D65-8456-58FC361E553E">
<ProgId Id='VirtViewer.vvfile' Description='VirtViewer connection file'>
<Extension Id='vv' ContentType='application/x-virt-viewer'>
<Verb Id='open' Command='Open' TargetFile='fil808B4A5BAB4ACD727D3823632E798743' Argument='"%1"' />
<MIME ContentType="application/x-virt-viewer" Default="yes"/>
</Extension>
</ProgId>
</Component>
</DirectoryRef>
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="ProgramFilesFolder">
<Directory Id="INSTALLDIR" Name="VirtViewer">
<Component Id="CDepsFile" Guid="*">
<File Id="filA1E799D196006E6DF67DACE15B8C6193" KeyPath="yes" Source="deps.txt"/>
</Component>
</Directory>
</Directory>
<Directory Id="ProgramMenuFolder">
<Directory Id="MENUDIR" Name="VirtViewer"/>
</Directory>
</Directory>
<DirectoryRef Id="MENUDIR">
<Component Id="CShortcut" Guid="*">
<Shortcut Id="ApplicationStartMenuShortcut"
Name="Remote viewer"
Description="A SPICE/VNC client"
Target="[INSTALLDIR]\bin\remote-viewer.exe"
Icon="virt-viewer.ico"/>
<RemoveFolder Id="MENUDIR" On="uninstall"/>
<RegistryValue Root="HKCU" Key="Software\VirtViewer\remote-viewer-shortcut" Name="installed" Type="integer" Value="1" KeyPath="yes"/>
</Component>
</DirectoryRef>
<Feature Id="Complete" Level="1">
<ComponentGroupRef Id="CG.spice-gtk"/>
<ComponentGroupRef Id="CG.libvirt"/>
<ComponentGroupRef Id="CG.gtk-vnc"/>
<ComponentGroupRef Id="CG.virt-viewer"/>
<ComponentRef Id="CDepsFile"/>
<ComponentRef Id="CShortcut"/>
<ComponentRef Id="CRegistryEntries"/>
<ComponentRef Id="CProgIds"/>
</Feature>
<InstallExecuteSequence>
<RemoveExistingProducts After="InstallValidate"/>
</InstallExecuteSequence>
<Icon Id="virt-viewer.ico" SourceFile="virt-viewer.ico"/>
</Product>
</Wix>