File: setup.py

package info (click to toggle)
python-cjkcodecs 1.1.1-1
  • links: PTS
  • area: main
  • in suites: sarge
  • size: 2,848 kB
  • ctags: 1,231
  • sloc: ansic: 33,819; python: 2,388; makefile: 70; sh: 11
file content (113 lines) | stat: -rwxr-xr-x 4,418 bytes parent folder | download
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
113
#!/usr/bin/env python
#
# setup.py: CJK Codec Setup
#
# Copyright (C) 2003-2004 Hye-Shik Chang <perky@FreeBSD.org>.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
#
# 1. Redistributions of source code must retain the above copyright
#    notice, this list of conditions and the following disclaimer.
# 2. Redistributions in binary form must reproduce the above copyright
#    notice, this list of conditions and the following disclaimer in the
#    documentation and/or other materials provided with the distribution.
#
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
# DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
# INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
# IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
# POSSIBILITY OF SUCH DAMAGE.
#
# $Id: setup.py,v 1.22 2004/08/19 17:11:58 perky Exp $
#

import os
import sys
from distutils.core import setup, Extension
from distutils.command.install import install

SRCDIR = 'src'
LIBDIRS = []
extensions = []
macros = []
locales = ['kr', 'jp', 'cn', 'tw', 'hk', 'iso2022', 'unicode']

for arg in sys.argv[1:]: # don't use getopt to ignore arguments for distutils
    args = arg.split('=', 1)
    if args[0] == '--disable-korean':
        locales.remove('kr')
    elif args[0] == '--disable-japanese':
        locales.remove('jp')
    elif args[0] == '--disable-simplified-chinese':
        locales.remove('cn')
    elif args[0] == '--disable-traditional-chinese':
        locales.remove('tw')
        locales.remove('hk')
    elif args[0] == '--disable-iso2022':
        locales.remove('iso2022')
    elif args[0] == '--disable-utf':
        locales.remove('unicode')
    elif args[0] == '--disable-extra-encodings':
        macros.append(('NO_EXTRA_ENCODINGS', '1'))
    elif args[0] == '--help':
        print """\
Language options:
  --disable-japanese                don't install Japanese codecs
  --disable-korean                  don't install Korean codecs
  --disable-simplified-chinese      don't install Simplified Chinese codecs
  --disable-traditional-chinese     don't install Traditional Chinese codecs
  --disable-iso2022                 don't install ISO-2022 codecs
  --disable-utf                     don't install UTF codecs
  --disable-extra-encodings         disable building extra-expensive encodings:
                                        euc-tw iso-2022-cn
"""
        continue
    else:
        continue

    sys.argv.remove(arg)

if sys.platform == 'win32' and '--compiler=mingw32' in sys.argv:
    LIBDIRS.append('.') # libpython23.a and libpython23.def

for loc in locales:
    extensions.append(Extension('cjkcodecs._codecs_' + loc,
                      ['%s/_codecs_%s.c' % (SRCDIR, loc)],
                      define_macros=macros))

class Install(install):
    def initialize_options (self):
        install.initialize_options(self)
        if sys.hexversion >= 0x2010000:
            self.extra_path = ("cjkcodecs", "import cjkcodecs.aliases")
        else:
            self.extra_path = "cjkcodecs"
    def finalize_options (self):
        org_install_lib = self.install_lib
        install.finalize_options(self)
        self.install_libbase = self.install_lib = \
            org_install_lib or self.install_purelib

setup (name = "cjkcodecs",
       version = "1.1.1",
       description = "Python Unicode Codecs Collection for CJK Encodings",
       author = "Hye-Shik Chang",
       author_email = "perky@FreeBSD.org",
       url = "http://cjkpython.i18n.org/#CJKCodecs",
       license = "BSD Style (without advertisement clause)",
       cmdclass = {'install': Install},
       packages = ['cjkcodecs'],
       ext_modules =
            [Extension("cjkcodecs._multibytecodec",
                       ["%s/multibytecodec.c" % SRCDIR], library_dirs=LIBDIRS)]
            + extensions
       )