view setup.py @ 1071:8f0ac653f85e

Add support for extension modules This adds support for an [extensions] section to hgrc. This has the form of: [extensions] mod=[path] If a path is specified, the python module found at that path is load. Otherwise, __import__ is used to find the module. Each module must implement a dict called cmdtable where the command line options for that module live. Each module must also implement a reposetup function: cmdtable = {} def reposetup(ui, repo): pass Index: hg/mercurial/ui.py ===================================================================
author mason@suse.com
date Fri, 26 Aug 2005 14:05:52 -0700
parents 7f5ce4bbdd7b
children f5faab34f32e
line wrap: on
line source

#!/usr/bin/env python
#
# This is the mercurial setup script.
#
# './setup.py install', or
# './setup.py --help' for more options

import glob
from distutils.core import setup, Extension
from distutils.command.install_data import install_data

import mercurial.version

# specify version string, otherwise 'hg identify' will be used:
version = ''

class install_package_data(install_data):
    def finalize_options(self):
        self.set_undefined_options('install',
                                   ('install_lib', 'install_dir'))
        install_data.finalize_options(self)

try:
    mercurial.version.remember_version(version)
    setup(name='mercurial',
          version=mercurial.version.get_version(),
          author='Matt Mackall',
          author_email='mpm@selenic.com',
          url='http://selenic.com/mercurial',
          description='scalable distributed SCM',
          license='GNU GPL',
          packages=['mercurial'],
          ext_modules=[Extension('mercurial.mpatch', ['mercurial/mpatch.c']),
                       Extension('mercurial.bdiff', ['mercurial/bdiff.c'])],
          data_files=[('mercurial/templates',
                       ['templates/map'] +
                       glob.glob('templates/map-*') +
                       glob.glob('templates/*.tmpl'))],
          cmdclass = { 'install_data' : install_package_data },
          scripts=['hg', 'hgmerge'])
finally:
    mercurial.version.forget_version()