setup.py :  » Web-Frameworks » Zope » Zope-2.6.0 » Python Open Source

Home
Python Open Source
1.3.1.2 Python
2.Ajax
3.Aspect Oriented
4.Blog
5.Build
6.Business Application
7.Chart Report
8.Content Management Systems
9.Cryptographic
10.Database
11.Development
12.Editor
13.Email
14.ERP
15.Game 2D 3D
16.GIS
17.GUI
18.IDE
19.Installer
20.IRC
21.Issue Tracker
22.Language Interface
23.Log
24.Math
25.Media Sound Audio
26.Mobile
27.Network
28.Parser
29.PDF
30.Project Management
31.RSS
32.Search
33.Security
34.Template Engines
35.Test
36.UML
37.USB Serial
38.Web Frameworks
39.Web Server
40.Web Services
41.Web Unit
42.Wiki
43.Windows
44.XML
Python Open Source » Web Frameworks » Zope 
Zope » Zope 2.6.0 » setup.py
#! /usr/bin/env python
##############################################################################
#
# Copyright (c) 2002 Zope Corporation and Contributors. All Rights Reserved.
#
# This software is subject to the provisions of the Zope Public License,
# Version 2.0 (ZPL).  A copy of the ZPL should accompany this distribution.
# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
# FOR A PARTICULAR PURPOSE
#
##############################################################################

"""
Distutils setup for Zope

  In-place building

    This builds extension modules in-place, much like build_extensions.py
    does.  Use 'setup.py' like this::

      python setup.py build_ext -i

  Installation

    This builds extension modules, compiles python modules, and installs
    everything needed to support Zope instances in the directory of
    your choosing.  For example, to use '/usr/local/lib/zope'::

      python setup.py install \
        --home=/usr/local/lib/zope \
        --install-platlib=/usr/local/lib/zope \
        --install-purelib=/usr/local/lib/zope

    Note that with this method, all packages and scripts (including
    ZServer and z2.py) go in the same directory as Zope modules, which
    are distributed in lib/python.  You will need to set both ZOPE_HOME
    and SOFTWARE_HOME to point to your destination directory in order
    for Zope to work in this configuration.
"""

import os
import sys

from distutils.core import setup
from distutils.extension import Extension

# This function collects setup information for one massive distutils
# run to be done at the end of the script.  If you're making a setup.py
# to use modules from Zope separately, you should be able to cut-and-paste
# the individual setup calls out into your own setup.py and it should
# Just Work(tm).

setup_info = {}
def setup(name=None, author=None, cmdclass=None, **kwargs):
    setup_info = sys.modules[__name__].setup_info
    for keyword in kwargs.keys():
        if not setup_info.has_key(keyword):
            setup_info[keyword] = []
        setup_info[keyword] += kwargs[keyword]

# Override install_data to install into module directories, and to support
# globbing on data_files.

from types import StringType
from distutils.command.install import install
from distutils.command.install_data import install_data
from distutils.errors import DistutilsFileError,DistutilsOptionError
from distutils.util import convert_path
from glob import glob

class install_data(install_data):
    def finalize_options(self):
        self.set_undefined_options('install',
                                   ('install_purelib', 'install_dir'),
                                   ('root', 'root'),
                                   ('force', 'force'),
                                  )

    def run(self):
        self.mkpath(self.install_dir)
        for f in self.data_files:
            if type(f) == StringType:
                # it's a simple file, so copy it
                f = convert_path(f)
                gl = glob(f)
                if len(gl) == 0:
                    raise DistutilsFileError, \
                          "can't copy '%s': glob failed" % f
                for g in gl:
                    if os.path.isfile(g):
                        if self.warn_dir:
                            self.warn("setup script did not provide a "
                                      "directory for '%s' -- installing "
                                      "right in '%s'" %
                                      (g, self.install_dir))
                        (out, _) = self.copy_file(g, self.install_dir)
                        self.outfiles.append(out)
            else:
                # it's a tuple with path to install to and a list of files
                dir = convert_path(f[0])
                if not os.path.isabs(dir):
                    dir = os.path.join(self.install_dir, dir)
                elif self.root:
                    dir = change_root(self.root, dir)
                self.mkpath(dir)
                for data in f[1]:
                    data = convert_path(data)
                    gl = glob(data)
                    if len(gl) == 0:
                        raise DistutilsFileError, \
                              "can't copy '%s': glob failed" % data
                    for g in gl:
                        if os.path.isfile(g):
                            (out, _) = self.copy_file(g, dir)
                            self.outfiles.append(out)

class install(install):
    def finalize_unix (self):
        if self.install_base is not None or self.install_platbase is not None:
            if ((self.install_lib is None and
                 self.install_purelib is None and
                 self.install_platlib is None) or
                self.install_headers is None or
                self.install_scripts is None or
                self.install_data is None):
                raise DistutilsOptionError, \
                      "install-base or install-platbase supplied, but " + \
                      "installation scheme is incomplete"
            return

        if self.home is not None:
            self.install_base = self.install_platbase = self.home
            self.select_scheme("unix_home")
        else:
            if self.prefix is None:
                if self.exec_prefix is not None:
                    raise DistutilsOptionError, \
                          "must not supply exec-prefix without prefix"
                raise DistutilsOptionError, "must supply installation path"
            else:
                if self.exec_prefix is None:
                    self.exec_prefix = self.prefix

            self.install_base = self.prefix
            self.install_platbase = self.exec_prefix
            self.select_scheme("unix_prefix")

