def python_config (self):
cflags = self._getitem('default', 'python_cflags', None)
ldflags = self._getitem('default', 'python_ldflags', None)
if cflags or ldflags:
return (cflags.strip('\r\n\t '), ldflags.strip('\r\n\t '))
pythoninc, pythonlib = [], []
import distutils.sysconfig
sysconfig = distutils.sysconfig
inc1 = sysconfig.get_python_inc()
inc2 = sysconfig.get_python_inc(plat_specific = True)
pythoninc.append('-I' + self.pathtext(inc1))
if inc2 != inc1:
pythoninc.append('-I' + self.pathtext(inc2))
pyver = sysconfig.get_config_var('VERSION')
getvar = sysconfig.get_config_var
if not pyver:
v1, v2 = sys.version_info[:2]
pyver = self.unix and '%s.%s'%(v1, v2) or '%s%s'%(v1, v2)
lib1 = getvar('LIBS')
pythonlib.extend(lib1 and lib1.split() or [])
prefix = sys.prefix
if os.path.exists(prefix):
if not pythoninc:
n1 = os.path.join(prefix, 'include/python%s'%pyver)
n2 = os.path.join(prefix, 'include')
if os.path.exists(n1 + '/Python.h'):
pythoninc.append('-I' + self.pathtext(n1))
elif os.path.exists(n2 + '/Python.h'):
pythoninc.append('-I' + self.pathtext(n2))
if not pythonlib:
n1 = os.path.join(prefix, 'lib/python%s'%pyver)
n2 = os.path.join(n1, 'config')
n3 = os.path.join(prefix, 'libs')
fn1 = 'libpython' + pyver + '.a'
fn2 = 'libpython' + pyver + '.dll.a'
done = False
for ff in (fn1, fn2):
for nn in (n1, n2, n3):
if os.path.exists(nn + '/' + ff):
pythonlib.append('-L' + self.pathtext(nn))
done = True
break
if done:
break
lib2 = getvar('SYSLIBS')
pythonlib.extend(lib2 and lib2.split() or [])
if not getvar('Py_ENABLE_SHARED'):
if getvar('LIBPL'):
pythonlib.insert(0, '-L' + getvar('LIBPL'))
if not getvar('PYTHONFRAMEWORK'):
if getvar('LINKFORSHARED'):
pythonlib.extend(getvar('LINKFORSHARED').split())
pythonlib.append('-lpython' + pyver)
cflags = ' '.join(pythoninc)
ldflags = ' '.join(pythonlib)
return cflags, ldflags
# ???? java??
评论列表
文章目录