contrib/win32/win32-build.txt
author Paul Morelle <paul.morelle@octobus.net>
Tue, 05 Jun 2018 08:19:35 +0200
changeset 38718 f8762ea73e0d
parent 26805 e999ed2192ef
permissions -rw-r--r--
sparse-revlog: implement algorithm to write sparse delta chains (issue5480) The classic behavior of revlog._isgooddeltainfo is to consider the span size of the whole delta chain, and limit it to 4 * textlen. Once sparse-revlog writing is allowed (and enforced with a requirement), revlog._isgooddeltainfo considers the span of the largest chunk as the distance used in the verification, instead of using the span of the whole delta chain. In order to compute the span of the largest chunk, we need to slice into chunks a chain with the new revision at the top of the revlog, and take the maximal span of these chunks. The sparse read density is a parameter to the slicing, as it will stop when the global read density reaches this threshold. For instance, a density of 50% means that 2 of 4 read bytes are actually used for the reconstruction of the revision (the others are part of other chains). This allows a new revision to be potentially stored with a diff against another revision anywhere in the history, instead of forcing it in the last 4 * textlen. The result is a much better compression on repositories that have many concurrent branches. Here are a comparison between using deltas from current upstream (aggressive-merge-deltas on by default) and deltas from a sparse-revlog Comparison of `.hg/store/` size: mercurial (6.74% merges): before: 46,831,873 bytes after: 46,795,992 bytes (no relevant change) pypy (8.30% merges): before: 333,524,651 bytes after: 308,417,511 bytes -8% netbeans (34.21% merges): before: 1,141,847,554 bytes after: 1,131,093,161 bytes -1% mozilla-central (4.84% merges): before: 2,344,248,850 bytes after: 2,328,459,258 bytes -1% large-private-repo-A (merge 19.73%) before: 41,510,550,163 bytes after: 8,121,763,428 bytes -80% large-private-repo-B (23.77%) before: 58,702,221,709 bytes after: 8,351,588,828 bytes -76% Comparison of `00manifest.d` size: mercurial (6.74% merges): before: 6,143,044 bytes after: 6,107,163 bytes pypy (8.30% merges): before: 52,941,780 bytes after: 27,834,082 bytes -48% netbeans (34.21% merges): before: 130,088,982 bytes after: 119,337,636 bytes -10% mozilla-central (4.84% merges): before: 215,096,339 bytes after: 199,496,863 bytes -8% large-private-repo-A (merge 19.73%) before: 33,725,285,081 bytes after: 390,302,545 bytes -99% large-private-repo-B (23.77%) before: 49,457,701,645 bytes after: 1,366,752,187 bytes -97% The better delta chains provide a performance boost in relevant repositories: pypy, bundling 1000 revisions: before: 1.670s after: 1.149s -31% Unbundling got a bit slower. probably because the sparse algorithm is still pure python. pypy, unbundling 1000 revisions: before: 4.062s after: 4.507s +10% Performance of bundle/unbundle in repository with few concurrent branches (eg: mercurial) are unaffected. No significant differences have been noticed then timing `hg push` and `hg pull` locally. More state timings are being gathered. Same as for aggressive-merge-delta, better delta comes with longer delta chains. Longer chains have a performance impact. For example. The length of the chain needed to get the manifest of pypy's tip moves from 82 item to 1929 items. This moves the restore time from 3.88ms to 11.3ms. Delta chain length is an independent issue that affects repository without this changes. It will be dealt with independently. No significant differences have been observed on repositories where `sparse-revlog` have not much effect (mercurial, unity, netbeans). On pypy, small differences have been observed on some operation affected by delta chain building and retrieval. pypy, perfmanifest before: 0.006162s after: 0.017899s +190% pypy, commit: before: 0.382 after: 0.376 -1% pypy, status: before: 0.157 after: 0.168 +7% More comprehensive and stable timing comparisons are in progress.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1291
a942bf419a64 Document Windows installer build process.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
     1