AUTHOR = 'Zope Corporation and Contributors'
ZOPE_ROOT = os.path.abspath(os.getcwd())
EXTENSIONCLASS_ROOT = os.path.join(ZOPE_ROOT, 'lib', 'Components', 'ExtensionClass')
EXTENSIONCLASS_SRCDIR = os.path.join(EXTENSIONCLASS_ROOT, 'src')
PACKAGES_ROOT = os.path.join(ZOPE_ROOT, 'lib', 'python')
EXTENSIONCLASS_INCLUDEDIRS = [EXTENSIONCLASS_SRCDIR]

# Most modules are in lib/python in the source distribution
os.chdir(PACKAGES_ROOT)

# AccessControl
setup(
    name='AccessControl',
    author=AUTHOR,

    packages=['AccessControl', 'AccessControl.securitySuite',
              'AccessControl.tests', 'AccessControl.tests.mixed_module',
              'AccessControl.tests.mixed_module.submodule',
              'AccessControl.tests.private_module',
              'AccessControl.tests.private_module.submodule',
              'AccessControl.tests.public_module',
              'AccessControl.tests.public_module.submodule'],

    data_files=[['AccessControl', ['AccessControl/*.txt']],
                ['AccessControl/dtml', ['AccessControl/dtml/*']],
                ['AccessControl/securitySuite',
                    ['AccessControl/securitySuite/README']],
                ['AccessControl/www', ['AccessControl/www/*']]],
    cmdclass={'install_data': install_data},

    ext_modules=[
        Extension(name='AccessControl.cAccessControl',
                  include_dirs=EXTENSIONCLASS_INCLUDEDIRS,
                  sources=['AccessControl/cAccessControl.c'])]
)

# App
setup(
    name='App',
    author=AUTHOR,

    packages=['App'],

    data_files=[['App/dtml', ['App/dtml/*']],
                ['App/www', ['App/www/*']]],
    cmdclass={'install_data': install_data}
)

# BTrees
setup(
    name='BTrees',
    author=AUTHOR,

    packages=['BTrees', 'BTrees.tests'],

    ext_modules=[
        Extension(name='BTrees._OOBTree',
                  include_dirs=EXTENSIONCLASS_INCLUDEDIRS + ['ZODB'],
                  sources=['BTrees/_OOBTree.c']),
        Extension(name='BTrees._OIBTree',
                  include_dirs=EXTENSIONCLASS_INCLUDEDIRS + ['ZODB'],
                  sources=['BTrees/_OIBTree.c']),
        Extension(name='BTrees._IIBTree',
                  include_dirs=EXTENSIONCLASS_INCLUDEDIRS + ['ZODB'],
                  define_macros=[('EXCLUDE_INTSET_SUPPORT', None)],
                  sources=['BTrees/_IIBTree.c']),
        Extension(name='BTrees._IOBTree',
                  include_dirs=EXTENSIONCLASS_INCLUDEDIRS + ['ZODB'],
                  define_macros=[('EXCLUDE_INTSET_SUPPORT', None)],
                  sources=['BTrees/_IOBTree.c']),
        Extension(name='BTrees._fsBTree',
                  include_dirs=EXTENSIONCLASS_INCLUDEDIRS + ['ZODB'],
                  define_macros=[('EXCLUDE_INTSET_SUPPORT', None)],
                  sources=['BTrees/_fsBTree.c'])],

    data_files=[['BTrees', ['BTrees/Maintainer.txt']]],
    cmdclass={'install_data': install_data}
)

# BTrees compatibility package
setup(
    name='BTree',
    author=AUTHOR,

    #headers=['../Components/BTree/intSet.h'],
    ext_modules=[
        Extension(name='BTree',
                  include_dirs=EXTENSIONCLASS_INCLUDEDIRS + ['ZODB'],
                  sources=['../Components/BTree/BTree.c']),
        Extension(name='IIBTree',
                  include_dirs=EXTENSIONCLASS_INCLUDEDIRS + ['ZODB'],
                  sources=['../Components/BTree/IIBTree.c']),
        Extension(name='IOBTree',
                  include_dirs=EXTENSIONCLASS_INCLUDEDIRS + ['ZODB'],
                  sources=['../Components/BTree/IOBTree.c']),
        Extension(name='OIBTree',
                  include_dirs=EXTENSIONCLASS_INCLUDEDIRS + ['ZODB'],
                  sources=['../Components/BTree/OIBTree.c']),
        Extension(name='intSet',
                  include_dirs=EXTENSIONCLASS_INCLUDEDIRS + ['ZODB'],
                  sources=['../Components/BTree/intSet.c'])]
)

