@@ -106,10 +106,61 @@ if(UNIX)
106106 endif (MYSQL_CONFIG)
107107endif (UNIX )
108108
109+ set (_MYSQL_ROOT_PATHS)
110+
109111if (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)
115+
116+ cmake_host_system_information (
117+ RESULT
118+ _MYSQL_ROOT_HINTS_SUBKEYS
119+ QUERY
120+ WINDOWS_REGISTRY
121+ "HKEY_LOCAL_MACHINE\\ SOFTWARE\\ MySQL AB" SUBKEYS
122+ VIEW BOTH
123+ )
124+ list (SORT _MYSQL_ROOT_HINTS_SUBKEYS COMPARE NATURAL ORDER DESCENDING)
125+
126+ set (_MYSQL_ROOT_HINTS_REGISTRY_LOCATIONS)
127+ foreach (subkey IN LISTS _MYSQL_ROOT_HINTS_SUBKEYS)
128+ cmake_host_system_information (
129+ RESULT
130+ _MYSQL_ROOT_HINTS_REGISTRY_LOCATION
131+ QUERY
132+ WINDOWS_REGISTRY
133+ "HKEY_LOCAL_MACHINE\\ SOFTWARE\\ MySQL AB\\ ${subkey} " VALUE "Location"
134+ VIEW BOTH
135+ )
136+ list (APPEND _MYSQL_ROOT_HINTS_REGISTRY_LOCATIONS ${_MYSQL_ROOT_HINTS_REGISTRY_LOCATION} )
137+ endforeach ()
138+
139+ set (_MYSQL_ROOT_HINTS
140+ ${_MYSQL_ROOT_HINTS}
141+ ${_MYSQL_ROOT_HINTS_REGISTRY_LOCATIONS}
142+ "[HKEY_LOCAL_MACHINE\\ SOFTWARE\\ MariaDB 10.4;INSTALLDIR]"
143+ "[HKEY_LOCAL_MACHINE\\ SOFTWARE\\ MariaDB 10.4 (x64);INSTALLDIR]"
144+ "[HKEY_LOCAL_MACHINE\\ SOFTWARE\\ MariaDB 10.5;INSTALLDIR]"
145+ "[HKEY_LOCAL_MACHINE\\ SOFTWARE\\ MariaDB 10.5 (x64);INSTALLDIR]"
146+ )
147+
148+ file (GLOB _MYSQL_ROOT_PATHS_VERSION_SUBDIRECTORIES
149+ LIST_DIRECTORIES TRUE
150+ "${PROGRAM_FILES_64} /MySQL/MySQL Server *"
151+ "${PROGRAM_FILES_32} /MySQL/MySQL Server *"
152+ "$ENV{SystemDrive} /MySQL/MySQL Server *"
153+ )
154+
155+ list (SORT _MYSQL_ROOT_PATHS_VERSION_SUBDIRECTORIES COMPARE NATURAL ORDER DESCENDING)
156+
157+ set (_MYSQL_ROOT_PATHS
158+ ${_MYSQL_ROOT_PATHS}
159+ ${_MYSQL_ROOT_PATHS_VERSION_SUBDIRECTORIES}
160+ "${PROGRAM_FILES_64} /MySQL"
161+ "${PROGRAM_FILES_32} /MySQL"
162+ "$ENV{SystemDrive} /MySQL"
163+ )
113164endif (WIN32 )
114165
115166find_path (MYSQL_INCLUDE_DIR
@@ -124,40 +175,7 @@ find_path(MYSQL_INCLUDE_DIR
124175 /usr/local/include
125176 /usr/local/include /mysql
126177 /usr/local/mysql/include
127- "${PROGRAM_FILES_64} /MySQL/MySQL Server 8.3"
128- "${PROGRAM_FILES_64} /MySQL/MySQL Server 8.2"
129- "${PROGRAM_FILES_64} /MySQL/MySQL Server 8.1"
130- "${PROGRAM_FILES_64} /MySQL/MySQL Server 8.0"
131- "${PROGRAM_FILES_64} /MySQL/MySQL Server 5.7"
132- "${PROGRAM_FILES_64} /MySQL"
133- "${PROGRAM_FILES_32} /MySQL/MySQL Server 8.3"
134- "${PROGRAM_FILES_32} /MySQL/MySQL Server 8.2"
135- "${PROGRAM_FILES_32} /MySQL/MySQL Server 8.1"
136- "${PROGRAM_FILES_32} /MySQL/MySQL Server 8.0"
137- "${PROGRAM_FILES_32} /MySQL/MySQL Server 5.7"
138- "${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]"
150- "$ENV{SystemDrive} /MySQL/MySQL Server 8.3"
151- "$ENV{SystemDrive} /MySQL/MySQL Server 8.2"
152- "$ENV{SystemDrive} /MySQL/MySQL Server 8.1"
153- "$ENV{SystemDrive} /MySQL/MySQL Server 8.0"
154- "$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]"
178+ ${_MYSQL_ROOT_PATHS}
161179 PATH_SUFFIXES
162180 include
163181 include /mysql
@@ -190,40 +208,7 @@ if(WIN32)
190208 ${_MYSQL_ROOT_HINTS}
191209 PATHS
192210 ${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]"
211+ ${_MYSQL_ROOT_PATHS}
227212 PATH_SUFFIXES
228213 lib
229214 lib/opt
@@ -265,40 +250,7 @@ if(WIN32)
265250 HINTS
266251 ${_MYSQL_ROOT_HINTS}
267252 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]"
253+ ${_MYSQL_ROOT_PATHS}
302254 PATH_SUFFIXES
303255 bin
304256 bin/opt
0 commit comments