summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarc-André Lureau <marcandre.lureau@gmail.com>2013-05-18 02:42:45 +0200
committerMarc-André Lureau <marcandre.lureau@gmail.com>2013-07-09 15:40:48 +0200
commitbdcfbbea563c62b96d3a91a64c64d1adc599d01d (patch)
tree28147fbde1746169e0925dbd98a195a97e97db3c
parent50d15c7427b43c39c640803c620d5321cf38efd5 (diff)
Add MSI build rules
Requires msitools 0.92.
-rw-r--r--Makefile.am7
-rw-r--r--configure.ac2
-rw-r--r--usbclerk.wxs.in66
3 files changed, 69 insertions, 6 deletions
diff --git a/Makefile.am b/Makefile.am
index bb28145..16793d5 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -10,8 +10,5 @@ usbclerk_SOURCES = usbclerk.cpp vdlog.cpp usbclerk.h vdlog.h
usbclerktest_LDFLAGS =
usbclerktest_SOURCES = usbclerktest.cpp
-EXTRA_DIST = usbclerk.nsis
-
-usbclerk-setup.exe: usbclerk.nsis
- makensis $^
-
+EXTRA_DIST = usbclerk.wxs.in
+CONFIG_STATUS_DEPENDENCIES = usbclerk.wxs.in
diff --git a/configure.ac b/configure.ac
index c6c9329..cb40a36 100644
--- a/configure.ac
+++ b/configure.ac
@@ -19,7 +19,7 @@ m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])])
AC_OUTPUT([
Makefile
-usbclerk.nsis
+usbclerk.wxs
])
AC_MSG_NOTICE([
diff --git a/usbclerk.wxs.in b/usbclerk.wxs.in
new file mode 100644
index 0000000..f6f8140
--- /dev/null
+++ b/usbclerk.wxs.in
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
+
+ <?define Version = "@VERSION@"?>
+ <?define UpgradeCode = "4a2c31e6-b10b-4c56-be28-c1ac35f5c52e"?>
+ <Product Id="*" Name="USB Clerk" 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.spice-space.org"/>
+ <Property Id="ARPNOMODIFY" Value="1"/>
+ <Property Id="ARPNOREPAIR" Value="1"/>
+ <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="USB Clerk is already installed.">NOT NEWERVERSIONDETECTED</Condition>
+ <InstallExecuteSequence>
+ <RemoveExistingProducts After="InstallValidate"/>
+ </InstallExecuteSequence>
+
+ <!-- try to uninstall NSIS -->
+ <Property Id='NSISINSTALL'>
+ <RegistrySearch Id='NSISSearch' Root='HKLM' Key='Software\Spice\usbclerk' Type="raw" Name='Uninstall'/>
+ </Property>
+ <CustomAction Id="NSISUninstall" Property="NSISINSTALL" ExeCommand="/S" Execute="deferred" Impersonate="no" Return="ignore"/>
+ <InstallExecuteSequence>
+ <AppSearch Sequence='1'/>
+ <Custom Action="NSISUninstall" After="InstallInitialize">NSISINSTALL AND NOT Installed</Custom>
+ </InstallExecuteSequence>
+
+ <Directory Id="TARGETDIR" Name="SourceDir">
+ <Directory Id="ProgramFilesFolder">
+ <Directory Id="INSTALLDIR" Name="USBClerk">
+ <Component Id="CUSBClerk" Guid="e99861f7-524c-4107-860d-27f866072e53">
+ <File Id='usbclerkexe' Name='usbclerk.exe' DiskId='1' Source='usbclerk.exe' KeyPath='yes'/>
+ <ServiceInstall Id="USBClerkServiceInstall"
+ Name="USBClerk"
+ DisplayName="USB Clerk service"
+ Description="A Spice service for USB redirection"
+ Type="ownProcess"
+ Start="auto"
+ Account="[SERVICEACCOUNT]"
+ Password="[SERVICEPASSWORD]"
+ ErrorControl="normal"/>
+ <ServiceControl Id="StartService"
+ Name="USBClerk"
+ Start="install"
+ Stop="both"
+ Remove="uninstall"
+ Wait="yes"/>
+ </Component>
+ </Directory>
+ </Directory>
+ </Directory>
+
+ <Feature Id="Complete" Level="1">
+ <ComponentRef Id="CUSBClerk"/>
+ </Feature>
+
+ </Product>
+</Wix>