summaryrefslogtreecommitdiff
path: root/setup.py
diff options
context:
space:
mode:
authorNed Deily <nad@acm.org>2012-06-20 23:47:14 -0700
committerNed Deily <nad@acm.org>2012-06-20 23:47:14 -0700
commit7ac84bc26fded516fe7000e1d77bb32cbb5ec998 (patch)
treee36a76ffab72c694779a89f2425552591d0c4041 /setup.py
parent866499bb3ac223cdfb979982551cb8755e79f24b (diff)
downloadcpython-7ac84bc26fded516fe7000e1d77bb32cbb5ec998.tar.gz
Issue #14225: Fix Unicode support for curses (#12567) on OS X:
1. on OS X, there is no separate /usr/lib/libcursesw nor libpanelw 2. _XOPEN_SOURCE_EXTENDED must be enabled for _curses build
Diffstat (limited to 'setup.py')
-rw-r--r--setup.py13
1 files changed, 13 insertions, 0 deletions
diff --git a/setup.py b/setup.py
index 31037520c8..538cf5840b 100644
--- a/setup.py
+++ b/setup.py
@@ -1185,6 +1185,18 @@ class PyBuildExt(build_ext):
# Bug 1464056: If _curses.so links with ncursesw,
# _curses_panel.so must link with panelw.
panel_library = 'panelw'
+ if platform == 'darwin':
+ # On OS X, there is no separate /usr/lib/libncursesw nor
+ # libpanelw. If we are here, we found a locally-supplied
+ # version of libncursesw. There should be also be a
+ # libpanelw. _XOPEN_SOURCE defines are usually excluded
+ # for OS X but we need _XOPEN_SOURCE_EXTENDED here for
+ # ncurses wide char support
+ curses_defines.append(('_XOPEN_SOURCE_EXTENDED', '1'))
+ elif platform == 'darwin' and curses_library == 'ncurses':
+ # Building with the system-suppied combined libncurses/libpanel
+ curses_defines.append(('HAVE_NCURSESW', '1'))
+ curses_defines.append(('_XOPEN_SOURCE_EXTENDED', '1'))
if curses_library.startswith('ncurses'):
curses_libs = [curses_library]
@@ -1213,6 +1225,7 @@ class PyBuildExt(build_ext):
self.compiler.find_library_file(lib_dirs, panel_library)):
exts.append( Extension('_curses_panel', ['_curses_panel.c'],
include_dirs=curses_includes,
+ define_macros=curses_defines,
libraries = [panel_library] + curses_libs) )
else:
missing.append('_curses_panel')