diff options
Diffstat (limited to 'external_libs/python/pyzmq-14.7.0/buildutils/patch.py')
-rw-r--r-- | external_libs/python/pyzmq-14.7.0/buildutils/patch.py | 61 |
1 files changed, 0 insertions, 61 deletions
diff --git a/external_libs/python/pyzmq-14.7.0/buildutils/patch.py b/external_libs/python/pyzmq-14.7.0/buildutils/patch.py deleted file mode 100644 index 925b67b7..00000000 --- a/external_libs/python/pyzmq-14.7.0/buildutils/patch.py +++ /dev/null @@ -1,61 +0,0 @@ -"""utils for patching libraries""" - -# Copyright (c) PyZMQ Developers. -# Distributed under the terms of the Modified BSD License. - - -import re -import sys -import os -import logging - -from .misc import get_output_error - -pjoin = os.path.join - -# LIB_PAT from delocate -LIB_PAT = re.compile(r"\s*(.*) \(compatibility version (\d+\.\d+\.\d+), " - r"current version (\d+\.\d+\.\d+)\)") - -def _get_libs(fname): - rc, so, se = get_output_error(['otool', '-L', fname]) - if rc: - logging.error("otool -L %s failed: %r" % (fname, se)) - return - for line in so.splitlines()[1:]: - m = LIB_PAT.match(line) - if m: - yield m.group(1) - -def _find_library(lib, path): - """Find a library""" - for d in path[::-1]: - real_lib = os.path.join(d, lib) - if os.path.exists(real_lib): - return real_lib - -def _install_name_change(fname, lib, real_lib): - rc, so, se = get_output_error(['install_name_tool', '-change', lib, real_lib, fname]) - if rc: - logging.error("Couldn't update load path: %s", se) - -def patch_lib_paths(fname, library_dirs): - """Load any weakly-defined libraries from their real location - - (only on OS X) - - - Find libraries with `otool -L` - - Update with `install_name_tool -change` - """ - if sys.platform != 'darwin': - return - - libs = _get_libs(fname) - for lib in libs: - if not lib.startswith(('@', '/')): - real_lib = _find_library(lib, library_dirs) - if real_lib: - _install_name_change(fname, lib, real_lib) - - -__all__ = ['patch_lib_paths']
\ No newline at end of file |