Mercurial > hg
changeset 41910:1440dd6164f2
packaging: move find_vc_runtime_files() into hgpackaging.util
In preparation for moving the bulk of the Inno Setup code into
hgpackaging.
Differential Revision: https://phab.mercurial-scm.org/D6086
author | Gregory Szorc <gregory.szorc@gmail.com> |
---|---|
date | Thu, 07 Mar 2019 10:22:09 -0800 |
parents | 1e8fb6522fee |
children | dc7827a9ba64 |
files | contrib/packaging/hgpackaging/util.py contrib/packaging/inno/build.py |
diffstat | 2 files changed, 27 insertions(+), 25 deletions(-) [+] |
line wrap: on
line diff
--- a/contrib/packaging/hgpackaging/util.py Thu Mar 07 10:20:37 2019 -0800 +++ b/contrib/packaging/hgpackaging/util.py Thu Mar 07 10:22:09 2019 -0800 @@ -7,6 +7,7 @@ # no-check-code because Python 3 native. +import os import pathlib import tarfile import zipfile @@ -20,3 +21,28 @@ def extract_zip_to_directory(source: pathlib.Path, dest: pathlib.Path): with zipfile.ZipFile(source, 'r') as zf: zf.extractall(dest) + + +def find_vc_runtime_files(x64=False): + """Finds Visual C++ Runtime DLLs to include in distribution.""" + winsxs = pathlib.Path(os.environ['SYSTEMROOT']) / 'WinSxS' + + prefix = 'amd64' if x64 else 'x86' + + candidates = sorted(p for p in os.listdir(winsxs) + if p.lower().startswith('%s_microsoft.vc90.crt_' % prefix)) + + for p in candidates: + print('found candidate VC runtime: %s' % p) + + # Take the newest version. + version = candidates[-1] + + d = winsxs / version + + return [ + d / 'msvcm90.dll', + d / 'msvcp90.dll', + d / 'msvcr90.dll', + winsxs / 'Manifests' / ('%s.manifest' % version), + ]
--- a/contrib/packaging/inno/build.py Thu Mar 07 10:20:37 2019 -0800 +++ b/contrib/packaging/inno/build.py Thu Mar 07 10:22:09 2019 -0800 @@ -24,31 +24,6 @@ '''.strip() -def find_vc_runtime_files(x64=False): - """Finds Visual C++ Runtime DLLs to include in distribution.""" - winsxs = pathlib.Path(os.environ['SYSTEMROOT']) / 'WinSxS' - - prefix = 'amd64' if x64 else 'x86' - - candidates = sorted(p for p in os.listdir(winsxs) - if p.lower().startswith('%s_microsoft.vc90.crt_' % prefix)) - - for p in candidates: - print('found candidate VC runtime: %s' % p) - - # Take the newest version. - version = candidates[-1] - - d = winsxs / version - - return [ - d / 'msvcm90.dll', - d / 'msvcp90.dll', - d / 'msvcr90.dll', - winsxs / 'Manifests' / ('%s.manifest' % version), - ] - - def build(source_dir: pathlib.Path, build_dir: pathlib.Path, python_exe: pathlib.Path, iscc_exe: pathlib.Path, version=None): @@ -66,6 +41,7 @@ from hgpackaging.util import ( extract_tar_to_directory, extract_zip_to_directory, + find_vc_runtime_files, ) if not iscc.exists():