# DateTime
setup(
    name='DateTime',
    author=AUTHOR,

    packages=['DateTime', 'DateTime.tests'],

    data_files=[['DateTime', ['DateTime/DateTime.html']],
                ['DateTime/tests', ['DateTime/tests/julian_testdata.txt.gz']]],
    cmdclass={'install_data': install_data}
)

# DocumentTemplate
setup(
    name='DocumentTemplate',
    author=AUTHOR,

    packages=['DocumentTemplate', 'DocumentTemplate.sequence',
              'DocumentTemplate.sequence.tests', 'DocumentTemplate.tests'],

    data_files=[['DocumentTemplate', ['DocumentTemplate/Let.stx']],
                ['DocumentTemplate/tests',
                    ['DocumentTemplate/tests/dealers.*']]],
    cmdclass={'install_data': install_data},

    ext_modules=[
        Extension(name='DocumentTemplate.cDocumentTemplate',
                  include_dirs=EXTENSIONCLASS_INCLUDEDIRS,
                  sources=['DocumentTemplate/cDocumentTemplate.c'])]
)

# ExtensionClass
setup(
    name='ExtensionClass',
    author=AUTHOR,

    ext_modules=[
        Extension(name='ExtensionClass',
                  include_dirs=EXTENSIONCLASS_INCLUDEDIRS,
                  sources=['../Components/ExtensionClass/src/ExtensionClass.c']),
        Extension(name='Acquisition',
                  include_dirs=EXTENSIONCLASS_INCLUDEDIRS,
                  sources=['../Components/ExtensionClass/src/Acquisition.c']),
        Extension(name='MethodObject',
                  include_dirs=EXTENSIONCLASS_INCLUDEDIRS,
                  sources=['../Components/ExtensionClass/src/MethodObject.c']),
        Extension(name='MultiMapping',
                  include_dirs=EXTENSIONCLASS_INCLUDEDIRS,
                  sources=['../Components/ExtensionClass/src/MultiMapping.c']),
        Extension(name='ThreadLock',
                  include_dirs=EXTENSIONCLASS_INCLUDEDIRS,
                  sources=['../Components/ExtensionClass/src/ThreadLock.c']),
        Extension(name='Missing',
                  include_dirs=EXTENSIONCLASS_INCLUDEDIRS,
                  sources=['../Components/ExtensionClass/src/Missing.c']),
        Extension(name='Sync',
                  include_dirs=EXTENSIONCLASS_INCLUDEDIRS,
                  sources=['../Components/ExtensionClass/src/Sync.c']),
        Extension(name='Record',
                  include_dirs=EXTENSIONCLASS_INCLUDEDIRS,
                  sources=['../Components/ExtensionClass/src/Record.c']),
        Extension(name='ComputedAttribute',
                  include_dirs=EXTENSIONCLASS_INCLUDEDIRS,
                  sources=['../Components/ExtensionClass/src/ComputedAttribute.c'])]
)

# HelpSys
setup(
    name='HelpSys',
    author=AUTHOR,

    packages=['HelpSys'],

    data_files=[['HelpSys/dtml', ['HelpSys/dtml/*']],
                ['HelpSys/images', ['HelpSys/images/*']]],
    cmdclass={'install_data': install_data}
)

# Interface
setup(
    name='Interface',
    author=AUTHOR,

    packages=['Interface', 'Interface.tests',
              'Interface.Common', 'Interface.Common.tests'],

    cmdclass={'install_data': install_data}
)

# OFS
setup(
    name='OFS',
    author=AUTHOR,

    packages=['OFS', 'OFS.tests'],

    data_files=[['OFS/dtml', ['OFS/dtml/*']],
                ['OFS/standard', ['OFS/standard/*']],
                ['OFS/www', ['OFS/www/*']]],
    cmdclass={'install_data': install_data}
)

# RestrictedPython
setup(
    name='RestrictedPython',
    author=AUTHOR,

    packages=['RestrictedPython', 'RestrictedPython.compiler_2_1',
              'RestrictedPython.tests'],

    data_files=[['RestrictedPython/compiler_2_1',
                    ['RestrictedPython/compiler_2_1/ast.txt']]],
    cmdclass={'install_data': install_data}
)

# SearchIndex
setup(
    name='SearchIndex',
    author=AUTHOR,

    packages=['SearchIndex', 'SearchIndex.tests'],

    data_files=[['SearchIndex', ['SearchIndex/*.txt']]],
    cmdclass={'install_data': install_data},

    ext_modules=[
        Extension(name='SearchIndex.Splitter',
                  sources=['SearchIndex/Splitter.c'])]
)

# Shared.DC bases
setup(
    name='Shared.DC',
    author=AUTHOR,

    packages=['Shared', 'Shared.DC']
)

# Scripts
setup(
    name='Scripts',
    author=AUTHOR,

    packages=['Shared.DC.Scripts'],

    data_files=[['Shared/DC/Scripts/dtml', ['Shared/DC/Scripts/dtml/*']]],
    cmdclass={'install_data': install_data}
)