The standalone Windows installer for Mercurial is built in a somewhat
a942bf419a64 Document Windows installer build process.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
     2
jury-rigged fashion.
a942bf419a64 Document Windows installer build process.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
     3
12263
5f19416056b4 win32: 64-bit Inno Setup installer
Pascal Quantin <pascal.quantin@gmail.com>
parents: 12262
diff changeset
     4
It has the following prerequisites. Ensure to take the packages
5f19416056b4 win32: 64-bit Inno Setup installer
Pascal Quantin <pascal.quantin@gmail.com>
parents: 12262
diff changeset
     5
matching the mercurial version you want to build (32-bit or 64-bit).
1291
a942bf419a64 Document Windows installer build process.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
     6
12262
df5386ae41b9 win32: update Inno Setup build instructions with up-to-date software
Pascal Quantin <pascal.quantin@gmail.com>
parents: 10976
diff changeset
     7
  Python 2.6 for Windows
df5386ae41b9 win32: update Inno Setup build instructions with up-to-date software
Pascal Quantin <pascal.quantin@gmail.com>
parents: 10976
diff changeset
     8
      http://www.python.org/download/releases/
1291
a942bf419a64 Document Windows installer build process.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
     9
12262
df5386ae41b9 win32: update Inno Setup build instructions with up-to-date software
Pascal Quantin <pascal.quantin@gmail.com>
parents: 10976
diff changeset
    10
  A compiler:
df5386ae41b9 win32: update Inno Setup build instructions with up-to-date software
Pascal Quantin <pascal.quantin@gmail.com>
parents: 10976
diff changeset
    11
    either MinGW
1291
a942bf419a64 Document Windows installer build process.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
    12
      http://www.mingw.org/
12262
df5386ae41b9 win32: update Inno Setup build instructions with up-to-date software
Pascal Quantin <pascal.quantin@gmail.com>
parents: 10976
diff changeset
    13
    or Microsoft Visual C++ 2008 SP1 Express Edition
df5386ae41b9 win32: update Inno Setup build instructions with up-to-date software
Pascal Quantin <pascal.quantin@gmail.com>
parents: 10976
diff changeset
    14
      http://www.microsoft.com/express/Downloads/Download-2008.aspx
1291
a942bf419a64 Document Windows installer build process.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
    15
a942bf419a64 Document Windows installer build process.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
    16
  Python for Windows Extensions
a942bf419a64 Document Windows installer build process.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
    17
      http://sourceforge.net/projects/pywin32/
a942bf419a64 Document Windows installer build process.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
    18
