##// END OF EJS Templates
add --pure flag to setup.py...
Martin Geisler -
r7722:103127a8 default
parent child Browse files
Show More
@@ -30,8 +30,10 b' import os, time'
30 import shutil
30 import shutil
31 import tempfile
31 import tempfile
32 from distutils.core import setup, Extension
32 from distutils.core import setup, Extension
33 from distutils.dist import Distribution
33 from distutils.command.install_data import install_data
34 from distutils.command.install_data import install_data
34 from distutils.command.build import build
35 from distutils.command.build import build
36 from distutils.command.build_py import build_py
35 from distutils.spawn import spawn, find_executable
37 from distutils.spawn import spawn, find_executable
36 from distutils.ccompiler import new_compiler
38 from distutils.ccompiler import new_compiler
37
39
@@ -157,8 +159,35 b' class build_mo(build):'
157
159
158 build.sub_commands.append(('build_mo', None))
160 build.sub_commands.append(('build_mo', None))
159
161
162 Distribution.pure = 0
163 Distribution.global_options.append(('pure', None, "use pure (slow) Python "
164 "code instead of C extensions"))
165
166 class hg_build_py(build_py):
167
168 def finalize_options(self):
169 build_py.finalize_options(self)
170
171 if self.distribution.pure:
172 if self.py_modules is None:
173 self.py_modules = []
174 for ext in self.distribution.ext_modules:
175 if ext.name.startswith("mercurial."):
176 self.py_modules.append("mercurial.pure.%s" % ext.name[10:])
177 self.distribution.ext_modules = []
178
179 def find_modules(self):
180 modules = build_py.find_modules(self)
181 for module in modules:
182 if module[0] == "mercurial.pure":
183 if module[1] != "__init__":
184 yield ("mercurial", module[1], module[2])
185 else:
186 yield module
187
160 cmdclass = {'install_data': install_package_data,
188 cmdclass = {'install_data': install_package_data,
161 'build_mo': build_mo}
189 'build_mo': build_mo,
190 'build_py': hg_build_py}
162
191
163 ext_modules=[
192 ext_modules=[
164 Extension('mercurial.base85', ['mercurial/base85.c']),
193 Extension('mercurial.base85', ['mercurial/base85.c']),
General Comments 0
You need to be logged in to leave comments. Login now