# StructuredText
setup(
    name='StructuredText',
    author=AUTHOR,

    packages=['StructuredText', 'StructuredText.regressions',
              'StructuredText.tests'],

    data_files=[['StructuredText', ['StructuredText/*.txt']],
                ['StructuredText/regressions',
                    ['StructuredText/regressions/*.ref',
                     'StructuredText/regressions/*.stx']]],
    cmdclass={'install_data': install_data}
)

# Signals
setup(
    name='Signals',
    author=AUTHOR,

    packages=['Signals'],
)

# ZRDB
setup(
    name='ZRDB',
    author=AUTHOR,

    packages=['Shared.DC.ZRDB'],

    data_files=[['Shared/DC/ZRDB/dtml', ['Shared/DC/ZRDB/dtml/*']],
                ['Shared/DC/ZRDB/www', ['Shared/DC/ZRDB/www/*']]],
    cmdclass={'install_data': install_data}
)

# dcpyexpat
PYEXPAT_DIR=os.path.join(PACKAGES_ROOT, 'Shared', 'DC', 'xml', 'pyexpat')
DCPYEXPAT_INCLUDEDIRS=[os.path.join(PYEXPAT_DIR, 'expat', 'xmlparse'),
                       os.path.join(PYEXPAT_DIR, 'expat', 'xmltok')]

setup(
    name='dcpyexpat',
    author=AUTHOR,

    packages=['Shared.DC.xml', 'Shared.DC.xml.pyexpat'],

    data_files=[['Shared/DC/xml/pyexpat', ['Shared/DC/xml/pyexpat/README']]],
    cmdclass={'install_data': install_data},

    ext_modules=[
        Extension(name='Shared.DC.xml.pyexpat.dcpyexpat',
                  include_dirs=DCPYEXPAT_INCLUDEDIRS,
                  define_macros=[('XML_NS', None)],
                  sources=[PYEXPAT_DIR + '/expat/xmlparse/xmlparse.c',
                           PYEXPAT_DIR + '/expat/xmlparse/hashtable.c',
                           PYEXPAT_DIR + '/expat/xmltok/xmlrole.c',
                           PYEXPAT_DIR + '/expat/xmltok/xmltok.c',
                           PYEXPAT_DIR + '/dcpyexpat.c'])]
)

# TAL
setup(
    name='TAL',
    author=AUTHOR,

    packages=['TAL', 'TAL.tests'],

    data_files=[['TAL', ['TAL/*.txt']],
                ['TAL/benchmark', ['TAL/benchmark/*']],
                ['TAL/tests/input', ['TAL/tests/input/*']],
                ['TAL/tests/output', ['TAL/tests/output/*']]],
    cmdclass={'install_data': install_data}
)

# Testing
setup(
    name='Testing',
    author=AUTHOR,

    packages=['Testing'],

    data_files=[['Testing', ['Testing/README.txt']],
                ['Testing/var', ['Testing/var/README.txt']]],
    cmdclass={'install_data': install_data}
)

# ThreadedAsync
setup(
    name='ThreadedAsync',
    author=AUTHOR,

    packages=['ThreadedAsync']
)

# TreeDisplay
setup(
    name='TreeDisplay',
    author=AUTHOR,

    packages=['TreeDisplay'],

    data_files=[['TreeDisplay/www', ['TreeDisplay/www/*']]],
    cmdclass={'install_data': install_data}
)

# ZClasses
setup(
    name='ZClasses',
    author=AUTHOR,

    packages=['ZClasses'],

    data_files=[['ZClasses', ['ZClasses/*.gif']],
                ['ZClasses/dtml', ['ZClasses/dtml/*']]],
    cmdclass={'install_data': install_data}
)

# ZLogger
setup(
    name='ZLogger',
    author=AUTHOR,

    packages=['ZLogger']
)

# ZODB
setup(
    name='ZODB',
    author=AUTHOR,

    packages=['Persistence', 'ZODB', 'ZODB.tests'],

    ext_modules=[
        Extension(name='ZODB.cPersistence',
                  include_dirs=EXTENSIONCLASS_INCLUDEDIRS,
                  sources=['ZODB/cPersistence.c']),
        Extension(name='ZODB.cPickleCache',
                  include_dirs=EXTENSIONCLASS_INCLUDEDIRS,
                  sources=['ZODB/cPickleCache.c']),
        Extension(name='ZODB.TimeStamp',
                  include_dirs=EXTENSIONCLASS_INCLUDEDIRS,
                  define_macros=[('USE_EXTENSION_CLASS', 1)],
                  sources=['ZODB/TimeStamp.c']),
        Extension(name='ZODB.coptimizations',
                  include_dirs=EXTENSIONCLASS_INCLUDEDIRS,
                  sources=['ZODB/coptimizations.c']),
        Extension(name='ZODB.winlock',
                  include_dirs=EXTENSIONCLASS_INCLUDEDIRS,
                  sources=['ZODB/winlock.c'])],
)

