#
##############################################################################
-# setup from TinERP
-# taken from straw http://www.nongnu.org/straw/index.html
-# taken from gnomolicious http://www.nongnu.org/gnomolicious/
-# adapted by Nicolas Évrard <nicoe@altern.org>
-#
-# doc/migrate is not included since about 6.1-dev
-# doc/tests is not included
-# python25-compat/*py should be in the openerp (and imported appropriately)
-
-import sys
-import os
+import glob, os, re, setuptools, sys
from os.path import join, isfile
-import glob
-
-from setuptools import setup, find_packages
-
-# Backports os.walk with followlinks from python 2.6.
-# Needed to add all addons files to data_files for Windows packaging.
-def walk_followlinks(top, topdown=True, onerror=None, followlinks=False):
- from os.path import join, isdir, islink
- from os import listdir, error
-
- try:
- names = listdir(top)
- except error, err:
- if onerror is not None:
- onerror(err)
- return
-
- dirs, nondirs = [], []
- for name in names:
- if isdir(join(top, name)):
- dirs.append(name)
- else:
- nondirs.append(name)
- if topdown:
- yield top, dirs, nondirs
- for name in dirs:
- path = join(top, name)
- if followlinks or not islink(path):
- for x in walk_followlinks(path, topdown, onerror, followlinks):
- yield x
- if not topdown:
- yield top, dirs, nondirs
-
-if sys.version_info < (2, 6):
- os.walk = walk_followlinks
+execfile(join('openerp', 'release.py'))
py2exe_keywords = {}
-py2exe_data_files = []
if os.name == 'nt':
import py2exe
py2exe_keywords['console'] = [
"pydot", "asyncore","asynchat", "reportlab", "vobject",
"HTMLParser", "select", "mako", "poplib",
"imaplib", "smtplib", "email", "yaml", "DAV",
- "uuid", "commands", "openerp",
+ "uuid", "commands", "openerp", "simplejson", "vatnumber"
],
"excludes" : ["Tkconstants","Tkinter","tcl"],
}
}
- # TODO is it still necessary now that we don't use the library.zip file?
- def data_files():
- '''For Windows, we consider all the addons as data files.
- It seems also that package_data below isn't honored by py2exe.'''
- files = []
- os.chdir('openerp')
- for (dp, dn, names) in os.walk('addons'):
- files.append((join('openerp',dp), map(lambda x: join('openerp', dp, x), names)))
- os.chdir('..')
- files.append(('openerp', [join('openerp', 'import_xml.rng'),]))
- return files
- py2exe_data_files = data_files()
-execfile(join('openerp', 'release.py'))
+# List all data files
+def data():
+ files = []
+ for root, dirnames, filenames in os.walk('openerp'):
+ for filename in filenames:
+ if not re.match(r'.*(\.pyc|\.pyo|\~)$',filename):
+ files.append(os.path.join(root, filename))
+ d = {}
+ for v in files:
+ k=os.path.dirname(v)
+ if k in d:
+ d[k].append(v)
+ else:
+ d[k]=[v]
+ r = d.items()
+ return r
+
+def gen_manifest():
+ file_list="\n".join(data())
+ open('MANIFEST','w').write(file_list)
-setup(name = name,
+setuptools.setup(
+ name = name,
version = version,
description = description,
long_description = long_desc,
author_email = author_email,
classifiers = filter(None, classifiers.split("\n")),
license = license,
- data_files = [
- (join('man', 'man1'), ['man/openerp-server.1']),
- (join('man', 'man5'), ['man/openerp_serverrc.5']),
- ('doc', filter(isfile, glob.glob('doc/*'))),
- ] + py2exe_data_files,
scripts = ['openerp-server'],
- packages = find_packages(),
- include_package_data = True,
- package_data = {
- '': ['*.yml', '*.xml', '*.po', '*.pot', '*.csv'],
- },
- dependency_links = ['http://download.gna.org/pychart/'],
+ data_files = data(),
+ packages = setuptools.find_packages(),
+ #include_package_data = True,
install_requires = [
# We require the same version as caldav for lxml.
'lxml==2.1.5',
# It is probably safe to move to PyChart 1.39 (the latest one).
# (Let setup.py choose the latest one, and we should check we can remove pychart from
# our tree.)
+ # http://download.gna.org/pychart/
'pychart',
'pydot',
'pytz',
'pyyaml',
'pywebdav',
'feedparser',
+ 'simplejson >= 2.0',
+ 'vatnumber', # required by base_vat module
],
extras_require = {
'SSL' : ['pyopenssl'],