mirror of
https://github.com/mariadb-corporation/mariadb-connector-python.git
synced 2025-08-04 08:04:45 +00:00
Added support for server_version and server_info attributes.
Minor fixes in setup.py
This commit is contained in:
70
setup.py
70
setup.py
@ -6,64 +6,40 @@ import subprocess
|
||||
|
||||
from distutils.core import setup, Extension
|
||||
|
||||
def dequote(s):
|
||||
if not s:
|
||||
raise Exception("Wrong value from mariadb_config")
|
||||
if s[0] in "\"'" and s[0] == s[-1]:
|
||||
s = s[1:-1]
|
||||
return s
|
||||
def build_libmariadb(build_type):
|
||||
if build_type != "Debug" and build_type != "RelWithDebInfo" and build_type != "Release":
|
||||
raise Exception("Invalid value for build type")
|
||||
|
||||
def mariadb_config(what):
|
||||
from os import popen
|
||||
if not os.path.isfile('libmariadb/CMakeLists.txt'):
|
||||
subprocess.call('git submodule update --init --recursive && mkdir libmariadb/bld', shell=True)
|
||||
|
||||
f = popen("%s --%s" % (mariadb_config.path, what))
|
||||
data = f.read().strip().split()
|
||||
ret = f.close()
|
||||
if ret:
|
||||
if ret/256:
|
||||
data = []
|
||||
if ret/256 > 1:
|
||||
raise EnvironmentError("%s not found" % (mariadb_config.path,))
|
||||
return data
|
||||
if sys.platform == "win32":
|
||||
build_libmariadb= "cd libmariadb/bld && cmake .. && cmake --build . --config %s" % build_type
|
||||
else:
|
||||
build_libmariadb= "cd libmariadb/bld && cmake .. -DCMAKE_BUILD_TYPE=%s && make -j4" % build_type
|
||||
subprocess.call(build_libmariadb, shell=True)
|
||||
|
||||
def assure_path_exists(path):
|
||||
if not os.path.exists(path):
|
||||
os.makedirs(path)
|
||||
build_libmariadb("Debug")
|
||||
|
||||
#if sys.version_info[0] < 3:
|
||||
# print("Connector MariaDB/Python requires Python 3.x")
|
||||
# sys.exit(1)
|
||||
mariadb_includes=["libmariadb/include", "libmariadb/bld/include", "./include"]
|
||||
if not sys.platform == "win32":
|
||||
mariadb_lib_dirs=["libmariadb/bld/libmariadb"]
|
||||
mariadb_libraries=["dl","m","pthread","ssl","crypto"]
|
||||
static_lib="libmariadb/bld/libmariadb/libmariadbclient.a"
|
||||
else:
|
||||
mariadb_lib_dirs=["libmariadb/bld/libmariadb/%s" % build_type]
|
||||
mariadb_libraries=[]
|
||||
static_lib = "libmariadb/bld/libmariadb/%s/mysqlclient.lib" % build_type
|
||||
|
||||
#subprocess.call('git submodule init && git submodule update', shell=True)
|
||||
assure_path_exists('libmariadb/bld')
|
||||
subprocess.call('cd libmariadb/bld && cmake .. -DCMAKE_BUILD_TYPE=Debug && make -j4', shell=True)
|
||||
|
||||
if sys.platform != "win32":
|
||||
|
||||
mariadb_config.path = "./libmariadb/bld/mariadb_config/mariadb_config"
|
||||
libs = mariadb_config("libs_sys")
|
||||
mariadb_version= mariadb_config("cc_version")
|
||||
if mariadb_version[0] < "3.0.6":
|
||||
print("Connector MariaDB/Python requires MariaDB Connector/C 3.0.6 or newer")
|
||||
sys.exit(1)
|
||||
mariadb_libraries= [dequote(c[2:])
|
||||
for c in libs
|
||||
if c.startswith("-l")]
|
||||
mariadb_lib_dirs= ['./libmariadb/bld/libmariadb']
|
||||
mariadb_includes= ['./libmariadb/include', './libmariadb/bld/include', './libmariadb/bld/include/mysql']
|
||||
mariadb_includes.append("./include")
|
||||
|
||||
print(mariadb_includes)
|
||||
|
||||
print(mariadb_lib_dirs)
|
||||
setup(name='mariadb',
|
||||
version='0.1',
|
||||
version='0.1.1',
|
||||
description='Python MariaDB extension',
|
||||
author='Georg Richter',
|
||||
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'],
|
||||
include_dirs=mariadb_includes,
|
||||
library_dirs= mariadb_lib_dirs,
|
||||
libraries= mariadb_libraries,
|
||||
extra_objects=['./libmariadb/bld/libmariadb/libmariadbclient.a']
|
||||
extra_objects=[static_lib]
|
||||
)],
|
||||
)
|
||||
|
Reference in New Issue
Block a user