# ZPublisher
setup(
    name='ZPublisher',
    author=AUTHOR,

    packages=['ZPublisher', 'ZPublisher.tests'],
    cmdclass={'install_data': install_data}
)

# ZTUtils
setup(
    name='ZTUtils',
    author=AUTHOR,

    packages=['ZTUtils', 'ZTUtils.tests'],

    data_files=[['ZTUtils', ['ZTUtils/*.txt']]],
    cmdclass={'install_data': install_data}
)

# Zope
setup(
    name='Zope',
    author=AUTHOR,

    packages=['Zope']
)

# webdav
setup(
    name='webdav',
    author=AUTHOR,

    packages=['webdav'],

    data_files=[['webdav/dtml', ['webdav/dtml/*']],
                ['webdav/www', ['webdav/www/*']]],
    cmdclass={'install_data': install_data}
)

# zExceptions
setup(
    name='zExceptions',
    author=AUTHOR,

    packages=['zExceptions', 'zExceptions.tests']
)

# zLOG
setup(
    name='zLOG',
    author=AUTHOR,

    packages=['zLOG', 'zLOG.tests']
)

# zdaemon
setup(
    name='zdaemon',
    author=AUTHOR,

    packages=['zdaemon', 'zdaemon.tests']
)


# initgroups
setup(
    name='initgroups',
    author=AUTHOR,

    ext_modules=[
        Extension(name='initgroups',
                  sources=['../Components/initgroups/initgroups.c'])]
)

# Other top-level packages (XXX should these be broken out at all?)
setup(
    name='Top-level',
    author=AUTHOR,

    py_modules=['Globals', 'ImageFile', 'LOG', 'Main', 'dcdb', 'tempfile',
                'ts_regex', 'xmlrpclib', 'SignalHandler']
)

# Products base directory
setup(
    name='Products',
    author=AUTHOR,

    packages=['Products']
)

# ExternalMethod product
setup(
    name='ExternalMethod',
    author=AUTHOR,

    packages=['Products.ExternalMethod', 'Products.ExternalMethod.tests',
              'Products.ExternalMethod.tests.Extensions'],

    data_files=[['Products/ExternalMethod',
                    ['Products/ExternalMethod/*.gif',
                     'Products/ExternalMethod/*.txt']],
                ['Products/ExternalMethod/dtml',
                    ['Products/ExternalMethod/dtml/*']],
                ['Products/ExternalMethod/help',
                    ['Products/ExternalMethod/help/*']],
                ['Products/ExternalMethod/www',
                    ['Products/ExternalMethod/www/*']]],
    cmdclass={'install_data': install_data}
)

# MIMETools product
setup(
    name='MIMETools',
    author=AUTHOR,

    packages=['Products.MIMETools'],

    data_files=[['Products/MIMETools', ['Products/MIMETools/*.txt']]],
    cmdclass={'install_data': install_data}
)

# MailHost product
setup(
    name='MailHost',
    author=AUTHOR,

    packages=['Products.MailHost', 'Products.MailHost.help',
              'Products.MailHost.tests'],

    data_files=[['Products/MailHost', ['Products/MailHost/*.txt']],
                ['Products/MailHost/dtml', ['Products/MailHost/dtml/*']],
                ['Products/MailHost/help', ['Products/MailHost/help/*.stx']],
                ['Products/MailHost/www', ['Products/MailHost/www/*']]],
    cmdclass={'install_data': install_data}
)

# OFSP product
setup(
    name='OFSP',
    author=AUTHOR,

    packages=['Products.OFSP', 'Products.OFSP.help'],

    data_files=[['Products/OFSP', ['Products/OFSP/*.txt']],
                ['Products/OFSP/dtml', ['Products/OFSP/dtml/*']],
                ['Products/OFSP/help', ['Products/OFSP/help/*.stx']],
                ['Products/OFSP/images', ['Products/OFSP/images/*']]],
    cmdclass={'install_data': install_data}
)

# PageTemplates product
setup(
    name='PageTemplates',
    author=AUTHOR,

    packages=['Products.PageTemplates', 'Products.PageTemplates.help',
              'Products.PageTemplates.tests'],

    data_files=[['Products/PageTemplates', ['Products/PageTemplates/*.txt']],
                ['Products/PageTemplates/examples',
                    ['Products/PageTemplates/examples/*']],
                ['Products/PageTemplates/help',
                    ['Products/PageTemplates/help/*.stx']],
                ['Products/PageTemplates/tests/input',
                    ['Products/PageTemplates/tests/input/*']],
                ['Products/PageTemplates/tests/output',
                    ['Products/PageTemplates/tests/output/*']],
                ['Products/PageTemplates/www',
                    ['Products/PageTemplates/www/*']]],
    cmdclass={'install_data': install_data}
)

