From c7bf9d936a4d5920b6f0a7029a68a432a78bb574 Mon Sep 17 00:00:00 2001 From: Joerg-Christian Boehme <joerg@chaosdorf.de> Date: Thu, 2 Nov 2017 21:04:58 +0100 Subject: [PATCH] Add support for MariaDB client in cmake build system (#1972) --- cmake/FindMySQL.cmake | 50 ++++++++++++++++++++++++++++++++++++------- 1 file changed, 42 insertions(+), 8 deletions(-) diff --git a/cmake/FindMySQL.cmake b/cmake/FindMySQL.cmake index 64763d8bb..3defe8d92 100644 --- a/cmake/FindMySQL.cmake +++ b/cmake/FindMySQL.cmake @@ -14,6 +14,18 @@ find_path(MYSQL_INCLUDE_DIR mysql.h ${BINDIR32}/MySQL/include $ENV{SystemDrive}/MySQL/*/include) +if (NOT MYSQL_INCLUDE_DIR) + find_path(MARIADB_INCLUDE_DIR mysql.h + /usr/include/mariadb + /usr/local/include/mariadb + /opt/mariadb/mariadb/include + /opt/mariadb/mariadb/include/mariadb + /usr/local/mariadb/include + /usr/local/mariadb/include/mariadb + $ENV{MARIADB_INCLUDE_DIR} + $ENV{MARIADB_DIR}/include) +endif (NOT MYSQL_INCLUDE_DIR) + if (WIN32) if (CMAKE_BUILD_TYPE STREQUAL Debug) set(libsuffixDist debug) @@ -44,17 +56,39 @@ else (WIN32) $ENV{MYSQL_DIR}/libmysql_r/.libs $ENV{MYSQL_DIR}/lib $ENV{MYSQL_DIR}/lib/mysql) + + if (NOT MYSQL_LIB) + find_library(MARIADB_LIB NAMES mariadbclient + PATHS + /usr/lib/mariadb + /usr/local/lib/mariadb + /usr/local/mariadb/lib + /usr/local/mariadb/lib/mariadb + /opt/mariadb/mariadb/lib + /opt/mariadb/mariadb/lib/mariadb + $ENV{MARIADB_DIR}/libmariadb/.libs + $ENV{MARIADB_DIR}/lib + $ENV{MARIADB_DIR}/lib/mariadb) + endif (NOT MYSQL_LIB) endif (WIN32) -if(MYSQL_LIB) +if (MYSQL_INCLUDE_DIR AND MYSQL_LIB) get_filename_component(MYSQL_LIB_DIR ${MYSQL_LIB} PATH) -endif(MYSQL_LIB) - -if (MYSQL_INCLUDE_DIR AND MYSQL_LIB_DIR) set(MYSQL_FOUND TRUE) - message(STATUS "MySQL Include directory: ${MYSQL_INCLUDE_DIR} library directory: ${MYSQL_LIB_DIR}") + message(STATUS "Found MySQL Include directory: ${MYSQL_INCLUDE_DIR} library directory: ${MYSQL_LIB_DIR}") include_directories(${MYSQL_INCLUDE_DIR}) link_directories(${MYSQL_LIB_DIR}) -else (MYSQL_INCLUDE_DIR AND MYSQL_LIB_DIR) - message(STATUS "Couldn't find MySQL") -endif (MYSQL_INCLUDE_DIR AND MYSQL_LIB_DIR) +elseif((MARIADB_INCLUDE_DIR OR MYSQL_INCLUDE_DIR) AND MARIADB_LIB) + get_filename_component(MYSQL_LIB_DIR ${MARIADB_LIB} PATH) + set(MYSQL_FOUND TRUE) + set(MYSQL_LIB ${MARIADB_LIB}) + if(MARIADB_INCLUDE_DIR) + set(MYSQL_INCLUDE_DIR ${MARIADB_INCLUDE_DIR}) + endif(MARIADB_INCLUDE_DIR) + message(STATUS "Found MariaDB Include directory: ${MYSQL_INCLUDE_DIR} library directory: ${MYSQL_LIB_DIR}") + message(STATUS "Use MariaDB for MySQL Support") + include_directories(${MYSQL_INCLUDE_DIR} ) + link_directories(${MYSQL_LIB_DIR}) +else ((MARIADB_INCLUDE_DIR OR MYSQL_INCLUDE_DIR) AND MARIADB_LIB) + message(STATUS "Couldn't find MySQL or MariaDB") +endif (MYSQL_INCLUDE_DIR AND MYSQL_LIB)