def finalize_options(self):
"""Set final values for all build_pg options."""
build_ext.finalize_options(self)
if self.direct_access:
define_macros.append(('DIRECT_ACCESS', None))
if self.large_objects:
define_macros.append(('LARGE_OBJECTS', None))
if self.default_vars:
define_macros.append(('DEFAULT_VARS', None))
if self.escaping_funcs and pg_version[0] >= 9:
define_macros.append(('ESCAPING_FUNCS', None))
if sys.platform == 'win32':
bits = platform.architecture()[0]
if bits == '64bit': # we need to find libpq64
for path in os.environ['PATH'].split(os.pathsep) + [
r'C:\Program Files\PostgreSQL\libpq64']:
library_dir = os.path.join(path, 'lib')
if not os.path.isdir(library_dir):
continue
lib = os.path.join(library_dir, 'libpqdll.')
if not (os.path.exists(lib + 'lib')
or os.path.exists(lib + 'a')):
continue
include_dir = os.path.join(path, 'include')
if not os.path.isdir(include_dir):
continue
if library_dir not in library_dirs:
library_dirs.insert(1, library_dir)
if include_dir not in include_dirs:
include_dirs.insert(1, include_dir)
libraries[0] += 'dll' # libpqdll instead of libpq
break
compiler = self.get_compiler()
if compiler == 'mingw32': # MinGW
if bits == '64bit': # needs MinGW-w64
define_macros.append(('MS_WIN64', None))
elif compiler == 'msvc': # Microsoft Visual C++
libraries[0] = 'lib' + libraries[0]
extra_compile_args[1:] = ['-J', '-W3', '-WX']
评论列表
文章目录