diff options
author | Jarosław Staniek <staniek@kde.org> | 2008-11-08 17:06:19 +0000 |
---|---|---|
committer | Jarosław Staniek <staniek@kde.org> | 2008-11-08 17:06:19 +0000 |
commit | bbf81d6e9d7e8d520fe01850a975a257e7c71754 (patch) | |
tree | 76f8bf799c5fa2826eb1b1e6f2b4dccaf70ec41c | |
parent | b8f83af168a2547676827542964508ec62f44cc9 (diff) | |
download | extra-cmake-modules-bbf81d6e9d7e8d520fe01850a975a257e7c71754.tar.gz extra-cmake-modules-bbf81d6e9d7e8d520fe01850a975a257e7c71754.tar.bz2 |
detection on mysql much improved, esp. on Windows (taken form branches/work/predicate)
svn path=/trunk/KDE/kdelibs/; revision=881641
-rw-r--r-- | modules/FindMySQL.cmake | 116 |
1 files changed, 102 insertions, 14 deletions
diff --git a/modules/FindMySQL.cmake b/modules/FindMySQL.cmake index 21604c73..4d32661c 100644 --- a/modules/FindMySQL.cmake +++ b/modules/FindMySQL.cmake @@ -1,36 +1,124 @@ -# - Find MySQL / MySQL Embedded +# - Try to find MySQL / MySQL Embedded library # Find the MySQL includes and client library # This module defines # MYSQL_INCLUDE_DIR, where to find mysql.h # MYSQL_LIBRARIES, the libraries needed to use MySQL. +# MYSQL_LIB_DIR, path to the MYSQL_LIBRARIES # MYSQL_EMBEDDED_LIBRARIES, the libraries needed to use MySQL Embedded. +# MYSQL_EMBEDDED_LIB_DIR, path to the MYSQL_EMBEDDED_LIBRARIES # MYSQL_FOUND, If false, do not try to use MySQL. # MYSQL_EMBEDDED_FOUND, If false, do not try to use MySQL Embedded. -# Copyright (c) 2006, Jaroslaw Staniek, <js@iidea.pl> +# Copyright (c) 2006-2008, Jarosław Staniek <staniek@kde.org> # # Redistribution and use is allowed according to the terms of the BSD license. # For details see the accompanying COPYING-CMAKE-SCRIPTS file. +include(CheckCXXSourceCompiles) +include(MacroPushRequiredVars) -find_path(MYSQL_INCLUDE_DIR mysql.h - /usr/include/mysql - /usr/local/include/mysql -) +if(WIN32) + find_path(MYSQL_INCLUDE_DIR mysql.h + PATHS + $ENV{MYSQL_INCLUDE_DIR} + $ENV{MYSQL_DIR}/include + $ENV{ProgramFiles}/MySQL/*/include + $ENV{SystemDrive}/MySQL/*/include + ) +else(WIN32) + find_path(MYSQL_INCLUDE_DIR mysql.h + PATHS + $ENV{MYSQL_INCLUDE_DIR} + $ENV{MYSQL_DIR}/include + /usr/include/mysql + /usr/local/include/mysql + /usr/local/mysql/include + /usr/local/mysql/include/mysql + /opt/mysql/mysql/include + /opt/mysql/mysql/include/mysql + ) +endif(WIN32) -find_library(MYSQL_LIBRARIES NAMES mysqlclient - PATHS - /usr/lib/mysql - /usr/local/lib/mysql -) +if(WIN32) + # path suffix for debug/release mode + # binary_dist: mysql binary distribution + # build_dist: custom build + if(CMAKE_BUILD_TYPE STREQUAL "Debug") + set(binary_dist debug) + set(build_dist Debug) + else(CMAKE_BUILD_TYPE STREQUAL "Debug") + ADD_DEFINITIONS(-DDBUG_OFF) + set(binary_dist opt) + set(build_dist Release) + endif(CMAKE_BUILD_TYPE STREQUAL "Debug") + +# find_library(MYSQL_LIBRARIES NAMES mysqlclient + find_library(MYSQL_LIBRARIES NAMES libmysql + PATHS + $ENV{MYSQL_DIR}/lib/${binary_dist} + $ENV{MYSQL_DIR}/libmysql/${build_dist} + $ENV{MYSQL_DIR}/client/${build_dist} + $ENV{ProgramFiles}/MySQL/*/lib/${binary_dist} + $ENV{SystemDrive}/MySQL/*/lib/${binary_dist} + ) +else(WIN32) +# find_library(MYSQL_LIBRARIES NAMES mysqlclient + find_library(MYSQL_LIBRARIES NAMES libmysql + PATHS + $ENV{MYSQL_DIR}/libmysql_r/.libs + $ENV{MYSQL_DIR}/lib + $ENV{MYSQL_DIR}/lib/mysql + /usr/lib/mysql + /usr/local/lib/mysql + /usr/local/mysql/lib + /usr/local/mysql/lib/mysql + /opt/mysql/mysql/lib + /opt/mysql/mysql/lib/mysql + ) +endif(WIN32) + +if(WIN32) + set(MYSQL_LIB_PATHS + $ENV{MYSQL_DIR}/lib/opt + $ENV{MYSQL_DIR}/client/release + $ENV{ProgramFiles}/MySQL/*/lib/opt + $ENV{SystemDrive}/MySQL/*/lib/opt + ) + find_library(MYSQL_LIBRARIES NAMES mysqlclient + PATHS + ${MYSQL_LIB_PATHS} + ) +else(WIN32) + set(MYSQL_LIB_PATHS + $ENV{MYSQL_DIR}/libmysql_r/.libs + $ENV{MYSQL_DIR}/lib + $ENV{MYSQL_DIR}/lib/mysql + /usr/lib/mysql + /usr/local/lib/mysql + /usr/local/mysql/lib + /usr/local/mysql/lib/mysql + /opt/mysql/mysql/lib + /opt/mysql/mysql/lib/mysql + ) + find_library(MYSQL_LIBRARIES NAMES mysqlclient + PATHS + ${MYSQL_LIB_PATHS} + ) +endif(WIN32) find_library(MYSQL_EMBEDDED_LIBRARIES NAMES mysqld PATHS - /usr/lib/mysql - /usr/local/lib/mysql - /opt/mysql/lib/mysql + ${MYSQL_LIB_PATHS} ) +if(MYSQL_LIBRARIES) + get_filename_component(MYSQL_LIB_DIR ${MYSQL_LIBRARIES} PATH) +endif(MYSQL_LIBRARIES) + +if(MYSQL_EMBEDDED_LIBRARIES) + get_filename_component(MYSQL_EMBEDDED_LIB_DIR ${MYSQL_EMBEDDED_LIBRARIES} PATH) +endif(MYSQL_EMBEDDED_LIBRARIES) + macro_push_required_vars() set( CMAKE_REQUIRED_INCLUDES ${MYSQL_INCLUDE_DIR} ) set( CMAKE_REQUIRED_LIBRARIES ${MYSQL_EMBEDDED_LIBRARIES} ) |