Merge pull request #2 from rusher/master

[misc] windows setup improvement
This commit is contained in:
Georg Richter
2019-11-05 10:46:13 +01:00
committed by GitHub

View File

@ -1,40 +1,53 @@
import sys
import os import os
import string import platform
import sys
from winreg import * from winreg import *
class MariaDBConfiguration(): class MariaDBConfiguration():
lib_dirs= "" lib_dirs = ""
libs= "" libs = ""
version= "" version = ""
includes= "" includes = ""
def get_config(): def get_config():
required_version="3.1.0" required_version = "3.1.0"
try: try:
config_prg= os.environ["MARIADB_CC_DIR"] config_prg = os.environ["MARIADB_CC_INSTALL_DIR"]
cc_version= ["",""] cc_version = ["", ""]
cc_instdir= [config_prg, ""] cc_instdir = [config_prg, ""]
print("using environment configuration " + config_prg) print("using environment configuration " + config_prg)
except KeyError: except KeyError:
Registry= ConnectRegistry(None, HKEY_LOCAL_MACHINE)
Key= OpenKey(Registry, "SOFTWARE\MariaDB Corporation\MariaDB Connector C 64-bit")
if Key:
cc_version= QueryValueEx(Key, "Version")
if cc_version[0] < required_version:
print("MariaDB Connector/Python requires MariaDB Connector/C >= %s (found version: %s") % (required_version, cc_version[0])
sys.exit(2) try:
cc_instdir= QueryValueEx(Key, "InstallDir") local_reg = ConnectRegistry(None, HKEY_LOCAL_MACHINE)
if cc_instdir is None: if platform.architecture()[0] == '32bit':
print("Could not find InstallationDir of MariaDB Connector/C. Please make sure MariaDB Connector/C is installed or specify the InstallationDir of MariaDB Connector/C by setting the environment variable MARIADB_CC_INSTALL_DIR.") connector_key = OpenKey(local_reg,
sys.exit(3) 'SOFTWARE\\MariaDB Corporation\\MariaDB Connector C')
else:
connector_key = OpenKey(local_reg,
'SOFTWARE\\MariaDB Corporation\\MariaDB Connector C 64-bit',
access=KEY_READ | KEY_WOW64_64KEY)
cc_version = QueryValueEx(connector_key, "Version")
if cc_version[0] < required_version:
print(
"MariaDB Connector/Python requires MariaDB Connector/C >= %s (found version: %s") \
% (required_version, cc_version[0])
sys.exit(2)
cc_instdir = QueryValueEx(Key, "InstallDir")
cfg= MariaDBConfiguration() except:
cfg.version= cc_version[0] print("Could not find InstallationDir of MariaDB Connector/C. "
cfg.includes= [".\\include", cc_instdir[0] + "\\include", cc_instdir[0] + "\\include\\mysql"] "Please make sure MariaDB Connector/C is installed or specify the InstallationDir of "
cfg.lib_dirs= [cc_instdir[0] + "\\lib"] "MariaDB Connector/C by setting the environment variable MARIADB_CC_INSTALL_DIR.")
cfg.libs= ["mariadbclient", "ws2_32", "advapi32", "kernel32", "shlwapi", "crypt32"] sys.exit(3)
return cfg
cfg = MariaDBConfiguration()
cfg.version = cc_version[0]
cfg.includes = [".\\include", cc_instdir[0] + "\\include", cc_instdir[0] + "\\include\\mysql"]
cfg.lib_dirs = [cc_instdir[0] + "\\lib"]
cfg.libs = ["mariadbclient", "ws2_32", "advapi32", "kernel32", "shlwapi", "crypt32"]
return cfg