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
|
#!/usr/bin/env python
# bootstrap setuptools if necessary
from ez_setup import use_setuptools
use_setuptools()
from distutils.command.clean import clean
from setuptools import setup,Extension
import os.path
import sys
def mysql_config(what):
from os import popen
f = popen("/usr/bin/mysql_config --%s" % what)
data = f.read().strip().split()
if f.close(): data = []
return data
def dequote(s):
if s[0] in "\"'" and s[0] == s[-1]:
s = s[1:-1]
return s
def ndb_expand(s):
return "%s %s/storage/ndb %s/storage/ndb/ndbapi %s/storage/ndb/mgmapi" % (s,s,s,s)
libs = mysql_config("libs_r")
print libs
client = "mysqlclient_r"
if not libs:
libs = mysql_config("libs")
client = "mysqlclient"
library_dirs = [ dequote(i[2:]) for i in libs if i.startswith("-L") ]
libraries = [ dequote(i[2:]) for i in libs if i.startswith("-l") ]
removable_compile_args = '-I -L -l'.split()
extra_compile_args = [ i for i in mysql_config("cflags")
if i[:2] not in removable_compile_args ]
#extra_compile_args.append("-DDOXYGEN_SHOULD_SKIP_INTERNAL")
extra_compile_args.append("-g")
include_dirs = [ ndb_expand(dequote(i[2:]))
for i in mysql_config('include')
if i.startswith('-I') ]
include_dirs = include_dirs[0].split(" ")
libraries.append("ndbclient")
libraries.append("mysys")
libraries.append("mysqld")
libraries.append("mystrings")
description = """python wrapper of the NDBAPI"""
classifiers="""\
Development Status :: 2 - Pre-Alpha
License :: OSI Approved :: GPL
Operating System :: POSIX :: Linux
Programming Language :: C++
Programming Language :: Python
Topic :: Software Development :: Libraries :: Python Modules
"""
version = "0.1"
setup(name="python-ndbapi",
version=version,
description=description,
long_description=description,
author="Monty Taylor",
author_email="mtaylor@mysql.com",
platforms="linux",
license="GPL",
classifiers=filter(None, classifiers.splitlines()),
ext_modules=[
Extension("_ndb",
sources=["ndb.i"],
depends=["main-exceptions.i"],
libraries = libraries,
include_dirs = include_dirs,
library_dirs = library_dirs,
extra_compile_args = extra_compile_args,
language="c++",
)
],
py_modules=["ndb"]
)
|