diff options
author | Marc-André Lureau <marcandre.lureau@gmail.com> | 2013-05-18 02:42:45 +0200 |
---|---|---|
committer | Marc-André Lureau <marcandre.lureau@gmail.com> | 2013-07-09 15:40:48 +0200 |
commit | bdcfbbea563c62b96d3a91a64c64d1adc599d01d (patch) | |
tree | 28147fbde1746169e0925dbd98a195a97e97db3c | |
parent | 50d15c7427b43c39c640803c620d5321cf38efd5 (diff) |
Add MSI build rules
Requires msitools 0.92.
-rw-r--r-- | Makefile.am | 7 | ||||
-rw-r--r-- | configure.ac | 2 | ||||
-rw-r--r-- | usbclerk.wxs.in | 66 |
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> |