packaging: move find_vc_runtime_files() into hgpackaging.util
authorGregory Szorc <gregory.szorc@gmail.com>
Thu, 07 Mar 2019 10:22:09 -0800
changeset 41915 1440dd6164f2
parent 41914 1e8fb6522fee
child 41916 dc7827a9ba64
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
contrib/packaging/hgpackaging/util.py
contrib/packaging/inno/build.py
--- 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():