# PluginIndexes product
setup(
    name='PluginIndexes',
    author=AUTHOR,

    packages=['Products.PluginIndexes',
              'Products.PluginIndexes.DateIndex',
              'Products.PluginIndexes.DateIndex.tests',
              'Products.PluginIndexes.DateRangeIndex',
              'Products.PluginIndexes.DateRangeIndex.tests',
              'Products.PluginIndexes.FieldIndex',
              'Products.PluginIndexes.FieldIndex.tests',
              'Products.PluginIndexes.KeywordIndex',
              'Products.PluginIndexes.KeywordIndex.tests',
              'Products.PluginIndexes.PathIndex',
              'Products.PluginIndexes.PathIndex.tests',
              'Products.PluginIndexes.TextIndex',
              'Products.PluginIndexes.TextIndex.Splitter',
              'Products.PluginIndexes.TextIndex.Splitter.ISO_8859_1_Splitter',
              'Products.PluginIndexes.TextIndex.Splitter.UnicodeSplitter',
              'Products.PluginIndexes.TextIndex.Splitter.UnicodeSplitter.tests',
              'Products.PluginIndexes.TextIndex.Splitter.ZopeSplitter',
              'Products.PluginIndexes.TextIndex.tests',
              'Products.PluginIndexes.TopicIndex',
              'Products.PluginIndexes.TopicIndex.tests',
              'Products.PluginIndexes.common'],

    data_files=[['Products/PluginIndexes', ['Products/PluginIndexes/*.txt']],
                ['Products/PluginIndexes/DateIndex',
                    ['Products/PluginIndexes/DateIndex/README.txt']],
                ['Products/PluginIndexes/DateIndex/dtml',
                    ['Products/PluginIndexes/DateIndex/dtml/*']],
                ['Products/PluginIndexes/DateRangeIndex',
                    ['Products/PluginIndexes/DateRangeIndex/README.txt']],
                ['Products/PluginIndexes/DateRangeIndex/dtml',
                    ['Products/PluginIndexes/DateRangeIndex/dtml/*']],
                ['Products/PluginIndexes/FieldIndex/dtml',
                    ['Products/PluginIndexes/FieldIndex/dtml/*']],
                ['Products/PluginIndexes/FieldIndex/help',
                    ['Products/PluginIndexes/FieldIndex/help/*']],
                ['Products/PluginIndexes/KeywordIndex/dtml',
                    ['Products/PluginIndexes/KeywordIndex/dtml/*']],
                ['Products/PluginIndexes/KeywordIndex/help',
                    ['Products/PluginIndexes/KeywordIndex/help/*']],
                ['Products/PluginIndexes/PathIndex',
                    ['Products/PluginIndexes/PathIndex/*.txt']],
                ['Products/PluginIndexes/PathIndex/dtml',
                    ['Products/PluginIndexes/PathIndex/dtml/*']],
                ['Products/PluginIndexes/PathIndex/help',
                    ['Products/PluginIndexes/PathIndex/help/*']],
                ['Products/PluginIndexes/TextIndex/dtml',
                    ['Products/PluginIndexes/TextIndex/dtml/*']],
                ['Products/PluginIndexes/TextIndex/help',
                    ['Products/PluginIndexes/TextIndex/help/*']],
                ['Products/PluginIndexes/TopicIndex',
                    ['Products/PluginIndexes/TopicIndex/*.txt']],
                ['Products/PluginIndexes/TopicIndex/dtml',
                    ['Products/PluginIndexes/TopicIndex/dtml/*']],
                ['Products/PluginIndexes/TopicIndex/help',
                    ['Products/PluginIndexes/TopicIndex/help/*']],
                ['Products/PluginIndexes/help',
                    ['Products/PluginIndexes/help/*']],
                ['Products/PluginIndexes/www',
                    ['Products/PluginIndexes/www/*']]],
    cmdclass={'install_data': install_data},

    ext_modules=[
        Extension(name='Products.PluginIndexes.TextIndex.Splitter.ZopeSplitter.ZopeSplitter',
                  sources=['Products/PluginIndexes/TextIndex/Splitter/ZopeSplitter/src/ZopeSplitter.c']),
        Extension(name='Products.PluginIndexes.TextIndex.Splitter.ISO_8859_1_Splitter.ISO_8859_1_Splitter',
                  sources=['Products/PluginIndexes/TextIndex/Splitter/ISO_8859_1_Splitter/src/ISO_8859_1_Splitter.c']),
        Extension(name='Products.PluginIndexes.TextIndex.Splitter.UnicodeSplitter.UnicodeSplitter',
                  sources=['Products/PluginIndexes/TextIndex/Splitter/UnicodeSplitter/src/UnicodeSplitter.c'])]
)

# PythonScripts product
setup(
    name='PythonScripts',
    author=AUTHOR,

    packages=['Products.PythonScripts', 'Products.PythonScripts.Extensions',
              'Products.PythonScripts.help', 'Products.PythonScripts.tests'],

    data_files=[['Products/PythonScripts', ['Products/PythonScripts/*.txt']],
                ['Products/PythonScripts/help',
                    ['Products/PythonScripts/help/*.stx']],
                ['Products/PythonScripts/tests/tscripts',
                    ['Products/PythonScripts/tests/tscripts/*']],
                ['Products/PythonScripts/www',
                    ['Products/PythonScripts/www/*']]],
    cmdclass={'install_data': install_data}
)

