summaryrefslogtreecommitdiff
path: root/numpy/distutils/misc_util.py
diff options
context:
space:
mode:
Diffstat (limited to 'numpy/distutils/misc_util.py')
-rw-r--r--numpy/distutils/misc_util.py19
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():