Skip to content

Commit

Permalink
Build: Replace hardcoded mysql search paths with pattern based approach
Browse files Browse the repository at this point in the history
  • Loading branch information
Shauren committed Aug 20, 2024
1 parent 8f95c84 commit ab046bd
Showing 1 changed file with 34 additions and 25 deletions.
59 changes: 34 additions & 25 deletions cmake/macros/FindMySQL.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down

0 comments on commit ab046bd

Please sign in to comment.