Skip to content

Commit 4388d84

Browse files
committed
Remove support for building against MySQL Connector/C on Windows
MySQL Connector/C is not longer published since 2017. New builds are always done against MariaDB Connector/C. Dropping support for the deprecated MySQL Connector simplifies the Windows build process.
1 parent 83ce631 commit 4388d84

File tree

2 files changed

+23
-72
lines changed

2 files changed

+23
-72
lines changed

setup_windows.py

+23-71
Original file line numberDiff line numberDiff line change
@@ -3,87 +3,39 @@
33
from distutils.msvccompiler import get_build_version
44

55

6-
def get_default_connector(client):
7-
if client == "mariadbclient":
8-
return os.path.join(
9-
os.environ["ProgramFiles"], "MariaDB", "MariaDB Connector C"
10-
)
11-
elif client == "mysqlclient":
12-
return os.path.join(
13-
os.environ["ProgramFiles"], "MySQL", "MySQL Connector C 6.1"
14-
)
15-
else:
16-
raise ValueError("Unknown client library")
17-
18-
19-
def find_library(client, connector=None):
20-
if not connector:
21-
connector = get_default_connector(client)
22-
paths = []
23-
if client == "mariadbclient":
24-
paths.append(os.path.join(connector, "lib", "mariadb", client + ".lib"))
25-
paths.append(os.path.join(connector, "lib", client + ".lib"))
26-
elif client == "mysqlclient":
27-
vcversion = int(get_build_version())
28-
paths.append(os.path.join(connector, "lib", "vs%d" % vcversion))
29-
else:
30-
raise ValueError("Unknown client library")
31-
for path in paths:
32-
if os.path.exists(path):
33-
return path
34-
return None
35-
36-
376
def get_config():
387
from setup_common import get_metadata_and_options, create_release_file
398

409
metadata, options = get_metadata_and_options()
4110

42-
client = os.environ.get("MYSQLCLIENT_CLIENT", options.get("client"))
11+
client = "mariadbclient"
4312
connector = os.environ.get("MYSQLCLIENT_CONNECTOR", options.get("connector"))
44-
45-
if not client:
46-
for client in ("mariadbclient", "mysqlclient"):
47-
if find_library(client, connector):
48-
break
49-
else:
50-
raise RuntimeError("Couldn't find MySQL or MariaDB Connector")
51-
5213
if not connector:
53-
connector = get_default_connector(client)
14+
connector = os.path.join(
15+
os.environ["ProgramFiles"], "MariaDB", "MariaDB Connector C"
16+
)
5417

5518
extra_objects = []
5619

57-
vcversion = int(get_build_version())
58-
if client == "mariadbclient":
59-
library_dirs = [
60-
os.path.join(connector, "lib", "mariadb"),
61-
os.path.join(connector, "lib"),
62-
]
63-
libraries = [
64-
"kernel32",
65-
"advapi32",
66-
"wsock32",
67-
"shlwapi",
68-
"Ws2_32",
69-
"crypt32",
70-
"secur32",
71-
"bcrypt",
72-
client,
73-
]
74-
include_dirs = [
75-
os.path.join(connector, "include", "mariadb"),
76-
os.path.join(connector, "include"),
77-
]
78-
elif client == "mysqlclient":
79-
library_dirs = [
80-
os.path.join(connector, r"lib\vs%d" % vcversion),
81-
os.path.join(connector, "lib"),
82-
]
83-
libraries = ["kernel32", "advapi32", "wsock32", client]
84-
include_dirs = [os.path.join(connector, r"include")]
85-
else:
86-
raise ValueError("Unknown client library")
20+
library_dirs = [
21+
os.path.join(connector, "lib", "mariadb"),
22+
os.path.join(connector, "lib"),
23+
]
24+
libraries = [
25+
"kernel32",
26+
"advapi32",
27+
"wsock32",
28+
"shlwapi",
29+
"Ws2_32",
30+
"crypt32",
31+
"secur32",
32+
"bcrypt",
33+
client,
34+
]
35+
include_dirs = [
36+
os.path.join(connector, "include", "mariadb"),
37+
os.path.join(connector, "include"),
38+
]
8739

8840
extra_link_args = ["/MANIFEST"]
8941

site.cfg

-1
Original file line numberDiff line numberDiff line change
@@ -9,5 +9,4 @@ static = False
99

1010
# http://stackoverflow.com/questions/1972259/mysql-python-install-problem-using-virtualenv-windows-pip
1111
# Windows connector libs for MySQL. You need a 32-bit connector for your 32-bit Python build.
12-
client =
1312
connector =

0 commit comments

Comments
 (0)