mirror of
https://github.com/mariadb-corporation/mariadb-connector-python.git
synced 2025-08-02 13:56:54 +00:00
Setup for Posix systems:
specify the environment variable MARIADB_CONFIG which points to the location of mariadb_config program.
This commit is contained in:
55
mariadb_posix.py
Normal file
55
mariadb_posix.py
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
#!/usr/bin/env python
|
||||||
|
|
||||||
|
import sys
|
||||||
|
import os
|
||||||
|
import string
|
||||||
|
|
||||||
|
class MariaDBConfiguration():
|
||||||
|
lib_dirs= ""
|
||||||
|
libs= ""
|
||||||
|
version= ""
|
||||||
|
includes= ""
|
||||||
|
|
||||||
|
|
||||||
|
def mariadb_config(config, option):
|
||||||
|
from os import popen
|
||||||
|
file= popen("%s --%s" % (config, option))
|
||||||
|
data= file.read().strip().split()
|
||||||
|
rc= file.close()
|
||||||
|
if rc:
|
||||||
|
if rc/256:
|
||||||
|
data= []
|
||||||
|
if rc/256 > 1:
|
||||||
|
raise EnvironmentError("mariadb_config not found. Hint: you can specify environment variable MARIADB_CONFIG which points to the location of mariadb_config")
|
||||||
|
return data
|
||||||
|
|
||||||
|
|
||||||
|
def dequote(s):
|
||||||
|
if s[0] in "\"'" and s[0] == s[-1]:
|
||||||
|
s = s[1:-1]
|
||||||
|
return s
|
||||||
|
|
||||||
|
def get_config():
|
||||||
|
required_version="3.1.0"
|
||||||
|
|
||||||
|
try:
|
||||||
|
config_prg= os.environ["MARIADB_CONFIG"]
|
||||||
|
except KeyError:
|
||||||
|
print("Please set the environment variable MARIADB_CONFIG which points to the location of the mariadb_config program")
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
|
cc_version= mariadb_config(config_prg, "cc_version")
|
||||||
|
if cc_version[0] < required_version:
|
||||||
|
print("MariaDB Connector/C required MariaDB Connector/C >= %s") % (required_version)
|
||||||
|
sys.exit(2)
|
||||||
|
cfg= MariaDBConfiguration()
|
||||||
|
cfg.version= cc_version[0]
|
||||||
|
|
||||||
|
libs= mariadb_config(config_prg, "libs")
|
||||||
|
cfg.lib_dirs = [ dequote(i[2:]) for i in libs if i.startswith("-L") ]
|
||||||
|
cfg.libs = [ dequote(i[2:]) for i in libs if i.startswith("-l") ]
|
||||||
|
includes= mariadb_config(config_prg, "include")
|
||||||
|
mariadb_includes = [ dequote(i[2:]) for i in includes if i.startswith("-I") ]
|
||||||
|
mariadb_includes.extend(["./include"])
|
||||||
|
cfg.includes= mariadb_includes
|
||||||
|
return cfg
|
49
setup.py
49
setup.py
@ -6,56 +6,21 @@ import subprocess
|
|||||||
import string
|
import string
|
||||||
|
|
||||||
from distutils.core import setup, Extension
|
from distutils.core import setup, Extension
|
||||||
from optparse import OptionParser
|
|
||||||
|
|
||||||
def mariadb_config(config, option):
|
if os.name == "posix":
|
||||||
from os import popen
|
from mariadb_posix import get_config
|
||||||
if config is None:
|
|
||||||
config="mariadb_config"
|
|
||||||
file= popen("%s --%s" % (config, option))
|
|
||||||
data= file.read().strip().split()
|
|
||||||
rc= file.close()
|
|
||||||
if rc:
|
|
||||||
if rc/256:
|
|
||||||
data= []
|
|
||||||
if rc/256 > 1:
|
|
||||||
raise EnvironmentError("mariadb_config not found")
|
|
||||||
return data
|
|
||||||
|
|
||||||
|
|
||||||
def dequote(s):
|
|
||||||
if s[0] in "\"'" and s[0] == s[-1]:
|
|
||||||
s = s[1:-1]
|
|
||||||
return s
|
|
||||||
|
|
||||||
parser=OptionParser()
|
|
||||||
parser.add_option("--mariadb_config", dest="mariadb_config",
|
|
||||||
help="Location of mariadb_config")
|
|
||||||
required_version="3.1.0"
|
|
||||||
|
|
||||||
optlist, args= parser.parse_args()
|
|
||||||
cc_version= mariadb_config(optlist.mariadb_config, "cc_version")
|
|
||||||
if cc_version[0] < required_version:
|
|
||||||
print("MariaDB Connector/C required MariaDB Connector/C >= %s") % (required_version)
|
|
||||||
sys.exit(2)
|
|
||||||
libs= mariadb_config(optlist.mariadb_config, "libs")
|
|
||||||
mariadb_lib_dirs = [ dequote(i[2:]) for i in libs if i.startswith("-L") ]
|
|
||||||
mariadb_libs = [ dequote(i[2:]) for i in libs if i.startswith("-l") ]
|
|
||||||
includes= mariadb_config(optlist.mariadb_config, "include")
|
|
||||||
mariadb_includes = [ dequote(i[2:]) for i in includes if i.startswith("-I") ]
|
|
||||||
mariadb_includes.extend(["./include"])
|
|
||||||
if optlist.mariadb_config is not None:
|
|
||||||
sys.argv.remove("--mariadb_config=%s" % (optlist.mariadb_config))
|
|
||||||
|
|
||||||
|
cfg= get_config()
|
||||||
|
|
||||||
setup(name='mariadb',
|
setup(name='mariadb',
|
||||||
version='0.9.1',
|
version='0.9.1',
|
||||||
description='Python MariaDB extension',
|
description='Python MariaDB extension',
|
||||||
author='Georg Richter',
|
author='Georg Richter',
|
||||||
|
license='LGPL 2.1',
|
||||||
url='http://www.mariadb.com',
|
url='http://www.mariadb.com',
|
||||||
ext_modules=[Extension('mariadb', ['src/mariadb.c', 'src/mariadb_connection.c', 'src/mariadb_exception.c', 'src/mariadb_cursor.c', 'src/mariadb_codecs.c', 'src/mariadb_field.c', 'src/mariadb_dbapitype.c', 'src/mariadb_indicator.c'],
|
ext_modules=[Extension('mariadb', ['src/mariadb.c', 'src/mariadb_connection.c', 'src/mariadb_exception.c', 'src/mariadb_cursor.c', 'src/mariadb_codecs.c', 'src/mariadb_field.c', 'src/mariadb_dbapitype.c', 'src/mariadb_indicator.c'],
|
||||||
include_dirs=mariadb_includes,
|
include_dirs=cfg.includes,
|
||||||
library_dirs= mariadb_lib_dirs,
|
library_dirs= cfg.lib_dirs,
|
||||||
libraries= mariadb_libs
|
libraries= cfg.libs
|
||||||
)],
|
)],
|
||||||
)
|
)
|
||||||
|
Reference in New Issue
Block a user