Mercurial > hg
comparison contrib/win32/win32-build.txt @ 12263:5f19416056b4
win32: 64-bit Inno Setup installer
author | Pascal Quantin <pascal.quantin@gmail.com> |
---|---|
date | Sat, 11 Sep 2010 18:48:03 +0200 |
parents | df5386ae41b9 |
children | 8afbf44cfe86 |
comparison
equal
deleted
inserted
replaced
12262:df5386ae41b9 | 12263:5f19416056b4 |
---|---|
1 The standalone Windows installer for Mercurial is built in a somewhat | 1 The standalone Windows installer for Mercurial is built in a somewhat |
2 jury-rigged fashion. | 2 jury-rigged fashion. |
3 | 3 |
4 It has the following prerequisites, at least as I build it: | 4 It has the following prerequisites. Ensure to take the packages |
5 matching the mercurial version you want to build (32-bit or 64-bit). | |
5 | 6 |
6 Python 2.6 for Windows | 7 Python 2.6 for Windows |
7 http://www.python.org/download/releases/ | 8 http://www.python.org/download/releases/ |
8 | 9 |
9 A compiler: | 10 A compiler: |
17 | 18 |
18 mfc71.dll (just download, don't install; not needed for Python 2.6) | 19 mfc71.dll (just download, don't install; not needed for Python 2.6) |
19 http://starship.python.net/crew/mhammond/win32/ | 20 http://starship.python.net/crew/mhammond/win32/ |
20 | 21 |
21 Visual C++ 2008 SP1 redistributable package (needed for >= Python 2.6 or if you compile with MSVC) | 22 Visual C++ 2008 SP1 redistributable package (needed for >= Python 2.6 or if you compile with MSVC) |
23 for 32-bit: | |
22 http://www.microsoft.com/downloads/details.aspx?FamilyID=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2 | 24 http://www.microsoft.com/downloads/details.aspx?FamilyID=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2 |
25 for 64-bit: | |
26 http://www.microsoft.com/downloads/details.aspx?familyid=BA9257CA-337F-4B40-8C14-157CFDFFEE4E | |
23 | 27 |
24 The py2exe distutils extension | 28 The py2exe distutils extension |
25 http://sourceforge.net/projects/py2exe/ | 29 http://sourceforge.net/projects/py2exe/ |
26 | 30 |
27 GnuWin32 gettext utility (if you want to build translations) | 31 GnuWin32 gettext utility (if you want to build translations) |
60 [build] | 64 [build] |
61 compiler=mingw32 | 65 compiler=mingw32 |
62 you can skip the first build step. | 66 you can skip the first build step. |
63 | 67 |
64 Building instructions with MSVC 2008 SP1 Express Edition: | 68 Building instructions with MSVC 2008 SP1 Express Edition: |
65 python setup.py py2exe -b 2 | 69 for 32-bit: |
70 "C:\Program Files\Microsoft Visual Studio 9.0\VC\vcvarsall.bat" x86 | |
71 python setup.py py2exe -b 2 | |
72 for 64-bit: | |
73 "C:\Program Files\Microsoft Visual Studio 9.0\VC\vcvarsall.bat" x86_amd64 | |
74 python setup.py py2exe -b 3 | |
66 | 75 |
67 Copy add_path.exe into the dist directory that just got created. | 76 Copy add_path.exe into the dist directory that just got created. |
68 | 77 |
69 If you are using Python up to version 2.5.4, copy mfc71.dll into the dist | 78 If you are using Python up to version 2.5.4, copy mfc71.dll into the dist |
70 directory that just got created. | 79 directory that just got created. |
72 If you are using Python 2.6 or later, or if you are using MSVC 2008 to compile | 81 If you are using Python 2.6 or later, or if you are using MSVC 2008 to compile |
73 mercurial, you must include the C runtime libraries in the installer. To do so, | 82 mercurial, you must include the C runtime libraries in the installer. To do so, |
74 install the Visual C++ 2008 SP1 redistributable package. Then in your | 83 install the Visual C++ 2008 SP1 redistributable package. Then in your |
75 windows\winsxs folder, locate the folder containing the dlls version 9.0.30729. | 84 windows\winsxs folder, locate the folder containing the dlls version 9.0.30729. |
76 For x86, it should be named like x86_Microsoft.VC90.CRT_(...)_9.0.30729(...). | 85 For x86, it should be named like x86_Microsoft.VC90.CRT_(...)_9.0.30729(...). |
86 For x64, it should be named like amd64_Microsoft.VC90.CRT_(...)_9.0.30729(...). | |
77 Copy the files named msvcm90.dll, msvcp90.dll and msvcr90.dll into the dist | 87 Copy the files named msvcm90.dll, msvcp90.dll and msvcr90.dll into the dist |
78 directory. | 88 directory. |
79 Then in the windows\winsxs\manifests folder, locate the corresponding manifest | 89 Then in the windows\winsxs\manifests folder, locate the corresponding manifest |
80 file (x86_Microsoft.VC90.CRT_(...)_9.0.30729(...).manifest for x86), copy it in | 90 file (x86_Microsoft.VC90.CRT_(...)_9.0.30729(...).manifest for x86, |
81 the dist directory and rename it to Microsoft.VC90.CRT.manifest. | 91 amd64_Microsoft.VC90.CRT_(...)_9.0.30729(...).manifest for x64), copy it in the |
92 dist directory and rename it to Microsoft.VC90.CRT.manifest. | |
82 | 93 |
83 Before building the installer, you have to build Mercurial HTML documentation | 94 Before building the installer, you have to build Mercurial HTML documentation |
84 (or fix mercurial.iss to not reference the doc directory): | 95 (or fix mercurial.iss to not reference the doc directory): |
85 | 96 |
86 cd doc | 97 cd doc |
99 'Add/Remove Applications' tool. The installer will be placed into | 110 'Add/Remove Applications' tool. The installer will be placed into |
100 a directory named Output/ at the root of your repository. | 111 a directory named Output/ at the root of your repository. |
101 If the /dVERSION=foo parameter is not given in the command line, the | 112 If the /dVERSION=foo parameter is not given in the command line, the |
102 installer will retrieve the version information from the __version__.py file. | 113 installer will retrieve the version information from the __version__.py file. |
103 | 114 |
115 If you want to build an installer for a 64-bit mercurial, add /dARCH=x64 to | |
116 your command line: | |
117 iscc contrib\win32\mercurial.iss /dARCH=x64 | |
118 | |
104 To automate the steps above you may want to create a batchfile based on the | 119 To automate the steps above you may want to create a batchfile based on the |
105 following (MinGW build chain): | 120 following (MinGW build chain): |
106 | 121 |
107 echo [build] > setup.cfg | 122 echo [build] > setup.cfg |
108 echo compiler=mingw32 >> setup.cfg | 123 echo compiler=mingw32 >> setup.cfg |