build.py
60 lines
| 1.5 KiB
| text/x-python
|
PythonLexer
Gregory Szorc
|
r42019 | #!/usr/bin/env python3 | ||
# build.py - Inno installer build script. | ||||
# | ||||
# Copyright 2019 Gregory Szorc <gregory.szorc@gmail.com> | ||||
# | ||||
# This software may be used and distributed according to the terms of the | ||||
# GNU General Public License version 2 or any later version. | ||||
# This script automates the building of the Inno MSI installer for Mercurial. | ||||
# no-check-code because Python 3 native. | ||||
import argparse | ||||
import os | ||||
import pathlib | ||||
import sys | ||||
if __name__ == '__main__': | ||||
parser = argparse.ArgumentParser() | ||||
Augie Fackler
|
r43346 | parser.add_argument( | ||
'--python', required=True, help='path to python.exe to use' | ||||
) | ||||
parser.add_argument('--iscc', help='path to iscc.exe to use') | ||||
parser.add_argument( | ||||
'--version', | ||||
help='Mercurial version string to use ' | ||||
'(detected from __version__.py if not defined', | ||||
) | ||||
Gregory Szorc
|
r42019 | |||
args = parser.parse_args() | ||||
Matt Harbison
|
r42260 | if not os.path.isabs(args.python): | ||
raise Exception('--python arg must be an absolute path') | ||||
Gregory Szorc
|
r42019 | if args.iscc: | ||
iscc = pathlib.Path(args.iscc) | ||||
else: | ||||
Augie Fackler
|
r43346 | iscc = ( | ||
pathlib.Path(os.environ['ProgramFiles(x86)']) | ||||
/ 'Inno Setup 5' | ||||
/ 'ISCC.exe' | ||||
) | ||||
Gregory Szorc
|
r42019 | |||
here = pathlib.Path(os.path.abspath(os.path.dirname(__file__))) | ||||
source_dir = here.parent.parent.parent | ||||
build_dir = source_dir / 'build' | ||||
sys.path.insert(0, str(source_dir / 'contrib' / 'packaging')) | ||||
Gregory Szorc
|
r42077 | from hgpackaging.inno import build | ||
Augie Fackler
|
r43346 | build( | ||
source_dir, | ||||
build_dir, | ||||
pathlib.Path(args.python), | ||||
iscc, | ||||
version=args.version, | ||||
) | ||||