Skip to content

Commit ca6aa74

Browse files
committed
Build: Extract hardcoded list of mysql paths to shared cmake variable
1 parent 71a8e05 commit ca6aa74

File tree

1 file changed

+40
-97
lines changed

1 file changed

+40
-97
lines changed

cmake/macros/FindMySQL.cmake

Lines changed: 40 additions & 97 deletions
Original file line numberDiff line numberDiff line change
@@ -106,24 +106,33 @@ if(UNIX)
106106
endif(MYSQL_CONFIG)
107107
endif(UNIX)
108108

109+
set(_MYSQL_ROOT_PATHS)
110+
109111
if(WIN32)
110112
# read environment variables and change \ to /
111113
file(TO_CMAKE_PATH "$ENV{PROGRAMFILES}" PROGRAM_FILES_32)
112114
file(TO_CMAKE_PATH "$ENV{ProgramW6432}" PROGRAM_FILES_64)
113-
endif(WIN32)
114115

115-
find_path(MYSQL_INCLUDE_DIR
116-
NAMES
117-
mysql.h
118-
HINTS
116+
set(_MYSQL_ROOT_HINTS
119117
${_MYSQL_ROOT_HINTS}
120-
PATHS
121-
${MYSQL_ADD_INCLUDE_PATH}
122-
/usr/include
123-
/usr/include/mysql
124-
/usr/local/include
125-
/usr/local/include/mysql
126-
/usr/local/mysql/include
118+
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\MySQL AB\\MySQL Server 8.3;Location]"
119+
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\MySQL AB\\MySQL Server 8.2;Location]"
120+
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\MySQL AB\\MySQL Server 8.1;Location]"
121+
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\MySQL AB\\MySQL Server 8.0;Location]"
122+
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\MySQL AB\\MySQL Server 5.7;Location]"
123+
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\MySQL AB\\MySQL Server 8.3;Location]"
124+
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\MySQL AB\\MySQL Server 8.2;Location]"
125+
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\MySQL AB\\MySQL Server 8.1;Location]"
126+
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\MySQL AB\\MySQL Server 8.0;Location]"
127+
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\MySQL AB\\MySQL Server 5.7;Location]"
128+
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\MariaDB 10.4;INSTALLDIR]"
129+
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\MariaDB 10.4 (x64);INSTALLDIR]"
130+
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\MariaDB 10.5;INSTALLDIR]"
131+
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\MariaDB 10.5 (x64);INSTALLDIR]"
132+
)
133+
134+
set(_MYSQL_ROOT_PATHS
135+
${_MYSQL_ROOT_PATHS}
127136
"${PROGRAM_FILES_64}/MySQL/MySQL Server 8.3"
128137
"${PROGRAM_FILES_64}/MySQL/MySQL Server 8.2"
129138
"${PROGRAM_FILES_64}/MySQL/MySQL Server 8.1"
@@ -136,28 +145,28 @@ find_path(MYSQL_INCLUDE_DIR
136145
"${PROGRAM_FILES_32}/MySQL/MySQL Server 8.0"
137146
"${PROGRAM_FILES_32}/MySQL/MySQL Server 5.7"
138147
"${PROGRAM_FILES_32}/MySQL"
139-
"C:/MySQL"
140-
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\MySQL AB\\MySQL Server 8.3;Location]"
141-
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\MySQL AB\\MySQL Server 8.2;Location]"
142-
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\MySQL AB\\MySQL Server 8.1;Location]"
143-
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\MySQL AB\\MySQL Server 8.0;Location]"
144-
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\MySQL AB\\MySQL Server 5.7;Location]"
145-
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\MySQL AB\\MySQL Server 8.3;Location]"
146-
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\MySQL AB\\MySQL Server 8.2;Location]"
147-
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\MySQL AB\\MySQL Server 8.1;Location]"
148-
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\MySQL AB\\MySQL Server 8.0;Location]"
149-
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\MySQL AB\\MySQL Server 5.7;Location]"
150148
"$ENV{SystemDrive}/MySQL/MySQL Server 8.3"
151149
"$ENV{SystemDrive}/MySQL/MySQL Server 8.2"
152150
"$ENV{SystemDrive}/MySQL/MySQL Server 8.1"
153151
"$ENV{SystemDrive}/MySQL/MySQL Server 8.0"
154152
"$ENV{SystemDrive}/MySQL/MySQL Server 5.7"
155-
"c:/msys/local/include"
156-
"$ENV{MYSQL_ROOT}"
157-
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\MariaDB 10.4;INSTALLDIR]"
158-
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\MariaDB 10.4 (x64);INSTALLDIR]"
159-
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\MariaDB 10.5;INSTALLDIR]"
160-
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\MariaDB 10.5 (x64);INSTALLDIR]"
153+
"$ENV{SystemDrive}/MySQL"
154+
)
155+
endif(WIN32)
156+
157+
find_path(MYSQL_INCLUDE_DIR
158+
NAMES
159+
mysql.h
160+
HINTS
161+
${_MYSQL_ROOT_HINTS}
162+
PATHS
163+
${MYSQL_ADD_INCLUDE_PATH}
164+
/usr/include
165+
/usr/include/mysql
166+
/usr/local/include
167+
/usr/local/include/mysql
168+
/usr/local/mysql/include
169+
${_MYSQL_ROOT_PATHS}
161170
PATH_SUFFIXES
162171
include
163172
include/mysql
@@ -190,40 +199,7 @@ if(WIN32)
190199
${_MYSQL_ROOT_HINTS}
191200
PATHS
192201
${MYSQL_ADD_LIBRARIES_PATH}
193-
"${PROGRAM_FILES_64}/MySQL/MySQL Server 8.3"
194-
"${PROGRAM_FILES_64}/MySQL/MySQL Server 8.2"
195-
"${PROGRAM_FILES_64}/MySQL/MySQL Server 8.1"
196-
"${PROGRAM_FILES_64}/MySQL/MySQL Server 8.0"
197-
"${PROGRAM_FILES_64}/MySQL/MySQL Server 5.7"
198-
"${PROGRAM_FILES_64}/MySQL/lib"
199-
"${PROGRAM_FILES_32}/MySQL/MySQL Server 8.3"
200-
"${PROGRAM_FILES_32}/MySQL/MySQL Server 8.2"
201-
"${PROGRAM_FILES_32}/MySQL/MySQL Server 8.1"
202-
"${PROGRAM_FILES_32}/MySQL/MySQL Server 8.0"
203-
"${PROGRAM_FILES_32}/MySQL/MySQL Server 5.7"
204-
"${PROGRAM_FILES_32}/MySQL/lib"
205-
"C:/MySQL/lib/debug"
206-
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\MySQL AB\\MySQL Server 8.3;Location]"
207-
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\MySQL AB\\MySQL Server 8.2;Location]"
208-
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\MySQL AB\\MySQL Server 8.1;Location]"
209-
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\MySQL AB\\MySQL Server 8.0;Location]"
210-
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\MySQL AB\\MySQL Server 5.7;Location]"
211-
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\MySQL AB\\MySQL Server 8.3;Location]"
212-
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\MySQL AB\\MySQL Server 8.2;Location]"
213-
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\MySQL AB\\MySQL Server 8.1;Location]"
214-
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\MySQL AB\\MySQL Server 8.0;Location]"
215-
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\MySQL AB\\MySQL Server 5.7;Location]"
216-
"$ENV{SystemDrive}/MySQL/MySQL Server 8.3"
217-
"$ENV{SystemDrive}/MySQL/MySQL Server 8.2"
218-
"$ENV{SystemDrive}/MySQL/MySQL Server 8.1"
219-
"$ENV{SystemDrive}/MySQL/MySQL Server 8.0"
220-
"$ENV{SystemDrive}/MySQL/MySQL Server 5.7"
221-
"c:/msys/local/lib"
222-
"$ENV{MYSQL_ROOT}"
223-
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\MariaDB 10.4;INSTALLDIR]"
224-
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\MariaDB 10.4 (x64);INSTALLDIR]"
225-
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\MariaDB 10.5;INSTALLDIR]"
226-
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\MariaDB 10.5 (x64);INSTALLDIR]"
202+
${_MYSQL_ROOT_PATHS}
227203
PATH_SUFFIXES
228204
lib
229205
lib/opt
@@ -265,40 +241,7 @@ if(WIN32)
265241
HINTS
266242
${_MYSQL_ROOT_HINTS}
267243
PATHS
268-
"${PROGRAM_FILES_64}/MySQL/MySQL Server 8.3"
269-
"${PROGRAM_FILES_64}/MySQL/MySQL Server 8.2"
270-
"${PROGRAM_FILES_64}/MySQL/MySQL Server 8.1"
271-
"${PROGRAM_FILES_64}/MySQL/MySQL Server 8.0"
272-
"${PROGRAM_FILES_64}/MySQL/MySQL Server 5.7"
273-
"${PROGRAM_FILES_64}/MySQL"
274-
"${PROGRAM_FILES_32}/MySQL/MySQL Server 8.3"
275-
"${PROGRAM_FILES_32}/MySQL/MySQL Server 8.2"
276-
"${PROGRAM_FILES_32}/MySQL/MySQL Server 8.1"
277-
"${PROGRAM_FILES_32}/MySQL/MySQL Server 8.0"
278-
"${PROGRAM_FILES_32}/MySQL/MySQL Server 5.7"
279-
"${PROGRAM_FILES_32}/MySQL"
280-
"C:/MySQL/bin/debug"
281-
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\MySQL AB\\MySQL Server 8.3;Location]"
282-
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\MySQL AB\\MySQL Server 8.2;Location]"
283-
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\MySQL AB\\MySQL Server 8.1;Location]"
284-
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\MySQL AB\\MySQL Server 8.0;Location]"
285-
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\MySQL AB\\MySQL Server 5.7;Location]"
286-
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\MySQL AB\\MySQL Server 8.3;Location]"
287-
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\MySQL AB\\MySQL Server 8.2;Location]"
288-
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\MySQL AB\\MySQL Server 8.1;Location]"
289-
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\MySQL AB\\MySQL Server 8.0;Location]"
290-
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\MySQL AB\\MySQL Server 5.7;Location]"
291-
"$ENV{SystemDrive}/MySQL/MySQL Server 8.3"
292-
"$ENV{SystemDrive}/MySQL/MySQL Server 8.2"
293-
"$ENV{SystemDrive}/MySQL/MySQL Server 8.1"
294-
"$ENV{SystemDrive}/MySQL/MySQL Server 8.0"
295-
"$ENV{SystemDrive}/MySQL/MySQL Server 5.7"
296-
"c:/msys/local/bin"
297-
"$ENV{MYSQL_ROOT}"
298-
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\MariaDB 10.4;INSTALLDIR]"
299-
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\MariaDB 10.4 (x64);INSTALLDIR]"
300-
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\MariaDB 10.5;INSTALLDIR]"
301-
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\MariaDB 10.5 (x64);INSTALLDIR]"
244+
${_MYSQL_ROOT_PATHS}
302245
PATH_SUFFIXES
303246
bin
304247
bin/opt

0 commit comments

Comments
 (0)