summaryrefslogtreecommitdiff
path: root/cmake/FindMySQL.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'cmake/FindMySQL.cmake')
-rw-r--r--cmake/FindMySQL.cmake73
1 files changed, 51 insertions, 22 deletions
diff --git a/cmake/FindMySQL.cmake b/cmake/FindMySQL.cmake
index dd1e706..453ea43 100644
--- a/cmake/FindMySQL.cmake
+++ b/cmake/FindMySQL.cmake
@@ -13,7 +13,7 @@
# Redistribution and use is allowed according to the terms of the BSD license.
-if(UNIX)
+if(UNIX)
set(MYSQL_CONFIG_PREFER_PATH "$ENV{MYSQL_HOME}/bin" CACHE FILEPATH
"preferred path to MySQL (mysql_config)")
find_program(MYSQL_CONFIG mysql_config
@@ -22,8 +22,8 @@ if(UNIX)
/usr/local/bin/
/usr/bin/
)
-
- if(MYSQL_CONFIG)
+
+ if(MYSQL_CONFIG)
message(STATUS "Using mysql-config: ${MYSQL_CONFIG}")
# set INCLUDE_DIR
exec_program(${MYSQL_CONFIG}
@@ -62,33 +62,58 @@ if(UNIX)
else(UNIX)
if (WIN32)
set(MYSQL_ADD_LIBRARIES "")
- list(APPEND MYSQL_ADD_LIBRARIES "mysql")
+ list(APPEND MYSQL_ADD_LIBRARIES "mysqlclient")
endif (WIN32)
set(MYSQL_ADD_INCLUDE_DIR "c:/msys/local/include" CACHE FILEPATH INTERNAL)
set(MYSQL_ADD_LIBRARY_PATH "c:/msys/local/lib" CACHE FILEPATH INTERNAL)
ENDIF(UNIX)
-find_path(MYSQL_INCLUDE_DIR mysql.h
- /usr/local/include
- /usr/local/include/mysql
- /usr/local/mysql/include
- /usr/local/mysql/include/mysql
- /usr/include
- /usr/include/mysql
- ${MYSQL_ADD_INCLUDE_DIR}
-)
+if (WIN32)
+ find_path(MYSQL_INCLUDE_DIR mysql.h
+ /usr/local/include
+ /usr/local/include/mysql
+ /usr/local/mysql/include
+ /usr/local/mysql/include/mysql
+ /usr/include
+ /usr/include/mysql
+ $ENV{MYSQL_DIR}/include
+ $ENV{ProgramFiles}/MySQL/*/include
+ $ENV{SystemDrive}/MySQL/*/include
+ "C:/Program Files/MySQL/*/include"
+ ${MYSQL_ADD_INCLUDE_DIR}
+ )
+else()
+ find_path(MYSQL_INCLUDE_DIR mysql.h
+ /usr/local/include
+ /usr/local/include/mysql
+ /usr/local/mysql/include
+ /usr/local/mysql/include/mysql
+ /usr/include
+ /usr/include/mysql
+ ${MYSQL_ADD_INCLUDE_DIR}
+ )
+endif()
set(TMP_MYSQL_LIBRARIES "")
foreach(LIB ${MYSQL_ADD_LIBRARIES})
- find_library("MYSQL_LIBRARIES_${LIB}" NAMES ${LIB}
- PATHS
- ${MYSQL_ADD_LIBRARY_PATH}
- /usr/lib/mysql
- /usr/local/lib
- /usr/local/lib/mysql
- /usr/local/mysql/lib
- )
+ if (WIN32)
+ find_library("MYSQL_LIBRARIES_${LIB}" NAMES ${LIB}
+ PATHS
+ ${MYSQL_ADD_LIBRARY_PATH}
+ /usr/lib/mysql
+ /usr/local/lib
+ /usr/local/lib/mysql
+ /usr/local/mysql/lib
+ $ENV{MYSQL_DIR}/lib/opt
+ $ENV{ProgramFiles}/MySQL/*/lib
+ $ENV{SystemDrive}/MySQL/*/lib
+ "C:/Program Files/MySQL/*/lib"
+ $ENV{ProgramFiles}/MySQL/*/lib/opt
+ $ENV{SystemDrive}/MySQL/*/lib/opt
+ "C:/Program Files/MySQL/*/lib/opt"
+ )
+ endif()
list(APPEND TMP_MYSQL_LIBRARIES "${MYSQL_LIBRARIES_${LIB}}")
endforeach(LIB ${MYSQL_ADD_LIBRARIES})
@@ -98,8 +123,12 @@ else (TMP_MYSQL_LIBRARIES)
set(MYSQL_LIBRARIES ${TMP_MYSQL_LIBRARIES} CACHE FILEPATH "MySQL Libraries")
endif (TMP_MYSQL_LIBRARIES)
+
if(MYSQL_INCLUDE_DIR AND MYSQL_LIBRARIES)
- set(MYSQL_FOUND TRUE CACHE INTERNAL "MySQL found")
+ include(MacroCheckLibraryWorks)
+ CHECK_LIBRARY_WORKS("mysql.h" "mysql_errno(0);" "${MYSQL_INCLUDE_DIR}" "${MYSQL_LIBRARIES}" "MYSQL_WORKS")
+
+ set(MYSQL_FOUND ${MYSQL_WORKS} CACHE INTERNAL "MySQL found")
message(STATUS "Found MySQL: ${MYSQL_INCLUDE_DIR}, ${MYSQL_LIBRARIES}")
else(MYSQL_INCLUDE_DIR AND MYSQL_LIBRARIES)
set(MYSQL_FOUND FALSE CACHE INTERNAL "MySQL found")