# HG changeset patch # User Steve Borho # Date 2009-08-17 02:23:48 # Node ID 9488a4d64fb56219dcd10c1195cefc8a1e59c498 # Parent 3ac42ca1f3e617438c9fa3732678583ec6888bf6 iss: take version from iscc command line or __version__.py Requires InnoSetup Preprocessor to be installed. diff --git a/contrib/win32/mercurial.iss b/contrib/win32/mercurial.iss --- a/contrib/win32/mercurial.iss +++ b/contrib/win32/mercurial.iss @@ -1,9 +1,25 @@ ; Script generated by the Inno Setup Script Wizard. ; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES! + +#ifndef VERSION +#define FileHandle +#define FileLine +#define VERSION = "unknown" +#if FileHandle = FileOpen(SourcePath + "\..\..\mercurial\__version__.py") + #expr FileLine = FileRead(FileHandle) + #expr FileLine = FileRead(FileHandle) + #define VERSION = Copy(FileLine, Pos('"', FileLine)+1, Len(FileLine)-Pos('"', FileLine)-1) +#endif +#if FileHandle + #expr FileClose(FileHandle) +#endif +#pragma message "Detected Version: " + VERSION +#endif + [Setup] AppCopyright=Copyright 2005-2009 Matt Mackall and others AppName=Mercurial -AppVerName=Mercurial snapshot +AppVerName=Mercurial {#VERSION} InfoAfterFile=contrib/win32/postinstall.txt LicenseFile=COPYING ShowLanguageDialog=yes @@ -13,10 +29,10 @@ AppSupportURL=http://mercurial.selenic.c AppUpdatesURL=http://mercurial.selenic.com/ AppID={{4B95A5F1-EF59-4B08-BED8-C891C46121B3} AppContact=mercurial@selenic.com -OutputBaseFilename=Mercurial-snapshot +OutputBaseFilename=Mercurial-{#VERSION} DefaultDirName={pf}\Mercurial SourceDir=..\.. -VersionInfoDescription=Mercurial distributed SCM +VersionInfoDescription=Mercurial distributed SCM (version {#VERSION}) VersionInfoCopyright=Copyright 2005-2009 Matt Mackall and others VersionInfoCompany=Matt Mackall and others InternalCompressLevel=max diff --git a/contrib/win32/win32-build.txt b/contrib/win32/win32-build.txt --- a/contrib/win32/win32-build.txt +++ b/contrib/win32/win32-build.txt @@ -25,7 +25,10 @@ It has the following prerequisites, at l http://gnuwin32.sourceforge.net/packages/gettext.htm Inno Setup - http://www.jrsoftware.org/isinfo.php + http://www.jrsoftware.org/isdl.php#qsp + + Get and install ispack-5.3.4.exe which includes Inno Setup Processor, + which is necessary to package Mercurial. ISTool - optional http://www.istool.org/default.aspx/ @@ -89,11 +92,14 @@ Before building the installer, you have If you use ISTool, you open the C:\hg\hg-release\contrib\win32\mercurial.iss file and type Ctrl-F9 to compile the installer file. -Otherwise you run the Inno Setup compiler. Assuming it's on the path you run: +Otherwise you run the Inno Setup compiler. Assuming it's in the path +you should execute: - iscc contrib\win32\mercurial.iss + iscc contrib\win32\mercurial.iss /DVERSION=foo -The actual installer will be in the C:\hg\hg-release\Output directory. +Where 'foo' is the version number you would like to see in the +'Add/Remove Applications' tool. The installer will be placed into +a directory named Output/ at the root of your repository. To automate the steps above you may want to create a batchfile based on the following: @@ -104,6 +110,6 @@ following: cd doc mingw32-make ASCIIDOC=asciidoc.bat html cd .. - iscc contrib\win32\mercurial.iss + iscc contrib\win32\mercurial.iss /DVERSION=snapshot and run it from the root of the hg repository (c:\hg\hg-release).