# Sessions product
setup(
    name='Sessions',
    author=AUTHOR,

    packages=['Products.Sessions', 'Products.Sessions.help',
              'Products.Sessions.tests', 'Products.Sessions.stresstests'],

    data_files=[['Products/Sessions/help', ['Products/Sessions/help/*.stx']],
                ['Products/Sessions/dtml', ['Products/Sessions/dtml/*']],
                ['Products/Sessions/www', ['Products/Sessions/www/*']]],
    cmdclass={'install_data': install_data}
)

# SiteAccess product
setup(
    name='SiteAccess',
    author=AUTHOR,

    packages=['Products.SiteAccess', 'Products.SiteAccess.Extensions'],

    data_files=[['Products/SiteAccess', ['Products/SiteAccess/*.txt']],
                ['Products/SiteAccess/doc', ['Products/SiteAccess/doc/*']],
                ['Products/SiteAccess/help', ['Products/SiteAccess/help/*']],
                ['Products/SiteAccess/www', ['Products/SiteAccess/www/*']]],
    cmdclass={'install_data': install_data}
)

# SiteErrorLog product
setup(
    name='SiteErrorLog',
    author=AUTHOR,

    packages=['Products.SiteErrorLog'],

    data_files=[['Products/SiteErrorLog/www',
        ['Products/SiteErrorLog/www/*']]],
    cmdclass={'install_data': install_data}
)

# StandardCacheManagers product
setup(
    name='StandardCacheManagers',
    author=AUTHOR,

    packages=['Products.StandardCacheManagers'],

    data_files=[['Products/StandardCacheManagers',
                    ['Products/StandardCacheManagers/*.txt',
                     'Products/StandardCacheManagers/*.gif']],
                ['Products/StandardCacheManagers/dtml',
                    ['Products/StandardCacheManagers/dtml/*']],
                ['Products/StandardCacheManagers/help',
                    ['Products/StandardCacheManagers/help/*']]],
    cmdclass={'install_data': install_data}
)

# TemporaryFolder product
setup(
    name='TemporaryFolder',
    author=AUTHOR,

    packages=['Products.TemporaryFolder', 'Products.TemporaryFolder.tests'],

    data_files=[['Products/TemporaryFolder/dtml',
                    ['Products/TemporaryFolder/dtml/*']],
                ['Products/TemporaryFolder/help',
                    ['Products/TemporaryFolder/help/*']],
                ['Products/TemporaryFolder/www',
                    ['Products/TemporaryFolder/www/*']]],
    cmdclass={'install_data': install_data}
)

# Transience product
setup(
    name='Transience',
    author=AUTHOR,

    packages=['Products.Transience', 'Products.Transience.help',
              'Products.Transience.tests'],

    data_files=[['Products/Transience', ['Products/Transience/*.stx']],
                ['Products/Transience/dtml', ['Products/Transience/dtml/*']],
                ['Products/Transience/help',
                    ['Products/Transience/help/*.stx']],
                ['Products/Transience/www', ['Products/Transience/www/*']]],
    cmdclass={'install_data': install_data}
)

# ZCatalog product
setup(
    name='ZCatalog',
    author=AUTHOR,

    packages=['Products.ZCatalog', 'Products.ZCatalog.help',
              'Products.ZCatalog.regressiontests', 'Products.ZCatalog.tests'],

    data_files=[['Products/ZCatalog', ['Products/ZCatalog/*.gif',
                                       'Products/ZCatalog/*.txt']],
                ['Products/ZCatalog/dtml', ['Products/ZCatalog/dtml/*']],
                ['Products/ZCatalog/help', ['Products/ZCatalog/help/*.stx']],
                ['Products/ZCatalog/www', ['Products/ZCatalog/www/*']]],
    cmdclass={'install_data': install_data}
)

# ZCTextIndex product
setup(
    name='ZCTextIndex',
    author=AUTHOR,

    ext_modules=[
        Extension(name='Products.ZCTextIndex.stopper',
                  sources=['Products/ZCTextIndex/stopper.c']),
        Extension(name='Products.ZCTextIndex.okascore',
                  sources=['Products/ZCTextIndex/okascore.c'])],

    packages=['Products.ZCTextIndex', 'Products.ZCTextIndex.tests'],

    data_files=[['Products/ZCTextIndex', ['Products/ZCTextIndex/README.txt']],
                ['Products/ZCTextIndex/dtml', ['Products/ZCTextIndex/dtml/*']],
                ['Products/ZCTextIndex/help', ['Products/ZCTextIndex/help/*']],
                ['Products/ZCTextIndex/tests',
                    ['Products/ZCTextIndex/tests/python.txt']],
                ['Products/ZCTextIndex/www', ['Products/ZCTextIndex/www/*']]],
    cmdclass={'install_data': install_data}
)

