rhg: Add parsing for the --color global CLI argument
Differential Revision: https://phab.mercurial-scm.org/D12166
Requirements
============
Building the Inno installer requires a Windows machine.
The following system dependencies must be installed:
* Python 2.7 (download from https://www.python.org/downloads/)
* Microsoft Visual C++ Compiler for Python 2.7
(https://www.microsoft.com/en-us/download/details.aspx?id=44266)
* Inno Setup (http://jrsoftware.org/isdl.php) version 5.4 or newer.
Be sure to install the optional Inno Setup Preprocessor feature,
which is required.
* Python 3.5+ (to run the ``packaging.py`` script)
Building
========
The ``packaging.py`` script automates the process of producing an
Inno installer. It manages fetching and configuring the
non-system dependencies (such as py2exe, gettext, and various
Python packages).
The script requires an activated ``Visual C++ 2008`` command prompt.
A shortcut to such a prompt was installed with ``Microsoft Visual C++
Compiler for Python 2.7``. From your Start Menu, look for
``Microsoft Visual C++ Compiler Package for Python 2.7`` then launch
either ``Visual C++ 2008 32-bit Command Prompt`` or
``Visual C++ 2008 64-bit Command Prompt``.
From the prompt, change to the Mercurial source directory. e.g.
``cd c:\src\hg``.
Next, invoke ``packaging.py`` to produce an Inno installer. You will
need to supply the path to the Python interpreter to use.::
$ py -3 contrib\packaging\packaging.py \
inno --python c:\python27\python.exe
.. note::
The script validates that the Visual C++ environment is
active and that the architecture of the specified Python
interpreter matches the Visual C++ environment and errors
if not.
If everything runs as intended, dependencies will be fetched and
configured into the ``build`` sub-directory, Mercurial will be built,
and an installer placed in the ``dist`` sub-directory. The final
line of output should print the name of the generated installer.
Additional options may be configured. Run
``packaging.py inno --help`` to see a list of program flags.
MinGW
=====
It is theoretically possible to generate an installer that uses
MinGW. This isn't well tested and ``packaging.py`` and may properly
support it. See old versions of this file in version control for
potentially useful hints as to how to achieve this.