File: setup.py

package info (click to toggle)
python-lzo 1.15-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 148 kB
  • sloc: ansic: 505; python: 200; makefile: 27
file content (130 lines) | stat: -rw-r--r-- 3,772 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
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
#! /usr/bin/env python
# vi:ts=4:et

from __future__ import print_function

import os, sys
import setuptools
import distutils
from distutils.cmd import Command
from distutils.core import setup
from distutils.extension import Extension
from distutils.util import split_quoted

include_dirs = []
define_macros = []
library_dirs = []
libraries = []
runtime_library_dirs = []
extra_objects = []
extra_compile_args = []
extra_link_args = []

class TestCommand(Command):
    user_options = []

    def initialize_options(self):
        pass

    def finalize_options(self):
        pass

    def run(self):
        import sys, subprocess
        raise SystemExit(
            subprocess.call([sys.executable,
                             '-m',
                             'pytest']))


if sys.platform == "win32":
    # Windows users have to configure the LZO_DIR path parameter to match
    # their LZO source installation.  The path set here is just an example
    # and thus unlikely to match your installation.

    LZO_DIR = os.environ.get('LZO_DIR', r".\lzo-2.10")
    print("LZO_DIR:", LZO_DIR)
    if not os.path.exists(LZO_DIR):
        raise Exception("please set LZO_DIR to where the lzo source lives")
    include_dirs.append(os.path.join(LZO_DIR, r"include\lzo"))
    include_dirs.append(os.path.join(LZO_DIR, "include"))
    lib1_file = os.path.join(LZO_DIR, "lzo.lib")
    lib2_file = os.path.join(LZO_DIR, "lzo2.lib")
    if os.path.exists(lib2_file):
        lib_file = lib2_file
    else:
        lib_file = lib1_file
    extra_objects.append(lib_file)

elif sys.platform == "darwin":
    libraries = ["lzo2"]

    LZO_DIR = os.environ.get('LZO_DIR', "/usr")

    if not os.path.exists(LZO_DIR+"/include/lzo"):
        LZO_DIR = os. getcwd()+"/lzo-2.10"

    print("LZO_DIR:", LZO_DIR)

    print("include dir:", LZO_DIR+"/include")

    include_dirs.append(LZO_DIR+"/include")
    library_dirs.append(LZO_DIR+"/lib")

    extra_link_args.append("-flat_namespace")

else:
    libraries = ["lzo2"]
    include_dirs.append(os.environ.get("PREFIX", "/usr")+"/include")
    ##library_dirs.append("/usr/local/lib")
    ##runtime_library_dirs.append("/usr/local/lib")


###############################################################################

def get_kw(**kw): return kw

ext = Extension(
    name="lzo",
    sources=["lzomodule.c"],
    include_dirs=include_dirs,
    define_macros=define_macros,
    library_dirs=library_dirs,
    libraries=libraries,
    runtime_library_dirs=runtime_library_dirs,
    extra_objects=extra_objects,
    extra_compile_args=extra_compile_args,
    extra_link_args=extra_link_args,
)

setup_args = get_kw(
    name="python-lzo",
    version="1.15",
    description="Python bindings for the LZO data compression library",
    author="Markus F.X.J. Oberhumer",
    author_email="markus@oberhumer.com",
    maintainer="Joshua D. Boyd",
    maintainer_email="jdboyd@jdboyd.net",
    url="https://github.com/jd-boyd/python-lzo",
    license="GNU General Public License (GPL)",
    tests_require=['pytest'],
    cmdclass={
        'test': TestCommand
    },
    ext_modules=[ext],
    long_description="""
This module provides Python bindings for the LZO data compression library.

LZO is a portable lossless data compression library written in ANSI C.
It offers pretty fast compression and *very* fast decompression.
Decompression requires no memory.

In addition there are slower compression levels achieving a quite
competitive compression ratio while still decompressing at
this very high speed.""",
)

if distutils.__version__ >= "1.0.2":
    setup_args["platforms"] = "All"

setup(**setup_args)