# ZGadflyDA product
setup(
    name='ZGadflyDA',
    author=AUTHOR,

    packages=['Products.ZGadflyDA', 'Products.ZGadflyDA.gadfly'],

    data_files=[['Products/ZGadflyDA', ['Products/ZGadflyDA/*.txt']],
                ['Products/ZGadflyDA/dtml', ['Products/ZGadflyDA/dtml/*']],
                ['Products/ZGadflyDA/icons', ['Products/ZGadflyDA/icons/*']],
                ['Products/ZGadflyDA/gadfly',
                    ['Products/ZGadflyDA/gadfly/COPYRIGHT',
                     'Products/ZGadflyDA/gadfly/sql.mar',
                     'Products/ZGadflyDA/gadfly/*.html']]],
    cmdclass={'install_data': install_data}
)

# ZSQLMethods product
setup(
    name='ZSQLMethods',
    author=AUTHOR,

    packages=['Products.ZSQLMethods', 'Products.ZSQLMethods.help'],

    data_files=[['Products/ZSQLMethods', ['Products/ZSQLMethods/*.txt',
                                          'Products/ZSQLMethods/*.gif']],
                ['Products/ZSQLMethods/dtml', ['Products/ZSQLMethods/dtml/*']],
                ['Products/ZSQLMethods/help',
                    ['Products/ZSQLMethods/help/*.stx']]],
    cmdclass={'install_data': install_data}
)

# ZopeTutorial product
setup(
    name='ZopeTutorial',
    author=AUTHOR,

    packages=['Products.ZopeTutorial'],

    data_files=[['Products/ZopeTutorial', ['Products/ZopeTutorial/*.txt',
                                           'Products/ZopeTutorial/*.stx']],
                ['Products/ZopeTutorial/dtml',
                    ['Products/ZopeTutorial/dtml/*']]],
    cmdclass={'install_data': install_data}
)

# Call distutils setup with all lib/python packages and modules, and
# flush setup_info.  Wondering why we run py_modules separately?  So am I.
# Distutils won't let us specify packages and py_modules in the same call.

distutils_setup(
    name='Zope',
    author=AUTHOR,

    packages=setup_info.get('packages', []),
    data_files=setup_info.get('data_files', []),

    headers=setup_info.get('headers', []),
    ext_modules=setup_info.get('ext_modules', []),

    cmdclass={'install': install, 'install_data': install_data}
)
distutils_setup(
    name='Zope',
    author=AUTHOR,

    py_modules=setup_info.get('py_modules', []),
    cmdclass={'install': install, 'install_data': install_data}
)
setup_info = {}

# The rest of these modules live in the root of the source tree
os.chdir(ZOPE_ROOT)

# ZServer
setup(
    name='ZServer',
    author=AUTHOR,

    packages=['ZServer', 'ZServer.PubCore', 'ZServer.medusa',
              'ZServer.medusa.contrib', 'ZServer.medusa.demo',
              'ZServer.medusa.misc', 'ZServer.medusa.script_handler_demo',
              'ZServer.medusa.sendfile', 'ZServer.medusa.test',
              'ZServer.medusa.thread'],

    data_files=[['ZServer', ['ZServer/*.txt']],
                ['ZServer/medusa', ['ZServer/medusa/*.txt',
                                    'ZServer/medusa/*.html']],
                ['ZServer/medusa/dist', ['ZServer/medusa/dist/*']],
                ['ZServer/medusa/docs', ['ZServer/medusa/docs/*']],
                ['ZServer/medusa/notes', ['ZServer/medusa/notes/*']],
                ['ZServer/medusa/script_handler_demo',
                    ['ZServer/medusa/script_handler_demo/*.mpy']],
                ['ZServer/medusa/sendfile',
                    ['ZServer/medusa/sendfile/README']],
                ['ZServer/medusa/test', ['ZServer/medusa/test/*.txt']]],
    cmdclass={'install_data': install_data},

# Does not work on all platforms... not like we ever compiled it before
# anyway
#
#    ext_modules=[
#       Extension(name='ZServer.medusa.sendfile.sendfilemodule',
#                 sources=['ZServer/medusa/sendfile/sendfilemodule.c'])]

)

# z2.py
setup(
    name='z2.py',
    author=AUTHOR,

    py_modules=['z2']
)

# zpasswd
setup(
    name='zpasswd',
    author=AUTHOR,

    py_modules=['zpasswd']
)

# Default imports
setup(
    name='Zope default imports',
    author=AUTHOR,

    data_files=[['import', ['import/*.zexp']]],
    cmdclass={'install_data': install_data}
)

# And now, the root-level stuff

distutils_setup(
    name='Zope',
    author=AUTHOR,

    packages=setup_info.get('packages', []),
    data_files=setup_info.get('data_files', []),

    headers=setup_info.get('headers', []),
    ext_modules=setup_info.get('ext_modules', []),

    cmdclass={'install': install, 'install_data': install_data}
)
distutils_setup(
    name='Zope',
    author=AUTHOR,

    py_modules=setup_info.get('py_modules', []),
    cmdclass={'install': install, 'install_data': install_data}
)
www.java2java.com | Contact Us
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.