Author: Matti Picus <[email protected]>
Branch: 
Changeset: r98249:cf0ed0f35064
Date: 2019-12-08 08:26 +0200
http://bitbucket.org/pypy/pypy/changeset/cf0ed0f35064/

Log:    redo _curses_build library detection

diff --git a/lib_pypy/_curses_build.py b/lib_pypy/_curses_build.py
--- a/lib_pypy/_curses_build.py
+++ b/lib_pypy/_curses_build.py
@@ -28,13 +28,25 @@
     # error message
     raise e_last
 
-def find_curses_include_dirs():
-    if os.path.exists('/usr/include/ncurses'):
-        return ['/usr/include/ncurses']
-    if os.path.exists('/usr/include/ncursesw'):
-        return ['/usr/include/ncursesw']
-    return []
+def find_curses_dir_and_name():
+    for base in ('/usr', '/usr/local'):
+        if os.path.exists(os.path.join(base, 'include', 'ncursesw')):
+            return base, 'ncursesw'
+        if os.path.exists(os.path.join(base, 'include', 'ncurses')):
+            return base, 'ncurses'
+    return '', None
 
+base, name = find_curses_dir_and_name()
+if base:
+    include_dirs = [os.path.join(base, 'include', name)]
+    library_dirs = [os.path.join(base, 'lib')]
+    libs = [name, name.replace('ncurses', 'panel')]
+else:
+    include_dirs = []
+    library_dirs = []
+    libs = [find_library(['ncursesw', 'ncurses']),
+                find_library(['panelw', 'panel']),
+           ]
 
 ffi = FFI()
 ffi.set_source("_curses_cffi", """
@@ -83,9 +95,10 @@
 void _m_getsyx(int *yx) {
     getsyx(yx[0], yx[1]);
 }
-""", libraries=[find_library(['ncurses', 'ncursesw']),
-                find_library(['panel', 'panelw'])],
-     include_dirs=find_curses_include_dirs())
+""", libraries=libs,
+     library_dirs = library_dirs,
+     include_dirs=include_dirs,
+)
 
 
 ffi.cdef("""
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to