##// END OF EJS Templates
py3: manually import pycompat.setattr where it is needed...
py3: manually import pycompat.setattr where it is needed Continuing to eliminate the implicit import of symbols in the Python 3 source transformer so we can eliminate it. Differential Revision: https://phab.mercurial-scm.org/D7007

File last commit:

r43346:2372284d default
r43357:66f2cc21 default
Show More
build.py
60 lines | 1.5 KiB | text/x-python | PythonLexer
Gregory Szorc
inno: script to automate building Inno installer...
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
formatting: blacken the codebase...
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
inno: script to automate building Inno installer...
r42019
args = parser.parse_args()
Matt Harbison
packaging: ensure that --python is an absolute path when building on Windows...
r42260 if not os.path.isabs(args.python):
raise Exception('--python arg must be an absolute path')
Gregory Szorc
inno: script to automate building Inno installer...
r42019 if args.iscc:
iscc = pathlib.Path(args.iscc)
else:
Augie Fackler
formatting: blacken the codebase...
r43346 iscc = (
pathlib.Path(os.environ['ProgramFiles(x86)'])
/ 'Inno Setup 5'
/ 'ISCC.exe'
)
Gregory Szorc
inno: script to automate building Inno installer...
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
packaging: move Inno Setup core logic into a module...
r42077 from hgpackaging.inno import build
Augie Fackler
formatting: blacken the codebase...
r43346 build(
source_dir,
build_dir,
pathlib.Path(args.python),
iscc,
version=args.version,
)