1
Fork 0
mirror of https://github.com/SapphireServer/Sapphire.git synced 2025-05-08 11:47:45 +00:00

Shamelessly steal FindMySQL.cmake from 3.x branch

This commit is contained in:
Maple 2023-05-23 07:46:24 -03:00
parent cac8e72f33
commit 7adfffb2b2

View file

@ -15,32 +15,32 @@ set( MYSQL_FOUND 0 )
if( UNIX ) if( UNIX )
set(MYSQL_CONFIG_PREFER_PATH "$ENV{MYSQL_HOME}/bin" CACHE FILEPATH set(MYSQL_CONFIG_PREFER_PATH "$ENV{MYSQL_HOME}/bin" CACHE FILEPATH
"preferred path to MySQL (mysql_config)" "preferred path to MySQL (mysql_config)"
) )
find_program(MYSQL_CONFIG mysql_config find_program(MYSQL_CONFIG mysql_config
${MYSQL_CONFIG_PREFER_PATH} ${MYSQL_CONFIG_PREFER_PATH}
/usr/local/mysql/bin/ /usr/local/mysql/bin/
/usr/local/bin/ /usr/local/bin/
/usr/bin/ /usr/bin/
) )
if( MYSQL_CONFIG ) if( MYSQL_CONFIG )
message(STATUS "Using mysql-config: ${MYSQL_CONFIG}") message(STATUS "Using mysql-config: ${MYSQL_CONFIG}")
# set INCLUDE_DIR # set INCLUDE_DIR
exec_program(${MYSQL_CONFIG} exec_program(${MYSQL_CONFIG}
ARGS --include ARGS --include
OUTPUT_VARIABLE MY_TMP OUTPUT_VARIABLE MY_TMP
) )
string(REGEX REPLACE "-I([^ ]*)( .*)?" "\\1" MY_TMP "${MY_TMP}") string(REGEX REPLACE "-I([^ ]*)( .*)?" "\\1" MY_TMP "${MY_TMP}")
set(MYSQL_ADD_INCLUDE_PATH ${MY_TMP} CACHE FILEPATH INTERNAL) set(MYSQL_ADD_INCLUDE_PATH ${MY_TMP} CACHE FILEPATH INTERNAL)
#message("[DEBUG] MYSQL ADD_INCLUDE_PATH : ${MYSQL_ADD_INCLUDE_PATH}") #message("[DEBUG] MYSQL ADD_INCLUDE_PATH : ${MYSQL_ADD_INCLUDE_PATH}")
# set LIBRARY_DIR # set LIBRARY_DIR
exec_program(${MYSQL_CONFIG} exec_program(${MYSQL_CONFIG}
ARGS --libs_r ARGS --libs_r
OUTPUT_VARIABLE MY_TMP OUTPUT_VARIABLE MY_TMP
) )
set(MYSQL_ADD_LIBRARIES "") set(MYSQL_ADD_LIBRARIES "")
string(REGEX MATCHALL "-l[^ ]*" MYSQL_LIB_LIST "${MY_TMP}") string(REGEX MATCHALL "-l[^ ]*" MYSQL_LIB_LIST "${MY_TMP}")
foreach(LIB ${MYSQL_LIB_LIST}) foreach(LIB ${MYSQL_LIB_LIST})
@ -67,83 +67,89 @@ endif( UNIX )
if( WIN32 ) if( WIN32 )
SET(PROGRAM_FILES_64 $ENV{ProgramW6432}) SET(PROGRAM_FILES_64 $ENV{ProgramW6432})
if (${PROGRAM_FILES_64}) if (${PROGRAM_FILES_64})
STRING(REPLACE "\\\\" "/" PROGRAM_FILES_64 ${PROGRAM_FILES_64}) STRING(REPLACE "\\\\" "/" PROGRAM_FILES_64 ${PROGRAM_FILES_64})
endif(${PROGRAM_FILES_64}) endif(${PROGRAM_FILES_64})
endif ( WIN32 ) endif ( WIN32 )
find_path(MYSQL_INCLUDE_DIR find_path(MYSQL_INCLUDE_DIR
NAMES NAMES
mysql.h mysql.h
PATHS PATHS
${MYSQL_ADD_INCLUDE_PATH} ${MYSQL_ADD_INCLUDE_PATH}
/usr/include /usr/include
/usr/include/mariadb /usr/include/mariadb
/usr/include/mysql /usr/include/mysql
/usr/local/include /usr/local/include
/usr/local/include/mysql /usr/local/include/mysql
/usr/local/mysql/include /usr/local/mysql/include
"${PROGRAM_FILES_64}/MySQL/MySQL Server 5.7/include" "${PROGRAM_FILES_64}/MariaDB 10.3/include/mysql"
"${PROGRAM_FILES_64}/MySQL/include" "${PROGRAM_FILES_64}/MariaDB 10.4/include/mysql"
"${PROGRAM_FILES_64}/MariaDB 10.3/include/mysql" "${PROGRAM_FILES_64}/MariaDB 10.5/include/mysql"
"${PROGRAM_FILES_64}/MariaDB 10.4/include/mysql" "${PROGRAM_FILES_64}/MariaDB 10.6/include/mysql"
"${PROGRAM_FILES_64}/MariaDB 10.5/include/mysql" "${PROGRAM_FILES_64}/MariaDB 10.7/include/mysql"
"${PROGRAM_FILES_64}/MariaDB 10.6/include/mysql" "${PROGRAM_FILES_64}/MariaDB 10.8/include/mysql"
"C:/MySQL/include" "${PROGRAM_FILES_64}/MariaDB 10.9/include/mysql"
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\MySQL AB\\MySQL Server 5.7;Location]/include" "${PROGRAM_FILES_64}/MySQL/MySQL Server 5.7/include"
"$ENV{ProgramFiles}/MySQL/MySQL Server 5.7/include" "${PROGRAM_FILES_64}/MySQL/include"
"$ENV{SystemDrive}/MySQL/MySQL Server 5.7/include" "C:/MySQL/include"
"c:/msys/local/include" "[HKEY_LOCAL_MACHINE\\SOFTWARE\\MySQL AB\\MySQL Server 5.7;Location]/include"
"$ENV{MYSQL_ROOT}/include" "$ENV{ProgramFiles}/MySQL/MySQL Server 5.7/include"
DOC "$ENV{SystemDrive}/MySQL/MySQL Server 5.7/include"
"Specify the directory containing mysql.h." "c:/msys/local/include"
) "$ENV{MYSQL_ROOT}/include"
DOC
"Specify the directory containing mysql.h."
)
if( UNIX ) if( UNIX )
foreach(LIB ${MYSQL_ADD_LIBRARIES}) foreach(LIB ${MYSQL_ADD_LIBRARIES})
find_library( MYSQL_LIBRARY find_library( MYSQL_LIBRARY
NAMES NAMES
mysql libmysql libmariadb ${LIB} mysql libmysql libmariadb ${LIB}
PATHS PATHS
${MYSQL_ADD_LIBRARIES_PATH} ${MYSQL_ADD_LIBRARIES_PATH}
/usr/lib /usr/lib
/usr/lib/mysql /usr/lib/mysql
/usr/local/lib /usr/local/lib
/usr/local/lib/mysql /usr/local/lib/mysql
/usr/local/mysql/lib /usr/local/mysql/lib
/usr/lib/x86_64-linux-gnu /usr/lib/x86_64-linux-gnu
DOC "Specify the location of the mysql library here." DOC "Specify the location of the mysql library here."
) )
endforeach(LIB ${MYSQL_ADD_LIBRARY}) endforeach(LIB ${MYSQL_ADD_LIBRARY})
endif( UNIX ) endif( UNIX )
if( WIN32 ) if( WIN32 )
find_library( MYSQL_LIBRARY find_library( MYSQL_LIBRARY
NAMES NAMES
libmysql libmysql
libmariadb libmariadb
PATHS PATHS
${MYSQL_ADD_LIBRARIES_PATH} ${MYSQL_ADD_LIBRARIES_PATH}
"${PROGRAM_FILES_64}/MySQL/MySQL Server 5.7/lib" "${PROGRAM_FILES_64}/MariaDB 10.3/lib"
"${PROGRAM_FILES_64}/MySQL/MySQL Server 5.7/lib/opt" "${PROGRAM_FILES_64}/MariaDB 10.4/lib"
"${PROGRAM_FILES_64}/MySQL/lib" "${PROGRAM_FILES_64}/MariaDB 10.5/lib"
"${PROGRAM_FILES_64}/MariaDB 10.3/lib" "${PROGRAM_FILES_64}/MariaDB 10.6/lib"
"${PROGRAM_FILES_64}/MariaDB 10.4/lib" "${PROGRAM_FILES_64}/MariaDB 10.7/lib"
"${PROGRAM_FILES_64}/MariaDB 10.5/lib" "${PROGRAM_FILES_64}/MariaDB 10.8/lib"
"${PROGRAM_FILES_64}/MariaDB 10.6/lib" "${PROGRAM_FILES_64}/MariaDB 10.9/lib"
"C:/MySQL/lib/debug" "${PROGRAM_FILES_64}/MySQL/MySQL Server 5.7/lib"
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\MySQL AB\\MySQL Server 5.7;Location]/lib" "${PROGRAM_FILES_64}/MySQL/MySQL Server 5.7/lib/opt"
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\MySQL AB\\MySQL Server 5.7;Location]/lib/opt" "${PROGRAM_FILES_64}/MySQL/lib"
"$ENV{ProgramFiles}/MySQL/MySQL Server 5.7/lib/opt" "C:/MySQL/lib/debug"
"$ENV{SystemDrive}/MySQL/MySQL Server 5.7/lib/opt" "[HKEY_LOCAL_MACHINE\\SOFTWARE\\MySQL AB\\MySQL Server 5.7;Location]/lib"
"c:/msys/local/include" "[HKEY_LOCAL_MACHINE\\SOFTWARE\\MySQL AB\\MySQL Server 5.7;Location]/lib/opt"
"$ENV{MYSQL_ROOT}/lib" "$ENV{ProgramFiles}/MySQL/MySQL Server 5.7/lib/opt"
DOC "Specify the location of the mysql library here." "$ENV{SystemDrive}/MySQL/MySQL Server 5.7/lib/opt"
) "c:/msys/local/include"
"$ENV{MYSQL_ROOT}/lib"
DOC "Specify the location of the mysql library here."
)
STRING( REGEX REPLACE "(.lib)$" ".dll" MYSQL_DLL ${MYSQL_LIBRARY} ) STRING( REGEX REPLACE "(.lib)$" ".dll" MYSQL_DLL ${MYSQL_LIBRARY} )
file(COPY ${MYSQL_DLL} file(COPY ${MYSQL_DLL}
DESTINATION "${CMAKE_CURRENT_BINARY_DIR}/bin/" ) DESTINATION "${CMAKE_CURRENT_BINARY_DIR}/bin/" )
endif( WIN32 ) endif( WIN32 )
@ -152,50 +158,51 @@ endif( WIN32 )
if( NOT WIN32 ) if( NOT WIN32 )
find_library( MYSQL_EXTRA_LIBRARIES find_library( MYSQL_EXTRA_LIBRARIES
NAMES NAMES
z zlib z zlib
PATHS PATHS
/usr/lib /usr/lib
/usr/local/lib /usr/local/lib
DOC DOC
"if more libraries are necessary to link in a MySQL client (typically zlib), specify them here." "if more libraries are necessary to link in a MySQL client (typically zlib), specify them here."
) )
else( NOT WIN32 ) else( NOT WIN32 )
set( MYSQL_EXTRA_LIBRARIES "" ) set( MYSQL_EXTRA_LIBRARIES "" )
endif( NOT WIN32 ) endif( NOT WIN32 )
if( UNIX ) if( UNIX )
find_program(MYSQL_EXECUTABLE mysql find_program(MYSQL_EXECUTABLE mysql
PATHS PATHS
${MYSQL_CONFIG_PREFER_PATH} ${MYSQL_CONFIG_PREFER_PATH}
/usr/local/mysql/bin/ /usr/local/mysql/bin/
/usr/local/bin/ /usr/local/bin/
/usr/bin/ /usr/bin/
DOC DOC
"path to your mysql binary." "path to your mysql binary."
) )
endif( UNIX ) endif( UNIX )
if( WIN32 ) if( WIN32 )
find_program(MYSQL_EXECUTABLE mysql find_program(MYSQL_EXECUTABLE mysql
PATHS PATHS
"${PROGRAM_FILES_64}/MySQL/MySQL Server 5.7/bin" "${PROGRAM_FILES_64}/MariaDB 10.3/bin"
"${PROGRAM_FILES_64}/MySQL/MySQL Server 5.7/bin/opt" "${PROGRAM_FILES_64}/MariaDB 10.4/bin"
"${PROGRAM_FILES_64}/MySQL/bin" "${PROGRAM_FILES_64}/MariaDB 10.5/bin"
"${PROGRAM_FILES_64}/MariaDB 10.3/bin" "${PROGRAM_FILES_64}/MariaDB 10.6/bin"
"${PROGRAM_FILES_64}/MariaDB 10.4/bin" "${PROGRAM_FILES_64}/MariaDB 10.7/bin"
"${PROGRAM_FILES_64}/MariaDB 10.5/bin" "${PROGRAM_FILES_64}/MySQL/MySQL Server 5.7/bin"
"${PROGRAM_FILES_64}/MariaDB 10.6/bin" "${PROGRAM_FILES_64}/MySQL/MySQL Server 5.7/bin/opt"
"C:/MySQL/bin/debug" "${PROGRAM_FILES_64}/MySQL/bin"
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\MySQL AB\\MySQL Server 5.7;Location]/bin" "C:/MySQL/bin/debug"
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\MySQL AB\\MySQL Server 5.7;Location]/bin/opt" "[HKEY_LOCAL_MACHINE\\SOFTWARE\\MySQL AB\\MySQL Server 5.7;Location]/bin"
"$ENV{ProgramFiles}/MySQL/MySQL Server 5.7/bin/opt" "[HKEY_LOCAL_MACHINE\\SOFTWARE\\MySQL AB\\MySQL Server 5.7;Location]/bin/opt"
"$ENV{SystemDrive}/MySQL/MySQL Server 5.7/bin/opt" "$ENV{ProgramFiles}/MySQL/MySQL Server 5.7/bin/opt"
"c:/msys/local/include" "$ENV{SystemDrive}/MySQL/MySQL Server 5.7/bin/opt"
"$ENV{MYSQL_ROOT}/bin" "c:/msys/local/include"
DOC "$ENV{MYSQL_ROOT}/bin"
"path to your mysql binary." DOC
) "path to your mysql binary."
)
endif( WIN32 ) endif( WIN32 )
if( MYSQL_LIBRARY ) if( MYSQL_LIBRARY )