Show More
@@ -35,6 +35,7 b' tags' | |||
|
35 | 35 | cscope.* |
|
36 | 36 | i18n/hg.pot |
|
37 | 37 | locale/*/LC_MESSAGES/hg.mo |
|
38 | hgext/__index__.py | |
|
38 | 39 | |
|
39 | 40 | # files installed with a local --pure build |
|
40 | 41 | mercurial/base85.py |
@@ -56,7 +56,7 b' import os, subprocess, time' | |||
|
56 | 56 | import shutil |
|
57 | 57 | import tempfile |
|
58 | 58 | from distutils import log |
|
59 | from distutils.core import setup, Extension | |
|
59 | from distutils.core import setup, Command, Extension | |
|
60 | 60 | from distutils.dist import Distribution |
|
61 | 61 | from distutils.command.build import build |
|
62 | 62 | from distutils.command.build_ext import build_ext |
@@ -64,7 +64,7 b' from distutils.command.build_py import b' | |||
|
64 | 64 | from distutils.command.install_scripts import install_scripts |
|
65 | 65 | from distutils.spawn import spawn, find_executable |
|
66 | 66 | from distutils.ccompiler import new_compiler |
|
67 | from distutils.errors import CCompilerError | |
|
67 | from distutils.errors import CCompilerError, DistutilsExecError | |
|
68 | 68 | from distutils.sysconfig import get_python_inc |
|
69 | 69 | from distutils.version import StrictVersion |
|
70 | 70 | |
@@ -260,6 +260,34 b' class hgbuildpy(build_py):' | |||
|
260 | 260 | else: |
|
261 | 261 | yield module |
|
262 | 262 | |
|
263 | class buildhgextindex(Command): | |
|
264 | description = 'generate prebuilt index of hgext (for frozen package)' | |
|
265 | user_options = [] | |
|
266 | _indexfilename = 'hgext/__index__.py' | |
|
267 | ||
|
268 | def initialize_options(self): | |
|
269 | pass | |
|
270 | ||
|
271 | def finalize_options(self): | |
|
272 | pass | |
|
273 | ||
|
274 | def run(self): | |
|
275 | if os.path.exists(self._indexfilename): | |
|
276 | os.unlink(self._indexfilename) | |
|
277 | ||
|
278 | # here no extension enabled, disabled() lists up everything | |
|
279 | code = ('import pprint; from mercurial import extensions; ' | |
|
280 | 'pprint.pprint(extensions.disabled())') | |
|
281 | out, err = runcmd([sys.executable, '-c', code], env) | |
|
282 | if err: | |
|
283 | raise DistutilsExecError(err) | |
|
284 | ||
|
285 | f = open(self._indexfilename, 'w') | |
|
286 | f.write('# this file is autogenerated by setup.py\n') | |
|
287 | f.write('docs = ') | |
|
288 | f.write(out) | |
|
289 | f.close() | |
|
290 | ||
|
263 | 291 | class hginstallscripts(install_scripts): |
|
264 | 292 | ''' |
|
265 | 293 | This is a specialization of install_scripts that replaces the @LIBDIR@ with |
@@ -309,6 +337,7 b' class hginstallscripts(install_scripts):' | |||
|
309 | 337 | cmdclass = {'build_mo': hgbuildmo, |
|
310 | 338 | 'build_ext': hgbuildext, |
|
311 | 339 | 'build_py': hgbuildpy, |
|
340 | 'build_hgextindex': buildhgextindex, | |
|
312 | 341 | 'install_scripts': hginstallscripts} |
|
313 | 342 | |
|
314 | 343 | packages = ['mercurial', 'mercurial.hgweb', |
@@ -373,6 +402,8 b' if py2exeloaded:' | |||
|
373 | 402 | {'script':'hg', |
|
374 | 403 | 'copyright':'Copyright (C) 2005-2010 Matt Mackall and others', |
|
375 | 404 | 'product_version':version}] |
|
405 | # sub command of 'build' because 'py2exe' does not handle sub_commands | |
|
406 | build.sub_commands.insert(0, ('build_hgextindex', None)) | |
|
376 | 407 | |
|
377 | 408 | if os.name == 'nt': |
|
378 | 409 | # Windows binary file versions for exe/dll files must have the |
General Comments 0
You need to be logged in to leave comments.
Login now