--- a/contrib/wix/contrib.wxs Wed Nov 24 13:43:40 2010 -0600
+++ b/contrib/wix/contrib.wxs Fri Nov 26 18:04:10 2010 -0600
@@ -2,6 +2,7 @@
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<?include guids.wxi ?>
+ <?include defines.wxi ?>
<Fragment>
<ComponentGroup Id="contribFolder">
@@ -13,7 +14,7 @@
<Fragment>
<DirectoryRef Id="INSTALLDIR">
<Directory Id="contribdir" Name="contrib" FileSource="$(var.SourceDir)">
- <Component Id="contrib" Guid="$(var.contrib.guid)">
+ <Component Id="contrib" Guid="$(var.contrib.guid)" Win64='$(var.IsX64)'>
<File Name="bash_completion" KeyPath="yes" />
<File Name="hgk" />
<File Name="hgweb.fcgi" />
@@ -27,7 +28,7 @@
<File Name="zsh_completion" />
</Component>
<Directory Id="vimdir" Name="vim">
- <Component Id="contrib.vim" Guid="$(var.contrib.vim.guid)">
+ <Component Id="contrib.vim" Guid="$(var.contrib.vim.guid)" Win64='$(var.IsX64)'>
<File Name="hg-menu.vim" KeyPath="yes" />
<File Name="HGAnnotate.vim" />
<File Name="hgcommand.vim" />
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/contrib/wix/defines.wxi Fri Nov 26 18:04:10 2010 -0600
@@ -0,0 +1,9 @@
+<Include>
+
+ <?if $(var.Platform) = "x64" ?>
+ <?define IsX64 = yes ?>
+ <?else?>
+ <?define IsX64 = no ?>
+ <?endif?>
+
+</Include>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/contrib/wix/dist.wxs Fri Nov 26 18:04:10 2010 -0600
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
+
+ <?include guids.wxi ?>
+ <?include defines.wxi ?>
+
+ <Fragment>
+ <DirectoryRef Id="INSTALLDIR" FileSource="$(var.SourceDir)">
+ <Component Id="distOutput" Guid="$(var.dist.guid)" Win64='$(var.IsX64)'>
+ <File Name="library.zip" KeyPath="yes" />
+ <File Name="mercurial.base85.pyd" />
+ <File Name="mercurial.bdiff.pyd" />
+ <File Name="mercurial.diffhelpers.pyd" />
+ <File Name="mercurial.mpatch.pyd" />
+ <File Name="mercurial.osutil.pyd" />
+ <File Name="mercurial.parsers.pyd" />
+ <File Name="pyexpat.pyd" />
+ <File Name="python26.dll" />
+ <File Name="pythoncom26.dll" />
+ <File Name="pywintypes26.dll" />
+ <File Name="bz2.pyd" />
+ <File Name="select.pyd" />
+ <File Name="unicodedata.pyd" />
+ <File Name="win32api.pyd" />
+ <File Name="win32com.shell.shell.pyd" />
+ <File Name="win32console.pyd" />
+ <File Name="win32file.pyd" />
+ <File Name="win32gui.pyd" />
+ <File Name="win32pipe.pyd" />
+ <File Name="win32process.pyd" />
+ <File Name="_elementtree.pyd" />
+ <File Name="_hashlib.pyd" />
+ <File Name="_socket.pyd" />
+ <File Name="_ssl.pyd" />
+ <File Name="_win32sysloader.pyd" />
+ </Component>
+ </DirectoryRef>
+ </Fragment>
+
+</Wix>
--- a/contrib/wix/doc.wxs Wed Nov 24 13:43:40 2010 -0600
+++ b/contrib/wix/doc.wxs Fri Nov 26 18:04:10 2010 -0600
@@ -2,6 +2,7 @@
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<?include guids.wxi ?>
+ <?include defines.wxi ?>
<Fragment>
<ComponentGroup Id="docFolder">
@@ -15,7 +16,7 @@
<Fragment>
<DirectoryRef Id="INSTALLDIR">
<Directory Id="docdir" Name="doc" FileSource="$(var.SourceDir)">
- <Component Id="doc.hg.1.html" Guid="$(var.doc.hg.1.html.guid)">
+ <Component Id="doc.hg.1.html" Guid="$(var.doc.hg.1.html.guid)" Win64='$(var.IsX64)'>
<File Name="hg.1.html" KeyPath="yes">
<Shortcut Id="hg1StartMenu" Directory="ProgramMenuDir"
Name="Mercurial Command Reference"
@@ -23,7 +24,7 @@
/>
</File>
</Component>
- <Component Id="doc.hgignore.5.html" Guid="$(var.doc.hgignore.5.html.guid)">
+ <Component Id="doc.hgignore.5.html" Guid="$(var.doc.hgignore.5.html.guid)" Win64='$(var.IsX64)'>
<File Name="hgignore.5.html" KeyPath="yes">
<Shortcut Id="hgignore5StartMenu" Directory="ProgramMenuDir"
Name="Mercurial Ignore Files"
@@ -31,7 +32,7 @@
/>
</File>
</Component>
- <Component Id="doc.hgrc.5.html" Guid="$(var.doc.hgrc.5.html)">
+ <Component Id="doc.hgrc.5.html" Guid="$(var.doc.hgrc.5.html)" Win64='$(var.IsX64)'>
<File Name="hgrc.5.html" KeyPath="yes">
<Shortcut Id="hgrc5StartMenu" Directory="ProgramMenuDir"
Name="Mercurial Configuration Files"
@@ -39,7 +40,7 @@
/>
</File>
</Component>
- <Component Id="doc.style.css" Guid="$(var.doc.style.css)">
+ <Component Id="doc.style.css" Guid="$(var.doc.style.css)" Win64='$(var.IsX64)'>
<File Name="style.css" KeyPath="yes" />
</Component>
</Directory>
--- a/contrib/wix/guids.wxi Wed Nov 24 13:43:40 2010 -0600
+++ b/contrib/wix/guids.wxi Fri Nov 26 18:04:10 2010 -0600
@@ -8,6 +8,9 @@
<?define contrib.guid = {F17D27B7-4A6B-4cd2-AE72-FED3CFAA585E} ?>
<?define contrib.vim.guid = {BB04903A-652D-4C4F-9590-2BD07A2304F2} ?>
+ <!-- dist.wxs -->
+ <?define dist.guid = {0F63D160-0740-4BAF-BF25-0C6930310F51} ?>
+
<!-- doc.wxs -->
<?define doc.hg.1.html.guid = {AAAA3FDA-EDC5-4220-B59D-D342722358A2} ?>
<?define doc.hgignore.5.html.guid = {AA9118C4-F3A0-4429-A5F4-5A1906B2D67F} ?>
@@ -42,5 +45,6 @@
<?define mercurial.rc.guid = {1D5FAEEE-7E6E-43B1-9F7F-802714316B15} ?>
<?define mergetools.rc.guid = {E8A1DC29-FF40-4B5F-BD12-80B9F7BF0CCD} ?>
<?define ProgramMenuDir.guid = {D5A63320-1238-489B-B68B-CF053E9577CA} ?>
+ <?define hgcmd.guid = {65CCC756-E72E-4C5F-901E-D575EDC80DB3} ?>
</Include>
--- a/contrib/wix/help.wxs Wed Nov 24 13:43:40 2010 -0600
+++ b/contrib/wix/help.wxs Fri Nov 26 18:04:10 2010 -0600
@@ -2,11 +2,12 @@
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<?include guids.wxi ?>
+ <?include defines.wxi ?>
<Fragment>
<DirectoryRef Id="INSTALLDIR">
<Directory Id="helpdir" Name="help" FileSource="$(var.SourceDir)">
- <Component Id="helpFolder" Guid="$(var.helpFolder.guid)">
+ <Component Id="helpFolder" Guid="$(var.helpFolder.guid)" Win64='$(var.IsX64)'>
<File Name="config.txt" KeyPath="yes" />
<File Name="dates.txt" />
<File Name="diffs.txt" />
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/contrib/wix/hg.cmd Fri Nov 26 18:04:10 2010 -0600
@@ -0,0 +1,3 @@
+@echo off
+rem launch hg.exe from parent folder
+"%~dp0\..\hg.exe" %*
--- a/contrib/wix/i18n.wxs Wed Nov 24 13:43:40 2010 -0600
+++ b/contrib/wix/i18n.wxs Fri Nov 26 18:04:10 2010 -0600
@@ -2,6 +2,7 @@
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<?include guids.wxi ?>
+ <?include defines.wxi ?>
<?define hg_po_langs =
da;de;el;fr;it;ja;pt_BR;sv;zh_CN;zh_TW
@@ -10,7 +11,7 @@
<Fragment>
<DirectoryRef Id="INSTALLDIR">
<Directory Id="i18ndir" Name="i18n" FileSource="$(var.SourceDir)">
- <Component Id="i18nFolder" Guid="$(var.i18nFolder.guid)">
+ <Component Id="i18nFolder" Guid="$(var.i18nFolder.guid)" Win64='$(var.IsX64)'>
<File Name="hggettext" KeyPath="yes" />
<?foreach LANG in $(var.hg_po_langs) ?>
<File Id="hg.$(var.LANG).po"
--- a/contrib/wix/locale.wxs Wed Nov 24 13:43:40 2010 -0600
+++ b/contrib/wix/locale.wxs Fri Nov 26 18:04:10 2010 -0600
@@ -1,6 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
+ <?include defines.wxi ?>
+
<?define hglocales =
da;de;el;fr;it;ja;pt_BR;sv;zh_CN;zh_TW
?>
@@ -19,7 +21,7 @@
<?foreach LOC in $(var.hglocales) ?>
<Directory Id="hg.locale.$(var.LOC)" Name="$(var.LOC)">
<Directory Id="hg.locale.$(var.LOC).LC_MESSAGES" Name="LC_MESSAGES">
- <Component Id="hg.locale.$(var.LOC)" Guid="*">
+ <Component Id="hg.locale.$(var.LOC)" Guid="*" Win64='$(var.IsX64)'>
<File Id="hg.mo.$(var.LOC)" Name="hg.mo" KeyPath="yes" />
</Component>
</Directory>
--- a/contrib/wix/mercurial.wxs Wed Nov 24 13:43:40 2010 -0600
+++ b/contrib/wix/mercurial.wxs Fri Nov 26 18:04:10 2010 -0600
@@ -7,9 +7,16 @@
GNU General Public License version 2 or any later version. -->
<?include guids.wxi ?>
+ <?include defines.wxi ?>
+
+ <?if $(var.Platform) = "x64" ?>
+ <?define PFolder = ProgramFiles64Folder ?>
+ <?else?>
+ <?define PFolder = ProgramFilesFolder ?>
+ <?endif?>
<Product Id='*'
- Name='Mercurial $(var.Version)'
+ Name='Mercurial $(var.Version) ($(var.Platform))'
UpgradeCode='$(var.ProductUpgradeCode)'
Language='1033' Codepage='1252' Version='$(var.Version)'
Manufacturer='Matt Mackall and others'>
@@ -18,6 +25,7 @@
Keywords='Installer'
Description="Mercurial distributed SCM (version $(var.Version))"
Comments='$(var.Comments)'
+ Platform='$(var.Platform)'
Manufacturer='Matt Mackall and others'
InstallerVersion='300' Languages='1033' Compressed='yes' SummaryCodepage='1252' />
@@ -25,8 +33,14 @@
CompressionLevel='high' />
<Property Id='DiskPrompt' Value="Mercurial $(var.Version) Installation [1]" />
- <Condition Message='Mercurial requires Windows XP or higher'
- >VersionNT >= 501</Condition>
+ <?if $(var.Platform) = "x86" ?>
+ <Condition Message = "This x86 installer may not be used on a x64 platform">
+ NOT VersionNT64
+ </Condition>
+ <?endif?>
+ <Condition Message='Mercurial MSI installers require Windows XP or higher'>
+ VersionNT >= 501
+ </Condition>
<Property Id="INSTALLDIR">
<ComponentSearch Id='SearchForMainExecutableComponent'
@@ -48,39 +62,44 @@
<Property Id='LicenseAccepted'>1</Property>
<Directory Id='TARGETDIR' Name='SourceDir'>
- <Directory Id='ProgramFilesFolder' Name='PFiles'>
+ <Directory Id='$(var.PFolder)' Name='PFiles'>
<Directory Id='INSTALLDIR' Name='Mercurial'>
- <Component Id='MainExecutable' Guid='$(var.ComponentMainExecutableGUID)'>
+ <Component Id='MainExecutable' Guid='$(var.ComponentMainExecutableGUID)' Win64='$(var.IsX64)'>
<File Id='hgEXE' Name='hg.exe' Source='dist\hg.exe' KeyPath='yes' />
- <File Id='libraryZIP' Name='library.zip' Source='dist\library.zip' />
- <File Id='pythonDLL' Name='python26.dll' Source='dist\python26.dll' />
<Environment Id="Environment" Name="PATH" Part="last" System="yes"
- Permanent="no" Value="[INSTALLDIR]" Action="set" />
+ Permanent="no" Value="[INSTALLDIR]bin" Action="set" />
</Component>
- <Component Id='ReadMe' Guid='$(var.ReadMe.guid)'>
+ <Component Id='ReadMe' Guid='$(var.ReadMe.guid)' Win64='$(var.IsX64)'>
<File Id='ReadMe' Name='ReadMe.html' Source='contrib\win32\ReadMe.html'
KeyPath='yes'/>
</Component>
- <Component Id='COPYING' Guid='$(var.COPYING.guid)'>
+ <Component Id='COPYING' Guid='$(var.COPYING.guid)' Win64='$(var.IsX64)'>
<File Id='COPYING' Name='COPYING.rtf' Source='contrib\wix\COPYING.rtf'
KeyPath='yes'/>
</Component>
+
<Directory Id='HGRCD' Name='hgrc.d'>
- <Component Id='mercurial.rc' Guid='$(var.mercurial.rc.guid)'>
+ <Component Id='mercurial.rc' Guid='$(var.mercurial.rc.guid)' Win64='$(var.IsX64)'>
<File Id='mercurial.rc' Name='Mercurial.rc' Source='contrib\win32\mercurial.ini'
ReadOnly='yes' KeyPath='yes'/>
</Component>
- <Component Id='mergetools.rc' Guid='$(var.mergetools.rc.guid)'>
+ <Component Id='mergetools.rc' Guid='$(var.mergetools.rc.guid)' Win64='$(var.IsX64)'>
<File Id='mergetools.rc' Name='MergeTools.rc' Source='contrib\mergetools.hgrc'
ReadOnly='yes' KeyPath='yes'/>
</Component>
</Directory>
+
+ <Directory Id='binFolder' Name='bin'>
+ <Component Id='HgCmd' Guid='$(var.hgcmd.guid)' Win64='$(var.IsX64)'>
+ <File Id='Hg.Cmd' Name='hg.cmd' KeyPath='yes' Source='contrib\wix\hg.cmd' />
+ </Component>
+ </Directory>
</Directory>
</Directory>
<Directory Id="ProgramMenuFolder" Name="Programs">
<Directory Id="ProgramMenuDir" Name="Mercurial $(var.Version)">
- <Component Id="ProgramMenuDir" Guid="$(var.ProgramMenuDir.guid)">
+ <Component Id="ProgramMenuDir" Guid="$(var.ProgramMenuDir.guid)" Win64='$(var.IsX64)'>
<RemoveFolder Id='ProgramMenuDir' On='uninstall' />
<RegistryValue Root='HKCU' Key='Software\Mercurial\InstallDir' Type='string'
Value='[INSTALLDIR]' KeyPath='yes' />
@@ -90,10 +109,17 @@
</Directory>
</Directory>
- <Merge Id='VCRuntime' DiskId='1' Language='1033'
- SourceFile='$(var.VCRedistSrcDir)\microsoft.vcxx.crt.x86_msm.msm' />
- <Merge Id='VCRuntimePolicy' DiskId='1' Language='1033'
- SourceFile='$(var.VCRedistSrcDir)\policy.x.xx.microsoft.vcxx.crt.x86_msm.msm' />
+ <?if $(var.Platform) = "x86" ?>
+ <Merge Id='VCRuntime' DiskId='1' Language='1033'
+ SourceFile='$(var.VCRedistSrcDir)\microsoft.vcxx.crt.x86_msm.msm' />
+ <Merge Id='VCRuntimePolicy' DiskId='1' Language='1033'
+ SourceFile='$(var.VCRedistSrcDir)\policy.x.xx.microsoft.vcxx.crt.x86_msm.msm' />
+ <?else?>
+ <Merge Id='VCRuntime' DiskId='1' Language='1033'
+ SourceFile='$(var.VCRedistSrcDir)\microsoft.vcxx.crt.x64_msm.msm' />
+ <Merge Id='VCRuntimePolicy' DiskId='1' Language='1033'
+ SourceFile='$(var.VCRedistSrcDir)\policy.x.xx.microsoft.vcxx.crt.x64_msm.msm' />
+ <?endif?>
</Directory>
<Feature Id='Complete' Title='Mercurial' Description='The complete package'
@@ -101,12 +127,14 @@
<Feature Id='MainProgram' Title='Program' Description='Mercurial command line app'
Level='1' Absent='disallow' >
<ComponentRef Id='MainExecutable' />
+ <ComponentRef Id='distOutput' />
<ComponentRef Id='ProgramMenuDir' />
<ComponentRef Id='ReadMe' />
<ComponentRef Id='COPYING' />
<ComponentRef Id='mercurial.rc' />
<ComponentRef Id='mergetools.rc' />
<ComponentRef Id='helpFolder' />
+ <ComponentRef Id='HgCmd' />
<ComponentGroupRef Id='templatesFolder' />
<MergeRef Id='VCRuntime' />
<MergeRef Id='VCRuntimePolicy' />
--- a/contrib/wix/templates.wxs Wed Nov 24 13:43:40 2010 -0600
+++ b/contrib/wix/templates.wxs Fri Nov 26 18:04:10 2010 -0600
@@ -2,6 +2,7 @@
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<?include guids.wxi ?>
+ <?include defines.wxi ?>
<Fragment>
<ComponentGroup Id="templatesFolder">
@@ -26,7 +27,7 @@
<Directory Id="templatesdir" Name="templates" FileSource="$(var.SourceDir)">
- <Component Id="templates.root" Guid="$(var.templates.root.guid)">
+ <Component Id="templates.root" Guid="$(var.templates.root.guid)" Win64='$(var.IsX64)'>
<File Name="map-cmdline.changelog" KeyPath="yes" />
<File Name="map-cmdline.compact" />
<File Name="map-cmdline.default" />
@@ -35,7 +36,7 @@
</Component>
<Directory Id="templates.atomdir" Name="atom">
- <Component Id="templates.atom" Guid="$(var.templates.atom.guid)">
+ <Component Id="templates.atom" Guid="$(var.templates.atom.guid)" Win64='$(var.IsX64)'>
<File Id="atom.changelog.tmpl" Name="changelog.tmpl" KeyPath="yes" />
<File Id="atom.changelogentry.tmpl" Name="changelogentry.tmpl" />
<File Id="atom.error.tmpl" Name="error.tmpl" />
@@ -48,14 +49,14 @@
</Directory>
<Directory Id="templates.coaldir" Name="coal">
- <Component Id="templates.coal" Guid="$(var.templates.coal.guid)">
+ <Component Id="templates.coal" Guid="$(var.templates.coal.guid)" Win64='$(var.IsX64)'>
<File Id="coal.header.tmpl" Name="header.tmpl" KeyPath="yes" />
<File Id="coal.map" Name="map" />
</Component>
</Directory>
<Directory Id="templates.gitwebdir" Name="gitweb">
- <Component Id="templates.gitweb" Guid="$(var.templates.gitweb.guid)">
+ <Component Id="templates.gitweb" Guid="$(var.templates.gitweb.guid)" Win64='$(var.IsX64)'>
<File Id="gitweb.branches.tmpl" Name="branches.tmpl" KeyPath="yes" />
<File Id="gitweb.changelog.tmpl" Name="changelog.tmpl" />
<File Id="gitweb.changelogentry.tmpl" Name="changelogentry.tmpl" />
@@ -82,7 +83,7 @@
</Directory>
<Directory Id="templates.monobluedir" Name="monoblue">
- <Component Id="templates.monoblue" Guid="$(var.templates.monoblue.guid)">
+ <Component Id="templates.monoblue" Guid="$(var.templates.monoblue.guid)" Win64='$(var.IsX64)'>
<File Id="monoblue.branches.tmpl" Name="branches.tmpl" KeyPath="yes" />
<File Id="monoblue.changelog.tmpl" Name="changelog.tmpl" />
<File Id="monoblue.changelogentry.tmpl" Name="changelogentry.tmpl" />
@@ -109,7 +110,7 @@
</Directory>
<Directory Id="templates.paperdir" Name="paper">
- <Component Id="templates.paper" Guid="$(var.templates.paper.guid)">
+ <Component Id="templates.paper" Guid="$(var.templates.paper.guid)" Win64='$(var.IsX64)'>
<File Id="paper.branches.tmpl" Name="branches.tmpl" KeyPath="yes" />
<File Id="paper.changeset.tmpl" Name="changeset.tmpl" />
<File Id="paper.error.tmpl" Name="error.tmpl" />
@@ -135,7 +136,7 @@
</Directory>
<Directory Id="templates.rawdir" Name="raw">
- <Component Id="templates.raw" Guid="$(var.templates.raw.guid)">
+ <Component Id="templates.raw" Guid="$(var.templates.raw.guid)" Win64='$(var.IsX64)'>
<File Id="raw.changeset.tmpl" Name="changeset.tmpl" KeyPath="yes" />
<File Id="raw.error.tmpl" Name="error.tmpl" />
<File Id="raw.fileannotate.tmpl" Name="fileannotate.tmpl" />
@@ -148,7 +149,7 @@
</Directory>
<Directory Id="templates.rssdir" Name="rss">
- <Component Id="templates.rss" Guid="$(var.templates.rss.guid)">
+ <Component Id="templates.rss" Guid="$(var.templates.rss.guid)" Win64='$(var.IsX64)'>
<File Id="rss.changelog.tmpl" Name="changelog.tmpl" KeyPath="yes" />
<File Id="rss.changelogentry.tmpl" Name="changelogentry.tmpl" />
<File Id="rss.error.tmpl" Name="error.tmpl" />
@@ -162,7 +163,7 @@
</Directory>
<Directory Id="templates.spartandir" Name="spartan">
- <Component Id="templates.spartan" Guid="$(var.templates.spartan.guid)">
+ <Component Id="templates.spartan" Guid="$(var.templates.spartan.guid)" Win64='$(var.IsX64)'>
<File Id="spartan.branches.tmpl" Name="branches.tmpl" KeyPath="yes" />
<File Id="spartan.changelog.tmpl" Name="changelog.tmpl" />
<File Id="spartan.changelogentry.tmpl" Name="changelogentry.tmpl" />
@@ -188,7 +189,7 @@
</Directory>
<Directory Id="templates.staticdir" Name="static">
- <Component Id="templates.static" Guid="$(var.templates.static.guid)">
+ <Component Id="templates.static" Guid="$(var.templates.static.guid)" Win64='$(var.IsX64)'>
<File Id="static.background.png" Name="background.png" KeyPath="yes" />
<File Id="static.coal.file.png" Name="coal-file.png" />
<File Id="static.coal.folder.png" Name="coal-folder.png" />