8058
a0555ae394b3 Add Python 2.6 support to win32 installer
Pascal Quantin <pascal.quantin@gmail.com>
parents: 7660
diff changeset
    19
  mfc71.dll (just download, don't install; not needed for Python 2.6)
1291
a942bf419a64 Document Windows installer build process.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
    20
      http://starship.python.net/crew/mhammond/win32/
a942bf419a64 Document Windows installer build process.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
    21
12311
8afbf44cfe86 win32: update build instructions with correct CRT version
Pascal Quantin <pascal.quantin@gmail.com>
parents: 12263
diff changeset
    22
  Visual C++ 2008 redistributable package (needed for >= Python 2.6 or if you compile with MSVC)
12263
5f19416056b4 win32: 64-bit Inno Setup installer
Pascal Quantin <pascal.quantin@gmail.com>
parents: 12262
diff changeset
    23
    for 32-bit:
12311
8afbf44cfe86 win32: update build instructions with correct CRT version
Pascal Quantin <pascal.quantin@gmail.com>
parents: 12263
diff changeset
    24
      http://www.microsoft.com/downloads/details.aspx?FamilyID=9b2da534-3e03-4391-8a4d-074b9f2bc1bf
12263
5f19416056b4 win32: 64-bit Inno Setup installer
Pascal Quantin <pascal.quantin@gmail.com>
parents: 12262
diff changeset
    25
    for 64-bit:
12311
8afbf44cfe86 win32: update build instructions with correct CRT version
Pascal Quantin <pascal.quantin@gmail.com>
parents: 12263
diff changeset
    26
      http://www.microsoft.com/downloads/details.aspx?familyid=bd2a6171-e2d6-4230-b809-9a8d7548c1b6
18960
170fc0949fb6 check-code: check txt files for trailing whitespace
Mads Kiilerich <madski@unity3d.com>
parents: 13246
diff changeset
    27
1291
a942bf419a64 Document Windows installer build process.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
    28
  The py2exe distutils extension
a942bf419a64 Document Windows installer build process.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
    29
      http://sourceforge.net/projects/py2exe/
a942bf419a64 Document Windows installer build process.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
    30
12262
df5386ae41b9 win32: update Inno Setup build instructions with up-to-date software
Pascal Quantin <pascal.quantin@gmail.com>
parents: 10976
diff changeset
    31
  GnuWin32 gettext utility (if you want to build translations)
9175
22979282d8ca Mention GnuWin32 gettext in win32 build instructions
Patrick Mezard <pmezard@gmail.com>
parents: 8058
diff changeset
    32
      http://gnuwin32.sourceforge.net/packages/gettext.htm
22979282d8ca Mention GnuWin32 gettext in win32 build instructions
Patrick Mezard <pmezard@gmail.com>
parents: 8058
diff changeset
    33
1291
a942bf419a64 Document Windows installer build process.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
    34
  Inno Setup
9356
9488a4d64fb5 iss: take version from iscc command line or __version__.py
Steve Borho <steve@borho.org>
parents: 9175
diff changeset
    35
      http://www.jrsoftware.org/isdl.php#qsp
9488a4d64fb5 iss: take version from iscc command line or __version__.py
Steve Borho <steve@borho.org>
parents: 9175
diff changeset
    36
13246
a01c52b08c5f win32: add cacert.pem file to Inno Setup installer
Pascal Quantin <pascal.quantin@gmail.com>
parents: 12311
diff changeset
    37
      Get and install ispack-5.3.10.exe or later (includes Inno Setup Processor),
9356
9488a4d64fb5 iss: take version from iscc command line or __version__.py
Steve Borho <steve@borho.org>
parents: 9175
diff changeset
    38
      which is necessary to package Mercurial.
1291
a942bf419a64 Document Windows installer build process.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
    39
4401
d1dd16256114 Update Windows build instructions.
Lee Cantey <lcantey@gmail.com>
parents: 2384
diff changeset
    40
  ISTool - optional
1291
a942bf419a64 Document Windows installer build process.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
    41
      http://www.istool.org/default.aspx/
a942bf419a64 Document Windows installer build process.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
    42
2384
068b32d06873 Automatically add the path of hg to %PATH% using add_path
Marco Barisione <marco@barisione.org>
parents: 1291
diff changeset
    43
  add_path (you need only add_path.exe in the zip file)
068b32d06873 Automatically add the path of hg to %PATH% using add_path
Marco Barisione <marco@barisione.org>
parents: 1291
diff changeset
    44
      http://www.barisione.org/apps.html#add_path
068b32d06873 Automatically add the path of hg to %PATH% using add_path
Marco Barisione <marco@barisione.org>
parents: 1291
diff changeset
    45
9179
9e5e2e07cf81 Update win32 build instructions for rst2html
Patrick Mezard <pmezard@gmail.com>
parents: 9175
diff changeset
    46
  Docutils
9e5e2e07cf81 Update win32 build instructions for rst2html
Patrick Mezard <pmezard@gmail.com>
parents: 9175
diff changeset
    47
      http://docutils.sourceforge.net/
7660
ceed5f8c4ebf Document how HTML documentation is built under Windows
Patrick Mezard <pmezard@gmail.com>
parents: 5081
diff changeset
    48
13246
a01c52b08c5f win32: add cacert.pem file to Inno Setup installer
Pascal Quantin <pascal.quantin@gmail.com>
parents: 12311
diff changeset
    49
  CA Certs file
a01c52b08c5f win32: add cacert.pem file to Inno Setup installer
Pascal Quantin <pascal.quantin@gmail.com>
parents: 12311
diff changeset
    50
      http://curl.haxx.se/ca/cacert.pem
a01c52b08c5f win32: add cacert.pem file to Inno Setup installer
Pascal Quantin <pascal.quantin@gmail.com>
parents: 12311
diff changeset
    51
1291
a942bf419a64 Document Windows installer build process.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
    52
And, of course, Mercurial itself.
a942bf419a64 Document Windows installer build process.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
    53
a942bf419a64 Document Windows installer build process.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
    54
Once you have all this installed and built, clone a copy of the
a942bf419a64 Document Windows installer build process.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
    55
Mercurial repository you want to package, and name the repo
a942bf419a64 Document Windows installer build process.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
    56
C:\hg\hg-release.
a942bf419a64 Document Windows installer build process.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
    57
12262
df5386ae41b9 win32: update Inno Setup build instructions with up-to-date software
Pascal Quantin <pascal.quantin@gmail.com>
parents: 10976
diff changeset
    58
In a shell, build a standalone copy of the hg.exe program.
1291
a942bf419a64 Document Windows installer build process.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
    59
12262
df5386ae41b9 win32: update Inno Setup build instructions with up-to-date software
Pascal Quantin <pascal.quantin@gmail.com>
parents: 10976
diff changeset
    60
Building instructions for MinGW:
5081
ea7b982b6c08 Remove trailing spaces
Thomas Arendsen Hein <thomas@intevation.de>
parents: 4401
diff changeset
    61
  python setup.py build -c mingw32
12262
df5386ae41b9 win32: update Inno Setup build instructions with up-to-date software
Pascal Quantin <pascal.quantin@gmail.com>
parents: 10976
diff changeset
    62
  python setup.py py2exe -b 2
4401
d1dd16256114 Update Windows build instructions.
Lee Cantey <lcantey@gmail.com>
parents: 2384
diff changeset
    63
Note: the previously suggested combined command of "python setup.py build -c
12262
df5386ae41b9 win32: update Inno Setup build instructions with up-to-date software
Pascal Quantin <pascal.quantin@gmail.com>
parents: 10976
diff changeset
    64
mingw32 py2exe -b 2" doesn't work correctly anymore as it doesn't include the
4401
d1dd16256114 Update Windows build instructions.
Lee Cantey <lcantey@gmail.com>
parents: 2384
diff changeset
    65
extensions in the mercurial subdirectory.
d1dd16256114 Update Windows build instructions.
Lee Cantey <lcantey@gmail.com>
parents: 2384
diff changeset
    66
If you want to create a file named setup.cfg with the contents:
d1dd16256114 Update Windows build instructions.
Lee Cantey <lcantey@gmail.com>
parents: 2384
diff changeset
    67
[build]
d1dd16256114 Update Windows build instructions.
Lee Cantey <lcantey@gmail.com>
parents: 2384
diff changeset
    68
compiler=mingw32
12262
df5386ae41b9 win32: update Inno Setup build instructions with up-to-date software
Pascal Quantin <pascal.quantin@gmail.com>
parents: 10976
diff changeset
    69
you can skip the first build step.
4401
d1dd16256114 Update Windows build instructions.
Lee Cantey <lcantey@gmail.com>
parents: 2384
diff changeset
    70
12311
8afbf44cfe86 win32: update build instructions with correct CRT version
Pascal Quantin <pascal.quantin@gmail.com>
parents: 12263
diff changeset
    71
Building instructions with MSVC 2008 Express Edition:
12263
5f19416056b4 win32: 64-bit Inno Setup installer
Pascal Quantin <pascal.quantin@gmail.com>
parents: 12262
diff changeset
    72
  for 32-bit:
5f19416056b4 win32: 64-bit Inno Setup installer
Pascal Quantin <pascal.quantin@gmail.com>
parents: 12262
diff changeset
    73
    "C:\Program Files\Microsoft Visual Studio 9.0\VC\vcvarsall.bat" x86
5f19416056b4 win32: 64-bit Inno Setup installer
Pascal Quantin <pascal.quantin@gmail.com>
parents: 12262
diff changeset
    74
    python setup.py py2exe -b 2
5f19416056b4 win32: 64-bit Inno Setup installer
Pascal Quantin <pascal.quantin@gmail.com>
parents: 12262
diff changeset
    75
  for 64-bit:
5f19416056b4 win32: 64-bit Inno Setup installer
Pascal Quantin <pascal.quantin@gmail.com>
parents: 12262
diff changeset
    76
    "C:\Program Files\Microsoft Visual Studio 9.0\VC\vcvarsall.bat" x86_amd64
5f19416056b4 win32: 64-bit Inno Setup installer
Pascal Quantin <pascal.quantin@gmail.com>
parents: 12262
diff changeset
    77
    python setup.py py2exe -b 3
4401
d1dd16256114 Update Windows build instructions.
Lee Cantey <lcantey@gmail.com>
parents: 2384
diff changeset
    78
13246
a01c52b08c5f win32: add cacert.pem file to Inno Setup installer
Pascal Quantin <pascal.quantin@gmail.com>
parents: 12311
diff changeset
    79
Copy add_path.exe and cacert.pem files into the dist directory that just got created.
8058
a0555ae394b3 Add Python 2.6 support to win32 installer
Pascal Quantin <pascal.quantin@gmail.com>
parents: 7660
diff changeset
    80
12262
df5386ae41b9 win32: update Inno Setup build instructions with up-to-date software
Pascal Quantin <pascal.quantin@gmail.com>
parents: 10976
diff changeset
    81
If you are using Python 2.6 or later, or if you are using MSVC 2008 to compile
df5386ae41b9 win32: update Inno Setup build instructions with up-to-date software
Pascal Quantin <pascal.quantin@gmail.com>
parents: 10976
diff changeset
    82
mercurial, you must include the C runtime libraries in the installer. To do so,
12311
8afbf44cfe86 win32: update build instructions with correct CRT version
Pascal Quantin <pascal.quantin@gmail.com>
parents: 12263
diff changeset
    83
install the Visual C++ 2008 redistributable package. Then in your windows\winsxs
8afbf44cfe86 win32: update build instructions with correct CRT version
Pascal Quantin <pascal.quantin@gmail.com>
parents: 12263
diff changeset
    84
folder, locate the folder containing the dlls version 9.0.21022.8.
8afbf44cfe86 win32: update build instructions with correct CRT version
Pascal Quantin <pascal.quantin@gmail.com>
parents: 12263
diff changeset
    85
For x86, it should be named like x86_Microsoft.VC90.CRT_(...)_9.0.21022.8(...).
8afbf44cfe86 win32: update build instructions with correct CRT version
Pascal Quantin <pascal.quantin@gmail.com>
parents: 12263
diff changeset
    86
For x64, it should be named like amd64_Microsoft.VC90.CRT_(...)_9.0.21022.8(...).
12262
df5386ae41b9 win32: update Inno Setup build instructions with up-to-date software
Pascal Quantin <pascal.quantin@gmail.com>
parents: 10976
diff changeset
    87
Copy the files named msvcm90.dll, msvcp90.dll and msvcr90.dll into the dist
df5386ae41b9 win32: update Inno Setup build instructions with up-to-date software
Pascal Quantin <pascal.quantin@gmail.com>
parents: 10976
diff changeset
    88
directory.
df5386ae41b9 win32: update Inno Setup build instructions with up-to-date software
Pascal Quantin <pascal.quantin@gmail.com>
parents: 10976
diff changeset
    89
Then in the windows\winsxs\manifests folder, locate the corresponding manifest
12311
8afbf44cfe86 win32: update build instructions with correct CRT version
Pascal Quantin <pascal.quantin@gmail.com>
parents: 12263
diff changeset
    90
file (x86_Microsoft.VC90.CRT_(...)_9.0.21022.8(...).manifest for x86,
8afbf44cfe86 win32: update build instructions with correct CRT version
Pascal Quantin <pascal.quantin@gmail.com>
parents: 12263
diff changeset
    91
amd64_Microsoft.VC90.CRT_(...)_9.0.21022.8(...).manifest for x64), copy it in the
12263
5f19416056b4 win32: 64-bit Inno Setup installer
Pascal Quantin <pascal.quantin@gmail.com>
parents: 12262
diff changeset
    92
dist directory and rename it to Microsoft.VC90.CRT.manifest.
1291
a942bf419a64 Document Windows installer build process.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
    93
18960
170fc0949fb6 check-code: check txt files for trailing whitespace
Mads Kiilerich <madski@unity3d.com>
parents: 13246
diff changeset
    94
Before building the installer, you have to build Mercurial HTML documentation
10976
5ff192fb09ff contrib/win32: update build instructions after cbe400a8e217
Martin Geisler <mg@lazybytes.net>
parents: 9358
diff changeset
    95
(or fix mercurial.iss to not reference the doc directory):
7660
ceed5f8c4ebf Document how HTML documentation is built under Windows
Patrick Mezard <pmezard@gmail.com>
parents: 5081
diff changeset
    96
ceed5f8c4ebf Document how HTML documentation is built under Windows
Patrick Mezard <pmezard@gmail.com>
parents: 5081
diff changeset
    97
  cd doc
10976
5ff192fb09ff contrib/win32: update build instructions after cbe400a8e217
Martin Geisler <mg@lazybytes.net>
parents: 9358
diff changeset
    98
  mingw32-make html
7660
ceed5f8c4ebf Document how HTML documentation is built under Windows
Patrick Mezard <pmezard@gmail.com>
parents: 5081
diff changeset
    99
  cd ..
ceed5f8c4ebf Document how HTML documentation is built under Windows
Patrick Mezard <pmezard@gmail.com>
parents: 5081
diff changeset
   100
4401
d1dd16256114 Update Windows build instructions.
Lee Cantey <lcantey@gmail.com>
parents: 2384
diff changeset
   101
If you use ISTool, you open the C:\hg\hg-release\contrib\win32\mercurial.iss
d1dd16256114 Update Windows build instructions.
Lee Cantey <lcantey@gmail.com>
parents: 2384
diff changeset
   102
file and type Ctrl-F9 to compile the installer file.
d1dd16256114 Update Windows build instructions.
Lee Cantey <lcantey@gmail.com>
parents: 2384
diff changeset
   103
9356
9488a4d64fb5 iss: take version from iscc command line or __version__.py
Steve Borho <steve@borho.org>
parents: 9175
diff changeset
   104
Otherwise you run the Inno Setup compiler.  Assuming it's in the path
9488a4d64fb5 iss: take version from iscc command line or __version__.py
Steve Borho <steve@borho.org>
parents: 9175
diff changeset
   105
you should execute:
4401
d1dd16256114 Update Windows build instructions.
Lee Cantey <lcantey@gmail.com>
parents: 2384
diff changeset
   106
12262
df5386ae41b9 win32: update Inno Setup build instructions with up-to-date software
Pascal Quantin <pascal.quantin@gmail.com>
parents: 10976
diff changeset
   107
  iscc contrib\win32\mercurial.iss /dVERSION=foo
4401
d1dd16256114 Update Windows build instructions.
Lee Cantey <lcantey@gmail.com>
parents: 2384
diff changeset
   108
9356
9488a4d64fb5 iss: take version from iscc command line or __version__.py
Steve Borho <steve@borho.org>
parents: 9175
diff changeset
   109
Where 'foo' is the version number you would like to see in the
9488a4d64fb5 iss: take version from iscc command line or __version__.py
Steve Borho <steve@borho.org>
parents: 9175
diff changeset
   110
'Add/Remove Applications' tool.  The installer will be placed into
9488a4d64fb5 iss: take version from iscc command line or __version__.py
Steve Borho <steve@borho.org>
parents: 9175
diff changeset
   111
a directory named Output/ at the root of your repository.
12262
df5386ae41b9 win32: update Inno Setup build instructions with up-to-date software
Pascal Quantin <pascal.quantin@gmail.com>
parents: 10976
diff changeset
   112
If the /dVERSION=foo parameter is not given in the command line, the
df5386ae41b9 win32: update Inno Setup build instructions with up-to-date software
Pascal Quantin <pascal.quantin@gmail.com>
parents: 10976
diff changeset
   113
installer will retrieve the version information from the __version__.py file.
1291
a942bf419a64 Document Windows installer build process.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
   114
12263
5f19416056b4 win32: 64-bit Inno Setup installer
Pascal Quantin <pascal.quantin@gmail.com>
parents: 12262
diff changeset
   115
If you want to build an installer for a 64-bit mercurial, add /dARCH=x64 to
5f19416056b4 win32: 64-bit Inno Setup installer
Pascal Quantin <pascal.quantin@gmail.com>
parents: 12262
diff changeset
   116
your command line:
5f19416056b4 win32: 64-bit Inno Setup installer
Pascal Quantin <pascal.quantin@gmail.com>
parents: 12262
diff changeset
   117
  iscc contrib\win32\mercurial.iss /dARCH=x64
5f19416056b4 win32: 64-bit Inno Setup installer
Pascal Quantin <pascal.quantin@gmail.com>
parents: 12262
diff changeset
   118
4401
d1dd16256114 Update Windows build instructions.
Lee Cantey <lcantey@gmail.com>
parents: 2384
diff changeset
   119
To automate the steps above you may want to create a batchfile based on the
12262
df5386ae41b9 win32: update Inno Setup build instructions with up-to-date software
Pascal Quantin <pascal.quantin@gmail.com>
parents: 10976
diff changeset
   120
following (MinGW build chain):
4401
d1dd16256114 Update Windows build instructions.
Lee Cantey <lcantey@gmail.com>
parents: 2384
diff changeset
   121
d1dd16256114 Update Windows build instructions.
Lee Cantey <lcantey@gmail.com>
parents: 2384
diff changeset
   122
  echo [build] > setup.cfg
d1dd16256114 Update Windows build instructions.
Lee Cantey <lcantey@gmail.com>
parents: 2384
diff changeset
   123
  echo compiler=mingw32 >> setup.cfg
12262
df5386ae41b9 win32: update Inno Setup build instructions with up-to-date software
Pascal Quantin <pascal.quantin@gmail.com>
parents: 10976
diff changeset
   124
  python setup.py py2exe -b 2
7660
ceed5f8c4ebf Document how HTML documentation is built under Windows
Patrick Mezard <pmezard@gmail.com>
parents: 5081
diff changeset
   125
  cd doc
10976
5ff192fb09ff contrib/win32: update build instructions after cbe400a8e217
Martin Geisler <mg@lazybytes.net>
parents: 9358
diff changeset
   126
  mingw32-make html
7660
ceed5f8c4ebf Document how HTML documentation is built under Windows
Patrick Mezard <pmezard@gmail.com>
parents: 5081
diff changeset
   127
  cd ..
12262
df5386ae41b9 win32: update Inno Setup build instructions with up-to-date software
Pascal Quantin <pascal.quantin@gmail.com>
parents: 10976
diff changeset
   128
  iscc contrib\win32\mercurial.iss /dVERSION=snapshot
4401
d1dd16256114 Update Windows build instructions.
Lee Cantey <lcantey@gmail.com>
parents: 2384
diff changeset
   129
d1dd16256114 Update Windows build instructions.
Lee Cantey <lcantey@gmail.com>
parents: 2384
diff changeset
   130
and run it from the root of the hg repository (c:\hg\hg-release).