msi: build correct 64-bit msi

This commit is contained in:
Marc-André Lureau 2013-04-12 14:45:56 +02:00
parent d5daa55fe8
commit 29f7ee33ca
4 changed files with 46 additions and 23 deletions

View File

@ -26,6 +26,15 @@ AC_MSG_CHECKING([for native Win32])
case "$host_os" in
*mingw*|*cygwin*)
os_win32=yes
case "$host" in
amd64*|x86_64*)
WIXL_ARCH="x64"
;;
*)
WIXL_ARCH="x86"
;;
esac
AC_SUBST(WIXL_ARCH)
;;
*)
os_win32=no

View File

@ -23,21 +23,25 @@ virt-viewer-$(VERSION).exe: virt-viewer.nsis deps.txt
makensis -NOCD -DDESTDIR=$$DESTDIR $< >/dev/null && \
rm -rf $$DESTDIR
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 && \
virt-viewer-$(WIXL_ARCH)-$(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) \
--arch $(WIXL_ARCH) \
-o $@ \
$< virt-viewer-files.wxs && \
rm -rf $$DESTDIR virt-viewer-files.wxs
msi: virt-viewer-$(WIXL_ARCH)-$(VERSION).msi
CLEANFILES += \
deps.txt \
virt-viewer-$(VERSION).exe \
virt-viewer-$(VERSION).msi \
virt-viewer-$(WIXL_ARCH)-$(VERSION).msi \
$(NULL)
else #!WIN32

View File

@ -2,14 +2,30 @@
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<?define Version = "@VERSION@"?>
<?define Arch = "@WIXL_ARCH@"?>
<?if $(var.Arch) = "x64"?>
<?define GLIB_ARCH = "win64"?>
<?define ArchString = "64-bit"?>
<?define ArchProgramFilesFolder = "ProgramFiles64Folder"?>
<?define Win64 = "yes"?>
<?else?>
<?define GLIB_ARCH = "win32"?>
<?define ArchString = "32-bit"?>
<?define ArchProgramFilesFolder = "ProgramFilesFolder"?>
<?define Win64 = "no"?>
<?endif?>
<?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)"
<Product Id="*"
Name="VirtViewer $(var.Version) ($(var.ArchString))"
Manufacturer="$(env.MANUFACTURER)"
Version="$(var.Version)"
UpgradeCode="$(var.UpgradeCode)"
Language="1033">
<Package InstallerVersion="200" Compressed="yes" Comments="comments"/>
@ -48,7 +64,7 @@
</DirectoryRef>
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="ProgramFilesFolder">
<Directory Id="$(var.ArchProgramFilesFolder)">
<Directory Id="INSTALLDIR" Name="VirtViewer">
<Component Id="CDepsFile" Guid="*">
<File Id="filA1E799D196006E6DF67DACE15B8C6193" KeyPath="yes" Source="deps.txt"/>

View File

@ -88,23 +88,17 @@ MinGW Windows virt-viewer MSI
%mingw_configure --with-gtk=2.0 --with-buildid=-%{release}
%mingw_make %{?_smp_mflags} V=1
%if 0%{?mingw_build_win32} == 1
make -C build_win32$MINGW_BUILDDIR_SUFFIX GLIB_ARCH="win32" MANUFACTURER="Fedora" -C data virt-viewer-%{version}.msi
%endif
%if 0%{?mingw_build_win64} == 1
make -C build_win64$MINGW_BUILDDIR_SUFFIX GLIB_ARCH="win64" MANUFACTURER="Fedora" -C data virt-viewer-%{version}.msi
%endif
%mingw_make %{?_smp_mflags} V=1 -C data msi
%install
%mingw_make_install DESTDIR=$RPM_BUILD_ROOT
%if 0%{?mingw_build_win32} == 1
cp build_win32$MINGW_BUILDDIR_SUFFIX/data/virt-viewer-@VERSION@.msi $RPM_BUILD_ROOT/%{mingw32_datadir}/virt-viewer
cp build_win32$MINGW_BUILDDIR_SUFFIX/data/virt-viewer-x86-@VERSION@.msi $RPM_BUILD_ROOT/%{mingw32_datadir}/virt-viewer
%endif
%if 0%{?mingw_build_win64} == 1
cp build_win32$MINGW_BUILDDIR_SUFFIX/data/virt-viewer-@VERSION@.msi $RPM_BUILD_ROOT/%{mingw64_datadir}/virt-viewer
cp build_win32$MINGW_BUILDDIR_SUFFIX/data/virt-viewer-x64-@VERSION@.msi $RPM_BUILD_ROOT/%{mingw64_datadir}/virt-viewer
%endif
%find_lang virt-viewer