Lines Matching refs:self

299     def __init__(self, dist):
300 build_ext.__init__(self, dist)
301 self.srcdir = None
302 self.lib_dirs = None
303 self.inc_dirs = None
304 self.config_h_vars = None
305 self.failed = []
306 self.failed_on_import = []
307 self.missing = []
308 self.disabled_configure = []
310 self.parallel = True
312 def add(self, ext):
313 self.extensions.append(ext)
315 def addext(self, ext, *, update_flags=True):
319 self.update_extension_flags(ext)
323 self.extensions.append(ext)
325 self.disabled_configure.append(ext.name)
327 self.missing.append(ext.name)
333 self.announce(
337 self.extensions.append(ext)
339 def update_extension_flags(self, ext):
387 def set_srcdir(self):
388 self.srcdir = sysconfig.get_config_var('srcdir')
389 if not self.srcdir:
392 self.srcdir = os.path.abspath(self.srcdir)
394 def remove_disabled(self):
396 extensions = [ext for ext in self.extensions
403 self.extensions = extensions
405 def update_sources_depends(self):
411 os.path.join(self.srcdir, 'Modules'),
417 self.distribution.scripts = [os.path.join(self.srcdir, filename)
418 for filename in self.distribution.scripts]
427 for ext in self.extensions:
443 def handle_configured_extensions(self):
453 for ext in self.extensions:
463 self.extensions = [x for x in self.extensions if x not in
471 fullpath = self.get_ext_fullpath(ext.name)
477 def set_compiler_executables(self):
488 self.compiler.set_executables(**args)
490 def build_extensions(self):
491 self.set_srcdir()
492 self.set_compiler_executables()
493 self.configure_compiler()
494 self.init_inc_lib_dirs()
497 self.detect_modules()
500 self.remove_disabled()
502 self.update_sources_depends()
503 mods_built, mods_disabled = self.handle_configured_extensions()
506 for ext in self.extensions:
508 for name in self.missing:
512 build_ext.build_extensions(self)
519 for ext in self.extensions:
520 self.check_extension_import(ext)
522 self.summary(mods_built, mods_disabled)
524 def summary(self, mods_built, mods_disabled):
525 longest = max([len(e.name) for e in self.extensions], default=0)
526 if self.failed or self.failed_on_import:
527 all_failed = self.failed + self.failed_on_import
539 if self.missing:
543 print_three_column(self.missing)
565 if self.disabled_configure:
570 print_three_column(self.disabled_configure)
573 if self.failed:
574 failed = self.failed[:]
580 if self.failed_on_import:
581 failed = self.failed_on_import[:]
589 for l in (self.missing, self.failed, self.failed_on_import)):
598 self.failed or self.failed_on_import or self.missing
602 def build_extension(self, ext):
605 if not self.configure_ctypes(ext):
606 self.failed.append(ext.name)
610 build_ext.build_extension(self, ext)
612 self.announce('WARNING: building of extension "%s" failed: %s' %
614 self.failed.append(ext.name)
617 def check_extension_import(self, ext):
619 if ext.name in self.failed:
620 self.announce(
628 self.announce(
640 self.announce(
648 self.announce('WARNING: skipping import check for Cygwin-based "%s"'
652 self.build_lib,
653 self.get_ext_filename(self.get_ext_fullname(ext.name)))
670 self.failed_on_import.append(ext.name)
671 self.announce('*** WARNING: renaming "%s" since importing it'
673 assert not self.inplace
682 self.announce('*** WARNING: importing extension "%s" '
685 self.failed.append(ext.name)
687 def add_multiarch_paths(self):
690 tmpfile = os.path.join(self.build_temp, 'multiarch')
691 if not os.path.exists(self.build_temp):
692 os.makedirs(self.build_temp)
704 add_dir_to_list(self.compiler.library_dirs,
706 add_dir_to_list(self.compiler.include_dirs,
715 tmpfile = os.path.join(self.build_temp, 'multiarch')
716 if not os.path.exists(self.build_temp):
717 os.makedirs(self.build_temp)
725 add_dir_to_list(self.compiler.library_dirs,
727 add_dir_to_list(self.compiler.include_dirs,
732 def add_wrcc_search_dirs(self):
754 add_dir_to_list(self.compiler.library_dirs, d)
756 tmpfile = os.path.join(self.build_temp, 'wrccpaths')
757 os.makedirs(self.build_temp, exist_ok=True)
776 def add_cross_compiling_paths(self):
777 tmpfile = os.path.join(self.build_temp, 'ccpaths')
778 if not os.path.exists(self.build_temp):
779 os.makedirs(self.build_temp)
802 add_dir_to_list(self.compiler.library_dirs,
805 add_dir_to_list(self.compiler.include_dirs,
811 self.add_wrcc_search_dirs()
813 def add_ldflags_cppflags(self):
821 ('LDFLAGS', '-R', self.compiler.runtime_library_dirs),
822 ('LDFLAGS', '-L', self.compiler.library_dirs),
823 ('CPPFLAGS', '-I', self.compiler.include_dirs)):
845 def configure_compiler(self):
850 add_dir_to_list(self.compiler.library_dirs, '/usr/local/lib')
851 add_dir_to_list(self.compiler.include_dirs, '/usr/local/include')
854 self.add_cross_compiling_paths()
855 self.add_multiarch_paths()
856 self.add_ldflags_cppflags()
858 def init_inc_lib_dirs(self):
866 add_dir_to_list(self.compiler.library_dirs,
868 add_dir_to_list(self.compiler.include_dirs,
877 self.lib_dirs = self.compiler.library_dirs + system_lib_dirs
878 self.inc_dirs = self.compiler.include_dirs + system_include_dirs
883 self.lib_dirs = (self.compiler.library_dirs +
885 self.inc_dirs = (self.compiler.include_dirs +
891 self.config_h_vars = sysconfig.parse_config_h(file)
895 self.lib_dirs += ['/usr/ccs/lib']
899 self.lib_dirs += ['/usr/lib/hpux64', '/usr/lib/hpux32']
913 self.inc_dirs.append(item[2:])
917 self.lib_dirs.append(item[2:])
919 def detect_simple_extensions(self):
926 self.addext(Extension('array', ['arraymodule.c']))
929 self.addext(Extension('_contextvars', ['_contextvarsmodule.c']))
932 self.addext(Extension('math', ['mathmodule.c']))
935 self.addext(Extension('cmath', ['cmathmodule.c']))
939 self.addext(Extension('_datetime', ['_datetimemodule.c']))
940 self.addext(Extension('_zoneinfo', ['_zoneinfo.c']))
942 self.addext(Extension("_random", ["_randommodule.c"]))
943 self.addext(Extension("_bisect", ["_bisectmodule.c"]))
944 self.addext(Extension("_heapq", ["_heapqmodule.c"]))
946 self.addext(Extension("_pickle", ["_pickle.c"]))
948 self.addext(Extension("_json", ["_json.c"]))
951 self.addext(Extension('_lsprof', ['_lsprof.c', 'rotatingtree.c']))
953 self.addext(Extension('unicodedata', ['unicodedata.c']))
954 self.addext(Extension('_opcode', ['_opcode.c']))
957 self.addext(Extension("_asyncio", ["_asynciomodule.c"]))
959 self.addext(Extension("_queue", ["_queuemodule.c"]))
960 self.addext(Extension("_statistics", ["_statisticsmodule.c"]))
961 self.addext(Extension("_struct", ["_struct.c"]))
962 self.addext(Extension("_typing", ["_typingmodule.c"]))
969 self.addext(Extension('fcntl', ['fcntlmodule.c']))
971 self.addext(Extension('grp', ['grpmodule.c']))
973 self.addext(Extension('_socket', ['socketmodule.c']))
974 self.addext(Extension('spwd', ['spwdmodule.c']))
977 self.addext(Extension('select', ['selectmodule.c']))
980 self.addext(Extension('mmap', ['mmapmodule.c']))
984 self.addext(Extension('syslog', ['syslogmodule.c']))
987 self.addext(Extension('_xxsubinterpreters', ['_xxsubinterpretersmodule.c']))
1003 self.addext(Extension('audioop', ['audioop.c']))
1006 self.addext(Extension('_csv', ['_csv.c']))
1009 self.addext(Extension('_posixsubprocess', ['_posixsubprocess.c']))
1011 def detect_test_extensions(self):
1013 self.addext(Extension('_testcapi', ['_testcapimodule.c']))
1016 self.addext(Extension('_testclinic', ['_testclinic.c']))
1019 self.addext(Extension('_testinternalcapi', ['_testinternalcapi.c']))
1022 self.addext(Extension('_testbuffer', ['_testbuffer.c']))
1025 self.addext(Extension('_testimportmultiple', ['_testimportmultiple.c']))
1028 self.addext(Extension('_testmultiphase', ['_testmultiphase.c']))
1031 self.addext(Extension(
1036 def detect_readline_curses(self):
1041 tmpfile = os.path.join(self.build_temp, 'readline_termcap_lib')
1042 if not os.path.exists(self.build_temp):
1043 os.makedirs(self.build_temp)
1050 do_readline = self.compiler.find_library_file(self.lib_dirs,
1080 elif self.compiler.find_library_file(self.lib_dirs, 'ncursesw'):
1084 elif AIX and self.compiler.find_library_file(self.lib_dirs, 'curses'):
1086 elif self.compiler.find_library_file(self.lib_dirs, 'ncurses'):
1088 elif self.compiler.find_library_file(self.lib_dirs, 'curses'):
1102 if find_file('readline/rlconf.h', self.inc_dirs, []) is None:
1110 elif self.compiler.find_library_file(self.lib_dirs +
1114 self.add(Extension('readline', ['readline.c'],
1118 self.missing.append('readline')
1148 self.add(Extension('_curses', ['_cursesmodule.c'],
1155 if (self.compiler.find_library_file(self.lib_dirs, 'terminfo')):
1157 elif (self.compiler.find_library_file(self.lib_dirs, 'termcap')):
1162 self.add(Extension('_curses', ['_cursesmodule.c'],
1167 self.missing.append('_curses')
1173 self.compiler.find_library_file(self.lib_dirs, panel_library)):
1174 self.add(Extension('_curses_panel', ['_curses_panel.c'],
1179 self.missing.append('_curses_panel')
1181 def detect_crypt(self):
1182 self.addext(Extension('_crypt', ['_cryptmodule.c']))
1184 def detect_dbm_gdbm(self):
1252 self.add(dbmext)
1254 self.missing.append('_dbm')
1257 self.addext(Extension('_gdbm', ['_gdbmmodule.c']))
1259 def detect_sqlite(self):
1271 self.addext(Extension("_sqlite3", sources=sources))
1273 def detect_platform_specific_exts(self):
1276 self.addext(Extension('termios', ['termios.c']))
1278 self.addext(Extension('resource', ['resource.c']))
1280 self.addext(Extension('ossaudiodev', ['ossaudiodev.c']))
1283 self.addext(Extension('_scproxy', ['_scproxy.c']))
1285 def detect_compress_exts(self):
1287 self.addext(Extension('zlib', ['zlibmodule.c']))
1291 self.addext(Extension('binascii', ['binascii.c']))
1294 self.addext(Extension('_bz2', ['_bz2module.c']))
1297 self.addext(Extension('_lzma', ['_lzmamodule.c']))
1299 def detect_expat_elementtree(self):
1311 self.addext(Extension('pyexpat', sources=['pyexpat.c']))
1315 self.addext(Extension('_elementtree', sources=['_elementtree.c']))
1317 def detect_multibytecodecs(self):
1319 self.addext(Extension('_multibytecodec',
1322 self.addext(Extension(
1326 def detect_multiprocessing(self):
1334 self.addext(Extension('_multiprocessing', multiprocessing_srcs))
1335 self.addext(Extension('_posixshmem', ['_multiprocessing/posixshmem.c']))
1337 def detect_uuid(self):
1339 self.addext(Extension('_uuid', ['_uuidmodule.c']))
1341 def detect_modules(self):
1343 self.extensions = []
1348 self.detect_simple_extensions()
1349 self.detect_test_extensions()
1350 self.detect_readline_curses()
1351 self.detect_crypt()
1352 self.detect_openssl_hashlib()
1353 self.detect_hash_builtins()
1354 self.detect_dbm_gdbm()
1355 self.detect_sqlite()
1356 self.detect_platform_specific_exts()
1357 self.detect_nis()
1358 self.detect_compress_exts()
1359 self.detect_expat_elementtree()
1360 self.detect_multibytecodecs()
1361 self.detect_decimal()
1362 self.detect_ctypes()
1363 self.detect_multiprocessing()
1364 self.detect_tkinter()
1365 self.detect_uuid()
1368 # self.add(Extension('xx', ['xxmodule.c']))
1370 self.addext(Extension('xxlimited', ['xxlimited.c']))
1371 self.addext(Extension('xxlimited_35', ['xxlimited_35.c']))
1373 def detect_tkinter(self):
1374 self.addext(Extension('_tkinter', ['_tkinter.c', 'tkappinit.c']))
1376 def configure_ctypes(self, ext):
1379 def detect_ctypes(self):
1383 self.use_system_libffi = True
1385 self.use_system_libffi = '--with-system-ffi' in sysconfig.get_config_var("CONFIG_ARGS")
1419 self.add(ext)
1421 self.addext(Extension('_ctypes_test', ['_ctypes/_ctypes_test.c']))
1426 ffi_inc_dirs = self.inc_dirs.copy()
1451 if (self.compiler.find_library_file(self.lib_dirs, lib_name)):
1466 self.use_system_libffi = True
1472 def detect_decimal(self):
1474 self.addext(
1483 def detect_openssl_hashlib(self):
1484 self.addext(Extension('_ssl', ['_ssl.c']))
1485 self.addext(Extension('_hashlib', ['_hashopenssl.c']))
1487 def detect_hash_builtins(self):
1493 self.addext(Extension('_md5', ['md5module.c']))
1494 self.addext(Extension('_sha1', ['sha1module.c']))
1495 self.addext(Extension('_sha256', ['sha256module.c']))
1496 self.addext(Extension('_sha512', ['sha512module.c']))
1497 self.addext(Extension('_sha3', ['_sha3/sha3module.c']))
1498 self.addext(Extension('_blake2',
1506 def detect_nis(self):
1507 self.addext(Extension('nis', ['nismodule.c']))
1514 def initialize_options (self):
1515 install.initialize_options(self)
1516 self.warn_dir=0
1534 def install(self):
1535 outfiles = install_lib.install(self)
1536 self.set_file_modes(outfiles, 0o644, 0o755)
1537 self.set_dir_modes(self.install_dir, 0o755)
1540 def set_file_modes(self, files, defaultMode, sharedLibMode):
1546 if filename.endswith(self.shlib_suffix): mode = sharedLibMode
1548 if not self.dry_run: os.chmod(filename, mode)
1550 def set_dir_modes(self, dirname, mode):
1555 if not self.dry_run: os.chmod(dirpath, mode)
1559 def copy_scripts(self):
1560 outfiles, updated_files = build_scripts.copy_scripts(self)