aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cmake/macros/FindMySQL.cmake59
1 files changed, 34 insertions, 25 deletions
diff --git a/cmake/macros/FindMySQL.cmake b/cmake/macros/FindMySQL.cmake
index 47e56f4e63c..1f3f8d406c5 100644
--- a/cmake/macros/FindMySQL.cmake
+++ b/cmake/macros/FindMySQL.cmake
@@ -113,43 +113,52 @@ if(WIN32)
file(TO_CMAKE_PATH "$ENV{PROGRAMFILES}" PROGRAM_FILES_32)
file(TO_CMAKE_PATH "$ENV{ProgramW6432}" PROGRAM_FILES_64)
+ cmake_host_system_information(
+ RESULT
+ _MYSQL_ROOT_HINTS_SUBKEYS
+ QUERY
+ WINDOWS_REGISTRY
+ "HKEY_LOCAL_MACHINE\\SOFTWARE\\MySQL AB" SUBKEYS
+ VIEW BOTH
+ )
+ list(SORT _MYSQL_ROOT_HINTS_SUBKEYS COMPARE NATURAL ORDER DESCENDING)
+
+ set(_MYSQL_ROOT_HINTS_REGISTRY_LOCATIONS)
+ foreach(subkey IN LISTS _MYSQL_ROOT_HINTS_SUBKEYS)
+ cmake_host_system_information(
+ RESULT
+ _MYSQL_ROOT_HINTS_REGISTRY_LOCATION
+ QUERY
+ WINDOWS_REGISTRY
+ "HKEY_LOCAL_MACHINE\\SOFTWARE\\MySQL AB\\${subkey}" VALUE "Location"
+ VIEW BOTH
+ )
+ list(APPEND _MYSQL_ROOT_HINTS_REGISTRY_LOCATIONS ${_MYSQL_ROOT_HINTS_REGISTRY_LOCATION})
+ endforeach()
+
set(_MYSQL_ROOT_HINTS
${_MYSQL_ROOT_HINTS}
- "[HKEY_LOCAL_MACHINE\\SOFTWARE\\MySQL AB\\MySQL Server 8.3;Location]"
- "[HKEY_LOCAL_MACHINE\\SOFTWARE\\MySQL AB\\MySQL Server 8.2;Location]"
- "[HKEY_LOCAL_MACHINE\\SOFTWARE\\MySQL AB\\MySQL Server 8.1;Location]"
- "[HKEY_LOCAL_MACHINE\\SOFTWARE\\MySQL AB\\MySQL Server 8.0;Location]"
- "[HKEY_LOCAL_MACHINE\\SOFTWARE\\MySQL AB\\MySQL Server 5.7;Location]"
- "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\MySQL AB\\MySQL Server 8.3;Location]"
- "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\MySQL AB\\MySQL Server 8.2;Location]"
- "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\MySQL AB\\MySQL Server 8.1;Location]"
- "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\MySQL AB\\MySQL Server 8.0;Location]"
- "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\MySQL AB\\MySQL Server 5.7;Location]"
+ ${_MYSQL_ROOT_HINTS_REGISTRY_LOCATIONS}
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\MariaDB 10.4;INSTALLDIR]"
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\MariaDB 10.4 (x64);INSTALLDIR]"
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\MariaDB 10.5;INSTALLDIR]"
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\MariaDB 10.5 (x64);INSTALLDIR]"
)
+ file(GLOB _MYSQL_ROOT_PATHS_VERSION_SUBDIRECTORIES
+ LIST_DIRECTORIES TRUE
+ "${PROGRAM_FILES_64}/MySQL/MySQL Server *"
+ "${PROGRAM_FILES_32}/MySQL/MySQL Server *"
+ "$ENV{SystemDrive}/MySQL/MySQL Server *"
+ )
+
+ list(SORT _MYSQL_ROOT_PATHS_VERSION_SUBDIRECTORIES COMPARE NATURAL ORDER DESCENDING)
+
set(_MYSQL_ROOT_PATHS
${_MYSQL_ROOT_PATHS}
- "${PROGRAM_FILES_64}/MySQL/MySQL Server 8.3"
- "${PROGRAM_FILES_64}/MySQL/MySQL Server 8.2"
- "${PROGRAM_FILES_64}/MySQL/MySQL Server 8.1"
- "${PROGRAM_FILES_64}/MySQL/MySQL Server 8.0"
- "${PROGRAM_FILES_64}/MySQL/MySQL Server 5.7"
+ ${_MYSQL_ROOT_PATHS_VERSION_SUBDIRECTORIES}
"${PROGRAM_FILES_64}/MySQL"
- "${PROGRAM_FILES_32}/MySQL/MySQL Server 8.3"
- "${PROGRAM_FILES_32}/MySQL/MySQL Server 8.2"
- "${PROGRAM_FILES_32}/MySQL/MySQL Server 8.1"
- "${PROGRAM_FILES_32}/MySQL/MySQL Server 8.0"
- "${PROGRAM_FILES_32}/MySQL/MySQL Server 5.7"
"${PROGRAM_FILES_32}/MySQL"
- "$ENV{SystemDrive}/MySQL/MySQL Server 8.3"
- "$ENV{SystemDrive}/MySQL/MySQL Server 8.2"
- "$ENV{SystemDrive}/MySQL/MySQL Server 8.1"
- "$ENV{SystemDrive}/MySQL/MySQL Server 8.0"
- "$ENV{SystemDrive}/MySQL/MySQL Server 5.7"
"$ENV{SystemDrive}/MySQL"
)
endif(WIN32)