[Subversion] / PEAK / setup.py  

View of /PEAK/setup.py

Parent Directory | Revision Log
Revision: 1755 - (download) (as text)
Fri Jun 11 04:06:01 2004 UTC (19 years, 10 months ago) by pje
File size: 4202 byte(s)
The 'persistence' package has been moved to 'peak.persistence' to avoid
conflicts with ZODB3 and the latest version of Zope 3.  It will eventually
be phased out, but for now this move is the simplest way to get it out of
the way.
#!/usr/bin/env python
"""Distutils setup file"""

import sys, os
from setuptools import setup, Extension, Feature, find_packages

# Metadata
PACKAGE_NAME = "PEAK"
PACKAGE_VERSION = "0.5a4"
HAPPYDOC_IGNORE = [
    '-i','datetime', '-i','old', '-i','tests', '-i','setup', '-i','examples',
    '-i', 'kjbuckets', '-i', 'ZConfig', '-i', 'csv',
]


scripts = ['scripts/peak']

packages = find_packages('src')

extensions = [
    Extension("kjbuckets", ["src/kjbuckets/kjbucketsmodule.c"]),
    Extension(
        "peak.binding._once", [
            "src/peak/binding/_once.pyx", "src/peak/binding/getdict.c"
        ]
    ),
    Extension("peak.util.buffer_gap", ["src/peak/util/buffer_gap.pyx"]),
    Extension("peak.util._Code", ["src/peak/util/_Code.pyx"]),
    Extension("protocols._speedups", ["src/protocols/_speedups.pyx"]),
    Extension(
        "peak.persistence._persistence", ["src/peak/persistence/persistence.c"]
    ),
    Extension('_csv', ['src/_csv.c']),
]







try:
    # Check if Zope X3 is installed; we use zope.component
    # because we don't install it ourselves; if we used something we
    # install, we'd get a false positive if PEAK was previously installed.
    import zope.component
    zope_installed = True

except ImportError:
    zope_installed = False


have_uuidgen = False

if os.name=='posix' and hasattr(os, 'uname'):

    un = os.uname()

    if un[0] == 'FreeBSD' and int(un[2].split('.')[0]) >= 5:
        have_uuidgen = True

    elif un[0] == 'NetBSD' and int(un[2].split('.')[0]) >= 2:
        have_uuidgen = True

    elif un[0] == 'NetBSD' and un[2].startswith('1.6Z'):
        # XXX for development versions before 2.x where uuidgen
        # is present -- this should be removed at some point
        try:
            if len(un[2]) > 4:
                if ord(un[2][4]) >= ord('I'):
                    if os.path.exists('/lib/libc.so.12'):
                        l = os.listdir('/lib')
                        l = [x for x in l if x.startswith('libc.so.12.')]
                        l = [int(x.split('.')[-1]) for x in l]
                        l.sort(); l.reverse()
                        if l[0] >= 111:
                            have_uuidgen = True
        except:
            pass



execfile('src/setup/common.py')

features = {
    'tests': Feature(
        "test modules", standard = True,
        remove = [p for p in packages if p.endswith('.tests')]
    ),
    'metamodels': Feature(
        "MOF/UML metamodels", standard = True, remove=['peak.metamodels']
    ),
    'legacy-support': Feature(
        "Python 2.2 support packages",
        standard = sys.version_info < (2,3), optional = False,
        remove = ['datetime','csv','_csv'],
    ),
    'fcgiapp': Feature(
        "FastCGI support", standard = (os.name=='posix'),
        ext_modules = [
            Extension("fcgiapp", [
                "src/fcgiapp/fcgiappmodule.c", "src/fcgiapp/fcgiapp.c"
            ])
        ]
    ),
    'ZConfig': Feature(
        "ZConfig 2.0", standard = not zope_installed, remove = ['ZConfig']
    ),
    'uuidgen': Feature(
        "UUID generation via BSD system libraries",
        available = have_uuidgen, standard = have_uuidgen,
        optional = have_uuidgen,
        ext_modules = [
            Extension("peak.util._uuidgen", ["src/peak/util/_uuidgen.c"]),
        ]
    ),
}






ALL_EXTS = [
    '*.ini', '*.html', '*.conf', '*.xml', '*.pwt', '*.dtd', '*.txt',
]

setup(
    name=PACKAGE_NAME,
    version=PACKAGE_VERSION,

    description="The Python Enterprise Application Kit",
    author="Phillip J. Eby",
    author_email="transwarp@eby-sarna.com",
    url="http://peak.telecommunity.com/",
    license="PSF or ZPL",
    platforms=['UNIX','Windows'],

    package_dir = {'':'src'},
    packages    = packages,
    cmdclass = SETUP_COMMANDS,

    package_data = {
        '': ALL_EXTS,
        'ZConfig': ['doc/schema.dtd'],
        'ZConfig.tests': ['input/*.xml', 'input/*.conf'],
        'ZConfig.tests.library.thing': ['extras/extras.xml'],
        'peak.metamodels': ['*.asdl']
    },

    features = features,
    test_suite = 'peak.tests.test_suite',
    ext_modules = extensions,
    scripts = scripts,
)










cvs-admin@eby-sarna.com

Powered by ViewCVS 1.0-dev

ViewCVS and CVS Help