~mordred/ndb-bindings/resultsets

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"]
     )