@@ -113,43 +113,52 @@ if(WIN32)
113113 file (TO_CMAKE_PATH "$ENV{PROGRAMFILES} " PROGRAM_FILES_32)
114114 file (TO_CMAKE_PATH "$ENV{ProgramW6432} " PROGRAM_FILES_64)
115115
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+
116139 set (_MYSQL_ROOT_HINTS
117140 ${_MYSQL_ROOT_HINTS}
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]"
141+ ${_MYSQL_ROOT_HINTS_REGISTRY_LOCATIONS}
128142 "[HKEY_LOCAL_MACHINE\\ SOFTWARE\\ MariaDB 10.4;INSTALLDIR]"
129143 "[HKEY_LOCAL_MACHINE\\ SOFTWARE\\ MariaDB 10.4 (x64);INSTALLDIR]"
130144 "[HKEY_LOCAL_MACHINE\\ SOFTWARE\\ MariaDB 10.5;INSTALLDIR]"
131145 "[HKEY_LOCAL_MACHINE\\ SOFTWARE\\ MariaDB 10.5 (x64);INSTALLDIR]"
132146 )
133147
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+
134157 set (_MYSQL_ROOT_PATHS
135158 ${_MYSQL_ROOT_PATHS}
136- "${PROGRAM_FILES_64} /MySQL/MySQL Server 8.3"
137- "${PROGRAM_FILES_64} /MySQL/MySQL Server 8.2"
138- "${PROGRAM_FILES_64} /MySQL/MySQL Server 8.1"
139- "${PROGRAM_FILES_64} /MySQL/MySQL Server 8.0"
140- "${PROGRAM_FILES_64} /MySQL/MySQL Server 5.7"
159+ ${_MYSQL_ROOT_PATHS_VERSION_SUBDIRECTORIES}
141160 "${PROGRAM_FILES_64} /MySQL"
142- "${PROGRAM_FILES_32} /MySQL/MySQL Server 8.3"
143- "${PROGRAM_FILES_32} /MySQL/MySQL Server 8.2"
144- "${PROGRAM_FILES_32} /MySQL/MySQL Server 8.1"
145- "${PROGRAM_FILES_32} /MySQL/MySQL Server 8.0"
146- "${PROGRAM_FILES_32} /MySQL/MySQL Server 5.7"
147161 "${PROGRAM_FILES_32} /MySQL"
148- "$ENV{SystemDrive} /MySQL/MySQL Server 8.3"
149- "$ENV{SystemDrive} /MySQL/MySQL Server 8.2"
150- "$ENV{SystemDrive} /MySQL/MySQL Server 8.1"
151- "$ENV{SystemDrive} /MySQL/MySQL Server 8.0"
152- "$ENV{SystemDrive} /MySQL/MySQL Server 5.7"
153162 "$ENV{SystemDrive} /MySQL"
154163 )
155164endif (WIN32 )
0 commit comments