File: setup.py

package info (click to toggle)
synopsis 0.8.0-5
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k
  • size: 10,112 kB
  • ctags: 12,996
  • sloc: cpp: 34,254; ansic: 33,620; python: 10,975; sh: 7,261; xml: 6,369; makefile: 773; asm: 445
file content (112 lines) | stat: -rw-r--r-- 4,272 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
#!/usr/bin/env python
#
# Copyright (C) 2004 Stefan Seefeld
# All rights reserved.
# Licensed to the public under the terms of the GNU LGPL (>= 2),
# see the file COPYING for details.
#
# Setup script for synopsis
#
# Usage: python setup.py install
#

from distutils.core import setup
from distutils import sysconfig

from Synopsis.config import *

from Synopsis.dist.command.config import config
from Synopsis.dist.command.build_doc import build_doc
from Synopsis.dist.command.build_syn_clib import build_syn_clib
from Synopsis.dist.command.build_syn_ext import build_syn_ext
from Synopsis.dist.command.test import test
from Synopsis.dist.command.install_syn_clib import install_syn_clib
from Synopsis.dist.command.install_syn import install_syn
from Synopsis.dist.command.bdist_dpkg import bdist_dpkg
from Synopsis.dist.command.clean_syn import clean_syn

# patch distutils if it can't cope with the "classifiers" keyword
from distutils.dist import DistributionMetadata
if not hasattr(DistributionMetadata, 'classifiers'):
   DistributionMetadata.classifiers = None
   DistributionMetadata.download_url = None

import os, sys, re, glob

module_ext = sysconfig.get_config_var('SO')

def prefix(list, pref): return map(lambda x: pref + x, list)
py_packages = ["Synopsis",
               "Synopsis.Parsers",
               "Synopsis.Parsers.IDL", "Synopsis.Parsers.Python",
               "Synopsis.Parsers.Cpp",
               "Synopsis.Parsers.C", "Synopsis.Parsers.Cxx",
               "Synopsis.Processors", "Synopsis.Processors.Comments",
               "Synopsis.Formatters",
               "Synopsis.Formatters.HTML",
               "Synopsis.Formatters.HTML.Views",
               "Synopsis.Formatters.HTML.Parts",
               "Synopsis.Formatters.HTML.Comments",
               "Synopsis.Formatters.HTML.Fragments"]

ext_modules = [('Synopsis/Parsers/Cpp/ucpp', 'ucpp' + module_ext),
               ('Synopsis/Parsers/C', 'ParserImpl' + module_ext),
               ('Synopsis/Parsers/Cxx', 'occ' + module_ext),
               ('Synopsis/Parsers/Cxx', 'link' + module_ext)]

scripts = ['synopsis']

data_files = []

data_files.append(('share/Synopsis', glob.glob('share/Synopsis/*.*')))

#### add documentation

def add_documentation(all, directory, files):

   if '.svn' in files: files.remove('.svn')
   all.append((directory,
               [os.path.join(directory, file)
                for file in files
                if os.path.isfile(file)]))

documentation = []
os.path.walk('share/doc/Synopsis', add_documentation, documentation)
data_files.extend(documentation)

setup(cmdclass={'config':config,
                'build_doc':build_doc,
                'build_clib':build_syn_clib,
                'build_ext':build_syn_ext,
                'test':test,
                'install_clib':install_syn_clib,
                'install':install_syn,
                'bdist_dpkg':bdist_dpkg,
                'clean':clean_syn},
      name="synopsis",
      version=version,
      author="Stefan Seefeld",
      maintainer="Stefan Seefeld",
      author_email="stefan@fresco.org",
      maintainer_email="stefan@fresco.org",
      description="Source-code Introspection Tool",
      long_description="""Synopsis is a multi-language source code introspection tool that
provides a variety of representations for the parsed code, to
enable further processing such as documentation extraction,
reverse engineering, and source-to-source translation.""",
      url="http://synopsis.fresco.org",
      download_url = 'http://synopsis.fresco.org/download',
      license = 'LGPL',
      classifiers = ['Development Status :: 5 - Production/Stable',
                     'Environment :: Console',
                     'Environment :: Web Environment',
                     'Intended Audience :: Developers',
                     'License :: OSI Approved :: GNU Library or Lesser General Public License (LGPL)',
                     'Operating System :: POSIX',
                     'Programming Language :: Python',
                     'Programming Language :: C++',
                     'Topic :: Software Development :: Documentation'],
      packages=py_packages,
      ext_modules=ext_modules,
      scripts=prefix(scripts, "scripts/"),
      data_files=data_files)