diff options
Diffstat (limited to 'numpy/distutils/misc_util.py')
-rw-r--r-- | numpy/distutils/misc_util.py | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/numpy/distutils/misc_util.py b/numpy/distutils/misc_util.py index 102af874f..0c78220cb 100644 --- a/numpy/distutils/misc_util.py +++ b/numpy/distutils/misc_util.py @@ -2284,10 +2284,25 @@ def generate_config_py(target): # For gfortran+msvc combination, extra shared libraries may exist f.write(""" + import os +import sys + extra_dll_dir = os.path.join(os.path.dirname(__file__), 'extra-dll') -if os.path.isdir(extra_dll_dir): - os.environ["PATH"] += os.pathsep + extra_dll_dir + +if os.path.isdir(extra_dll_dir) and sys.platform == 'win32': + try: + from ctypes import windll, c_wchar_p + _AddDllDirectory = windll.kernel32.AddDllDirectory + _AddDllDirectory.argtypes = [c_wchar_p] + # Needed to initialize AddDllDirectory modifications + windll.kernel32.SetDefaultDllDirectories(0x1000) + except AttributeError: + def _AddDllDirectory(dll_directory): + os.environ["PATH"] += os.pathsep + dll_directory + + _AddDllDirectory(extra_dll_dir) + """) for k, i in system_info.saved_results.items(): |