[IMP] Rewrite the setup.py file to use the setuptools package
bzr revid: stephane@openerp.com-20100602124151-j07ji0u8ds16qfdy
This commit is contained in:
parent
d1cfcf4c5c
commit
4169795ad2
112
setup.py
112
setup.py
|
@ -32,8 +32,8 @@ import os
|
||||||
from os.path import join, isfile, basename
|
from os.path import join, isfile, basename
|
||||||
import glob
|
import glob
|
||||||
|
|
||||||
from distutils.core import setup, Command
|
from setuptools import setup, find_packages
|
||||||
from distutils.command.install import install
|
from setuptools.command.install import install
|
||||||
from distutils.sysconfig import get_python_lib
|
from distutils.sysconfig import get_python_lib
|
||||||
|
|
||||||
has_py2exe = False
|
has_py2exe = False
|
||||||
|
@ -51,54 +51,10 @@ if 'bdist_rpm' in sys.argv:
|
||||||
# get python short version
|
# get python short version
|
||||||
py_short_version = '%s.%s' % sys.version_info[:2]
|
py_short_version = '%s.%s' % sys.version_info[:2]
|
||||||
|
|
||||||
required_modules = [
|
|
||||||
('lxml', 'lxml module: pythonic libxml2 and libxslt bindings'),
|
|
||||||
('mako', 'Mako template engine'),
|
|
||||||
('dateutil', "Extensions to the standard datetime module"),
|
|
||||||
('psycopg2', 'PostgreSQL module'),
|
|
||||||
('pychart', 'pychart module'),
|
|
||||||
('pydot', 'pydot module'),
|
|
||||||
('pytz', 'Timezone handling library for Python'),
|
|
||||||
('reportlab', 'reportlab module'),
|
|
||||||
('yaml', 'YAML parser and emitter for Python'),
|
|
||||||
('pywebdav', 'PyWebDAV is a standards compliant WebDAV server and library written in Python'),
|
|
||||||
]
|
|
||||||
|
|
||||||
def check_modules():
|
|
||||||
errors = []
|
|
||||||
for modname, desc in required_modules:
|
|
||||||
try:
|
|
||||||
imp.find_module(modname)
|
|
||||||
except ImportError:
|
|
||||||
errors.append(
|
|
||||||
'Error: python module %s (%s) is required' % (modname, desc))
|
|
||||||
|
|
||||||
if errors:
|
|
||||||
print '\n'.join(errors)
|
|
||||||
sys.exit(1)
|
|
||||||
|
|
||||||
def find_addons():
|
def find_addons():
|
||||||
for root, _, names in os.walk(join('bin', 'addons')):
|
for root, _, names in os.walk(join('bin', 'addons'), followlinks=True):
|
||||||
if '__openerp__.py' in names or '__terp__.py' in names:
|
if '__openerp__.py' in names or '__terp__.py' in names:
|
||||||
yield basename(root), root
|
yield basename(root), root
|
||||||
#look for extra modules
|
|
||||||
try:
|
|
||||||
empath = os.getenv('EXTRA_MODULES_PATH', '../addons/')
|
|
||||||
for mname in open(join(empath, 'server_modules.list')):
|
|
||||||
mname = mname.strip()
|
|
||||||
if not mname:
|
|
||||||
continue
|
|
||||||
|
|
||||||
terp = join(empath, mname, '__openerp__.py')
|
|
||||||
if not os.path.exists(terp):
|
|
||||||
terp = join(empath, mname, '__terp__.py')
|
|
||||||
|
|
||||||
if os.path.exists(terp):
|
|
||||||
yield mname, join(empath, mname)
|
|
||||||
else:
|
|
||||||
print "Module %s specified, but no valid path." % mname
|
|
||||||
except:
|
|
||||||
pass
|
|
||||||
|
|
||||||
def data_files():
|
def data_files():
|
||||||
'''Build list of data files to be installed'''
|
'''Build list of data files to be installed'''
|
||||||
|
@ -145,17 +101,6 @@ def data_files():
|
||||||
|
|
||||||
return files
|
return files
|
||||||
|
|
||||||
if not os.getenv('NO_CHECK_MODULES') :
|
|
||||||
check_modules()
|
|
||||||
|
|
||||||
f = file('openerp-server','w')
|
|
||||||
f.write("""#!/bin/sh
|
|
||||||
echo "Error: the content of this file should have been replaced during "
|
|
||||||
echo "installation\n"
|
|
||||||
exit 1
|
|
||||||
""")
|
|
||||||
f.close()
|
|
||||||
|
|
||||||
def find_package_dirs():
|
def find_package_dirs():
|
||||||
package_dirs = {'openerp-server': 'bin'}
|
package_dirs = {'openerp-server': 'bin'}
|
||||||
for mod, path in find_addons():
|
for mod, path in find_addons():
|
||||||
|
@ -201,37 +146,34 @@ setup(name = name,
|
||||||
license = license,
|
license = license,
|
||||||
data_files = data_files(),
|
data_files = data_files(),
|
||||||
cmdclass = {
|
cmdclass = {
|
||||||
'install' : openerp_server_install,
|
'install' : openerp_server_install,
|
||||||
},
|
},
|
||||||
scripts = ['openerp-server'],
|
scripts = ['openerp-server'],
|
||||||
packages = ['openerp-server',
|
packages = [
|
||||||
'openerp-server.addons',
|
'.'.join(['openerp-server'] + package.split('.')[1:]) for package in find_packages()
|
||||||
'openerp-server.ir',
|
],
|
||||||
'openerp-server.osv',
|
|
||||||
'openerp-server.pychart',
|
|
||||||
'openerp-server.pychart.afm',
|
|
||||||
'openerp-server.report',
|
|
||||||
'openerp-server.report.printscreen',
|
|
||||||
'openerp-server.report.pyPdf',
|
|
||||||
'openerp-server.report.render',
|
|
||||||
'openerp-server.report.render.html2html',
|
|
||||||
'openerp-server.report.render.makohtml2html',
|
|
||||||
'openerp-server.report.render.odt2odt',
|
|
||||||
'openerp-server.report.render.rml2html',
|
|
||||||
'openerp-server.report.render.rml2pdf',
|
|
||||||
'openerp-server.report.render.rml2txt',
|
|
||||||
'openerp-server.service',
|
|
||||||
'openerp-server.tools',
|
|
||||||
'openerp-server.wizard',
|
|
||||||
'openerp-server.workflow'] + \
|
|
||||||
[('openerp-server.addons.' + name)
|
|
||||||
for name, _ in find_addons()],
|
|
||||||
package_dir = find_package_dirs(),
|
package_dir = find_package_dirs(),
|
||||||
console = [{"script": join("bin", "openerp-server.py"),
|
console = [
|
||||||
"icon_resources": [(1,join("pixmaps","openerp-icon.ico"))]
|
{
|
||||||
}],
|
"script": join("bin", "openerp-server.py"),
|
||||||
|
"icon_resources": [(1, join("pixmaps","openerp-icon.ico"))]
|
||||||
|
}
|
||||||
|
],
|
||||||
options = options,
|
options = options,
|
||||||
)
|
install_requires = ['lxml',
|
||||||
|
'mako',
|
||||||
|
'python-dateutil',
|
||||||
|
'psycopg2',
|
||||||
|
'pychart',
|
||||||
|
'pydot',
|
||||||
|
'pytz',
|
||||||
|
'reportlab',
|
||||||
|
'pyyaml',
|
||||||
|
'pywebdav'],
|
||||||
|
extras_require={
|
||||||
|
'SSL' : ['pyopenssl'],
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
if has_py2exe:
|
if has_py2exe:
|
||||||
# Sometime between pytz-2008a and pytz-2008i common_timezones started to
|
# Sometime between pytz-2008a and pytz-2008i common_timezones started to
|
||||||
|
|
Loading…
Reference in New Issue