##// END OF EJS Templates
fix a warning when py2exe is not used
fix a warning when py2exe is not used

File last commit:

r1508:b254243b default
r1508:b254243b default
Show More
setup.py
97 lines | 3.5 KiB | text/x-python | PythonLexer
mpm@selenic.com
Add back links from file revisions to changeset revisions...
r0 #!/usr/bin/env python
mpm@selenic.com
More whitespace cleanups...
r575 #
# This is the mercurial setup script.
mpm@selenic.com
Add back links from file revisions to changeset revisions...
r0 #
# './setup.py install', or
# './setup.py --help' for more options
mpm@selenic.com
Install the templates where they can be found by hgweb.py...
r157 import glob
Volker Kleinfeld
py2exe is not able to handle win32com.shell...
r1422 import sys
mpm@selenic.com
Add an O(m + nlog n) patching extension
r72 from distutils.core import setup, Extension
mpm@selenic.com
Install the templates where they can be found by hgweb.py...
r157 from distutils.command.install_data import install_data
Thomas Arendsen Hein
Support for 'hg --version'. setup.py stores version from hg repository....
r423 import mercurial.version
Volker.Kleinfeld@gmx.de
Support for the distutils extention 'py2exe' added....
r1283 # py2exe needs to be installed to work
try:
Bryan O'Sullivan
Clean up whitespace damage.
r1294 import py2exe
Volker.Kleinfeld@gmx.de
Support for the distutils extention 'py2exe' added....
r1283
Volker Kleinfeld
py2exe is not able to handle win32com.shell...
r1422 # Help py2exe to find win32com.shell
try:
import modulefinder
import win32com
for p in win32com.__path__[1:]: # Take the path to win32comext
modulefinder.AddPackagePath("win32com", p)
pn = "win32com.shell"
__import__(pn)
m = sys.modules[pn]
for p in m.__path__[1:]:
modulefinder.AddPackagePath(pn, p)
except ImportError:
pass
Volker.Kleinfeld@gmx.de
Support for the distutils extention 'py2exe' added....
r1283 # Due to the use of demandload py2exe is not finding the modules.
Bryan O'Sullivan
Clean up whitespace damage.
r1294 # packagescan.getmodules creates a list of modules included in
Volker.Kleinfeld@gmx.de
Support for the distutils extention 'py2exe' added....
r1283 # the mercurial package plus depdent modules.
Bryan O'Sullivan
Clean up whitespace damage.
r1294 import mercurial.packagescan
from py2exe.build_exe import py2exe as build_exe
Volker.Kleinfeld@gmx.de
Support for the distutils extention 'py2exe' added....
r1283
class py2exe_for_demandload(build_exe):
""" overwrites the py2exe command class for getting the build
directory and for setting the 'includes' option."""
def initialize_options(self):
self.build_lib = None
build_exe.initialize_options(self)
def finalize_options(self):
# Get the build directory, ie. where to search for modules.
self.set_undefined_options('build',
('build_lib', 'build_lib'))
# Sets the 'includes' option with the list of needed modules
if not self.includes:
self.includes = []
Volker Kleinfeld
Option -i broken in py2exe_for_demandload...
r1421 else:
self.includes = self.includes.split(',')
Bryan O'Sullivan
Clean up whitespace damage.
r1294 self.includes += mercurial.packagescan.getmodules(self.build_lib,
'mercurial')
Bryan O'Sullivan
Rename mercurial.ext to hgext.
r1300 self.includes += mercurial.packagescan.getmodules(self.build_lib,
'hgext')
Volker.Kleinfeld@gmx.de
Support for the distutils extention 'py2exe' added....
r1283 build_exe.finalize_options(self)
Bryan O'Sullivan
Fix Volker's modifications to setup.py for non-Windows systems.
r1284 except ImportError:
py2exe_for_demandload = None
Volker.Kleinfeld@gmx.de
Support for the distutils extention 'py2exe' added....
r1283
Thomas Arendsen Hein
Make it possible to specify a version number in setup.py....
r427 # specify version string, otherwise 'hg identify' will be used:
version = ''
mpm@selenic.com
Install the templates where they can be found by hgweb.py...
r157 class install_package_data(install_data):
def finalize_options(self):
self.set_undefined_options('install',
('install_lib', 'install_dir'))
install_data.finalize_options(self)
mpm@selenic.com
Add back links from file revisions to changeset revisions...
r0
Thomas Arendsen Hein
Support for 'hg --version'. setup.py stores version from hg repository....
r423 try:
Thomas Arendsen Hein
Make it possible to specify a version number in setup.py....
r427 mercurial.version.remember_version(version)
Bryan O'Sullivan
Fix Volker's modifications to setup.py for non-Windows systems.
r1284 cmdclass = {'install_data': install_package_data}
Benoit Boissinot
fix a warning when py2exe is not used
r1508 py2exe_opts = {}
Bryan O'Sullivan
Fix Volker's modifications to setup.py for non-Windows systems.
r1284 if py2exe_for_demandload is not None:
cmdclass['py2exe'] = py2exe_for_demandload
Benoit Boissinot
fix a warning when py2exe is not used
r1508 py2exe_opts['console'] = 'hg'
Thomas Arendsen Hein
Support for 'hg --version'. setup.py stores version from hg repository....
r423 setup(name='mercurial',
mpm@selenic.com
Pull from TAH...
r429 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',
Bryan O'Sullivan
Fix small thinko.
r1301 packages=['mercurial', 'hgext'],
mpm@selenic.com
Pull from TAH...
r429 ext_modules=[Extension('mercurial.mpatch', ['mercurial/mpatch.c']),
Extension('mercurial.bdiff', ['mercurial/bdiff.c'])],
data_files=[('mercurial/templates',
['templates/map'] +
glob.glob('templates/map-*') +
mpm@selenic.com
More whitespace cleanups...
r575 glob.glob('templates/*.tmpl'))],
Bryan O'Sullivan
Fix Volker's modifications to setup.py for non-Windows systems.
r1284 cmdclass=cmdclass,
Volker.Kleinfeld@gmx.de
Support for the distutils extention 'py2exe' added....
r1283 scripts=['hg', 'hgmerge'],
Benoit Boissinot
fix a warning when py2exe is not used
r1508 **py2exe_opts)
Thomas Arendsen Hein
Support for 'hg --version'. setup.py stores version from hg repository....
r423 finally:
mercurial.version.forget_version()