##// END OF EJS Templates
win32: update Inno Setup build instructions with up-to-date software
Pascal Quantin -
r12262:df5386ae default
parent child Browse files
Show More
@@ -63,16 +63,14 b' Source: contrib\\win32\\postinstall.txt; D'
63 Source: dist\hg.exe; DestDir: {app}; AfterInstall: Touch('{app}\hg.exe.local')
63 Source: dist\hg.exe; DestDir: {app}; AfterInstall: Touch('{app}\hg.exe.local')
64 Source: dist\python*.dll; Destdir: {app}; Flags: skipifsourcedoesntexist
64 Source: dist\python*.dll; Destdir: {app}; Flags: skipifsourcedoesntexist
65 Source: dist\library.zip; DestDir: {app}
65 Source: dist\library.zip; DestDir: {app}
66 Source: dist\mfc*.dll; DestDir: {app}; Flags: skipifsourcedoesntexist
67 Source: dist\msvc*.dll; DestDir: {app}; Flags: skipifsourcedoesntexist
66 Source: dist\msvc*.dll; DestDir: {app}; Flags: skipifsourcedoesntexist
68 Source: dist\Microsoft.VC*.CRT.manifest; DestDir: {app}; Flags: skipifsourcedoesntexist
67 Source: dist\Microsoft.VC*.CRT.manifest; DestDir: {app}; Flags: skipifsourcedoesntexist
69 Source: dist\Microsoft.VC*.MFC.manifest; DestDir: {app}; Flags: skipifsourcedoesntexist
70 Source: dist\w9xpopen.exe; DestDir: {app}
68 Source: dist\w9xpopen.exe; DestDir: {app}
71 Source: dist\add_path.exe; DestDir: {app}
69 Source: dist\add_path.exe; DestDir: {app}
72 Source: doc\*.html; DestDir: {app}\Docs
70 Source: doc\*.html; DestDir: {app}\Docs
73 Source: doc\style.css; DestDir: {app}\Docs
71 Source: doc\style.css; DestDir: {app}\Docs
74 Source: mercurial\help\*.txt; DestDir: {app}\help
72 Source: mercurial\help\*.txt; DestDir: {app}\help
75 Source: mercurial\locale\*.*; DestDir: {app}\locale; Flags: recursesubdirs createallsubdirs
73 Source: mercurial\locale\*.*; DestDir: {app}\locale; Flags: recursesubdirs createallsubdirs skipifsourcedoesntexist
76 Source: mercurial\templates\*.*; DestDir: {app}\Templates; Flags: recursesubdirs createallsubdirs
74 Source: mercurial\templates\*.*; DestDir: {app}\Templates; Flags: recursesubdirs createallsubdirs
77 Source: CONTRIBUTORS; DestDir: {app}; DestName: Contributors.txt
75 Source: CONTRIBUTORS; DestDir: {app}; DestName: Contributors.txt
78 Source: COPYING; DestDir: {app}; DestName: Copying.txt
76 Source: COPYING; DestDir: {app}; DestName: Copying.txt
@@ -99,6 +97,7 b' Filename: "{app}\\add_path.exe"; Paramete'
99
97
100 [UninstallDelete]
98 [UninstallDelete]
101 Type: files; Name: "{app}\hg.exe.local"
99 Type: files; Name: "{app}\hg.exe.local"
100
102 [Code]
101 [Code]
103 var
102 var
104 WriteFile: Boolean;
103 WriteFile: Boolean;
@@ -3,11 +3,14 b' jury-rigged fashion.'
3
3
4 It has the following prerequisites, at least as I build it:
4 It has the following prerequisites, at least as I build it:
5
5
6 Python for Windows
6 Python 2.6 for Windows
7 http://www.python.org/ftp/python/2.4.3/python-2.4.3.msi
7 http://www.python.org/download/releases/
8
8
9 MinGW
9 A compiler:
10 either MinGW
10 http://www.mingw.org/
11 http://www.mingw.org/
12 or Microsoft Visual C++ 2008 SP1 Express Edition
13 http://www.microsoft.com/express/Downloads/Download-2008.aspx
11
14
12 Python for Windows Extensions
15 Python for Windows Extensions
13 http://sourceforge.net/projects/pywin32/
16 http://sourceforge.net/projects/pywin32/
@@ -15,19 +18,19 b' It has the following prerequisites, at l'
15 mfc71.dll (just download, don't install; not needed for Python 2.6)
18 mfc71.dll (just download, don't install; not needed for Python 2.6)
16 http://starship.python.net/crew/mhammond/win32/
19 http://starship.python.net/crew/mhammond/win32/
17
20
18 Visual C++ 2008 redistributable package (needed for Python 2.6)
21 Visual C++ 2008 SP1 redistributable package (needed for >= Python 2.6 or if you compile with MSVC)
19 http://www.microsoft.com/downloads/details.aspx?familyid=9b2da534-3e03-4391-8a4d-074b9f2bc1bf&displaylang=en
22 http://www.microsoft.com/downloads/details.aspx?FamilyID=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2
20
23
21 The py2exe distutils extension
24 The py2exe distutils extension
22 http://sourceforge.net/projects/py2exe/
25 http://sourceforge.net/projects/py2exe/
23
26
24 GnuWin32 gettext utility
27 GnuWin32 gettext utility (if you want to build translations)
25 http://gnuwin32.sourceforge.net/packages/gettext.htm
28 http://gnuwin32.sourceforge.net/packages/gettext.htm
26
29
27 Inno Setup
30 Inno Setup
28 http://www.jrsoftware.org/isdl.php#qsp
31 http://www.jrsoftware.org/isdl.php#qsp
29
32
30 Get and install ispack-5.3.4.exe which includes Inno Setup Processor,
33 Get and install ispack-5.3.10.exe which includes Inno Setup Processor,
31 which is necessary to package Mercurial.
34 which is necessary to package Mercurial.
32
35
33 ISTool - optional
36 ISTool - optional
@@ -45,41 +48,37 b' Once you have all this installed and bui'
45 Mercurial repository you want to package, and name the repo
48 Mercurial repository you want to package, and name the repo
46 C:\hg\hg-release.
49 C:\hg\hg-release.
47
50
48 In a shell, build a standalone copy of the hg.exe program:
51 In a shell, build a standalone copy of the hg.exe program.
49
52
53 Building instructions for MinGW:
50 python setup.py build -c mingw32
54 python setup.py build -c mingw32
51 python setup.py py2exe -b 1
55 python setup.py py2exe -b 2
52
53 Note: the previously suggested combined command of "python setup.py build -c
56 Note: the previously suggested combined command of "python setup.py build -c
54 mingw32 py2exe -b 1" doesn't work correctly anymore as it doesn't include the
57 mingw32 py2exe -b 2" doesn't work correctly anymore as it doesn't include the
55 extensions in the mercurial subdirectory.
58 extensions in the mercurial subdirectory.
56
57 If you want to create a file named setup.cfg with the contents:
59 If you want to create a file named setup.cfg with the contents:
58
59 [build]
60 [build]
60 compiler=mingw32
61 compiler=mingw32
62 you can skip the first build step.
61
63
62 you can skip the first build step.
64 Building instructions with MSVC 2008 SP1 Express Edition:
65 python setup.py py2exe -b 2
63
66
64 Copy add_path.exe into the dist directory that just got created.
67 Copy add_path.exe into the dist directory that just got created.
65
68
66 If you are using Python up to version 2.5.4, copy mfc71.dll into the dist
69 If you are using Python up to version 2.5.4, copy mfc71.dll into the dist
67 directory that just got created.
70 directory that just got created.
68
71
69 If you are using Python 2.6 or later, after installing the Visual C++ 2008
72 If you are using Python 2.6 or later, or if you are using MSVC 2008 to compile
70 redistributable package copy into the dist directory that just got created the
73 mercurial, you must include the C runtime libraries in the installer. To do so,
71 following files:
74 install the Visual C++ 2008 SP1 redistributable package. Then in your
72 - from the directory starting with
75 windows\winsxs folder, locate the folder containing the dlls version 9.0.30729.
73 Windows/WinSxS/x86_Microsoft.VC90.CRT_1fc8b3b9a1e18e3b_9.0.21022.8
76 For x86, it should be named like x86_Microsoft.VC90.CRT_(...)_9.0.30729(...).
74 the files named: msvcm90.dll, msvcp90.dll and msvcr90.dll
77 Copy the files named msvcm90.dll, msvcp90.dll and msvcr90.dll into the dist
75 - from the directory starting with
78 directory.
76 Windows/WinSxS/x86_Microsoft.VC90.MFC_1fc8b3b9a1e18e3b_9.0.21022.8
79 Then in the windows\winsxs\manifests folder, locate the corresponding manifest
77 the files named: mfc90.dll, mfc90u.dll, mfcm90.dll and mfcm90u.dll
80 file (x86_Microsoft.VC90.CRT_(...)_9.0.30729(...).manifest for x86), copy it in
78 - from the directory named Windows/WinSxS/Manifests, the manifest file
81 the dist directory and rename it to Microsoft.VC90.CRT.manifest.
79 starting with x86_Microsoft.VC90.CRT_1fc8b3b9a1e18e3b_9.0.21022.8
80 (rename it to Microsoft.VC90.CRT.manifest) and the manifest file starting
81 with x86_Microsoft.VC90.MFC_1fc8b3b9a1e18e3b_9.0.21022.8 (rename it to
82 Microsoft.VC90.MFC.manifest)
83
82
84 Before building the installer, you have to build Mercurial HTML documentation
83 Before building the installer, you have to build Mercurial HTML documentation
85 (or fix mercurial.iss to not reference the doc directory):
84 (or fix mercurial.iss to not reference the doc directory):
@@ -94,21 +93,23 b' file and type Ctrl-F9 to compile the ins'
94 Otherwise you run the Inno Setup compiler. Assuming it's in the path
93 Otherwise you run the Inno Setup compiler. Assuming it's in the path
95 you should execute:
94 you should execute:
96
95
97 iscc contrib\win32\mercurial.iss /DVERSION=foo
96 iscc contrib\win32\mercurial.iss /dVERSION=foo
98
97
99 Where 'foo' is the version number you would like to see in the
98 Where 'foo' is the version number you would like to see in the
100 'Add/Remove Applications' tool. The installer will be placed into
99 'Add/Remove Applications' tool. The installer will be placed into
101 a directory named Output/ at the root of your repository.
100 a directory named Output/ at the root of your repository.
101 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.
102
103
103 To automate the steps above you may want to create a batchfile based on the
104 To automate the steps above you may want to create a batchfile based on the
104 following:
105 following (MinGW build chain):
105
106
106 echo [build] > setup.cfg
107 echo [build] > setup.cfg
107 echo compiler=mingw32 >> setup.cfg
108 echo compiler=mingw32 >> setup.cfg
108 python setup.py py2exe -b 1
109 python setup.py py2exe -b 2
109 cd doc
110 cd doc
110 mingw32-make html
111 mingw32-make html
111 cd ..
112 cd ..
112 iscc contrib\win32\mercurial.iss /DVERSION=snapshot
113 iscc contrib\win32\mercurial.iss /dVERSION=snapshot
113
114
114 and run it from the root of the hg repository (c:\hg\hg-release).
115 and run it from the root of the hg repository (c:\hg\hg-release).
General Comments 0
You need to be logged in to leave comments. Login now