]> git.proxmox.com Git - mirror_edk2.git/blame - AppPkg/Applications/Python/Python-2.7.2/Lib/distutils/tests/setuptools_extension.py
EmbeddedPkg: Extend NvVarStoreFormattedLib LIBRARY_CLASS
[mirror_edk2.git] / AppPkg / Applications / Python / Python-2.7.2 / Lib / distutils / tests / setuptools_extension.py
CommitLineData
4710c53d 1from distutils.core import Extension as _Extension\r
2from distutils.core import Distribution as _Distribution\r
3\r
4def _get_unpatched(cls):\r
5 """Protect against re-patching the distutils if reloaded\r
6\r
7 Also ensures that no other distutils extension monkeypatched the distutils\r
8 first.\r
9 """\r
10 while cls.__module__.startswith('setuptools'):\r
11 cls, = cls.__bases__\r
12 if not cls.__module__.startswith('distutils'):\r
13 raise AssertionError(\r
14 "distutils has already been patched by %r" % cls\r
15 )\r
16 return cls\r
17\r
18_Distribution = _get_unpatched(_Distribution)\r
19_Extension = _get_unpatched(_Extension)\r
20\r
21try:\r
22 from Pyrex.Distutils.build_ext import build_ext\r
23except ImportError:\r
24 have_pyrex = False\r
25else:\r
26 have_pyrex = True\r
27\r
28\r
29class Extension(_Extension):\r
30 """Extension that uses '.c' files in place of '.pyx' files"""\r
31\r
32 if not have_pyrex:\r
33 # convert .pyx extensions to .c\r
34 def __init__(self,*args,**kw):\r
35 _Extension.__init__(self,*args,**kw)\r
36 sources = []\r
37 for s in self.sources:\r
38 if s.endswith('.pyx'):\r
39 sources.append(s[:-3]+'c')\r
40 else:\r
41 sources.append(s)\r
42 self.sources = sources\r
43\r
44class Library(Extension):\r
45 """Just like a regular Extension, but built as a library instead"""\r
46\r
47import sys, distutils.core, distutils.extension\r
48distutils.core.Extension = Extension\r
49distutils.extension.Extension = Extension\r
50if 'distutils.command.build_ext' in sys.modules:\r
51 sys.modules['distutils.command.build_ext'].Extension = Extension\r