Warning, /office/kexi/cmake/modules/FindMySQL.cmake is written in an unsupported language. File is not indexed.

0001 # - Try to find MySQL / MySQL Embedded library
0002 # Find the MySQL includes and client library
0003 # This module defines
0004 #  MYSQL_INCLUDE_DIR, where to find mysql.h
0005 #  MYSQL_LIBRARIES, the libraries needed to use MySQL.
0006 #  MYSQL_LIB_DIR, path to the MYSQL_LIBRARIES
0007 #  MYSQL_EMBEDDED_LIBRARIES, the libraries needed to use MySQL Embedded.
0008 #  MYSQL_EMBEDDED_LIB_DIR, path to the MYSQL_EMBEDDED_LIBRARIES
0009 #  MySQL_FOUND, If false, do not try to use MySQL.
0010 #  MySQL_Embedded_FOUND, If false, do not try to use MySQL Embedded.
0011 
0012 # Copyright (c) 2006-2008, Jarosław Staniek <staniek@kde.org>
0013 #
0014 # Redistribution and use is allowed according to the terms of the BSD license.
0015 # For details see the accompanying COPYING-CMAKE-SCRIPTS file.
0016 
0017 include(CheckCXXSourceCompiles)
0018 include(MacroPushRequiredVars)
0019 include(FeatureSummary)
0020 set_package_properties(MySQL PROPERTIES
0021     DESCRIPTION "MySQL Client Library (libmysqlclient)" URL "http://www.mysql.com")
0022 
0023 if(WIN32)
0024    find_path(MYSQL_INCLUDE_DIR mysql.h
0025       PATHS
0026       $ENV{MYSQL_INCLUDE_DIR}
0027       $ENV{MYSQL_DIR}/include/mysql
0028       $ENV{ProgramW6432}/MySQL/*/include/mysql
0029       $ENV{ProgramFiles}/MySQL/*/include/mysql
0030       $ENV{SystemDrive}/MySQL/*/include/mysql
0031       $ENV{ProgramW6432}/*/include/mysql # MariaDB
0032       $ENV{ProgramFiles}/*/include/mysql # MariaDB
0033    )
0034 else()
0035    # use pkg-config to get the directories and then use these values
0036    # in the FIND_PATH() and FIND_LIBRARY() calls
0037    find_package(PkgConfig)
0038    pkg_check_modules(PC_MYSQL QUIET mysql mariadb)
0039    if(PC_MYSQL_VERSION)
0040        set(MySQL_VERSION_STRING ${PC_MYSQL_VERSION})
0041    endif()
0042 
0043    find_path(MYSQL_INCLUDE_DIR mysql.h
0044       PATHS
0045       $ENV{MYSQL_INCLUDE_DIR}
0046       $ENV{MYSQL_DIR}/include
0047       ${PC_MYSQL_INCLUDEDIR}
0048       ${PC_MYSQL_INCLUDE_DIRS}
0049       /usr/local/mysql/include
0050       /opt/mysql/mysql/include
0051       PATH_SUFFIXES
0052       mysql
0053    )
0054 endif()
0055 
0056 if(WIN32)
0057    string(TOLOWER ${CMAKE_BUILD_TYPE} CMAKE_BUILD_TYPE_TOLOWER)
0058 
0059    # path suffix for debug/release mode
0060    # binary_dist: mysql binary distribution
0061    # build_dist: custom build
0062    if(CMAKE_BUILD_TYPE_TOLOWER MATCHES "debug")
0063       set(binary_dist debug)
0064       set(build_dist Debug)
0065    else()
0066       add_definitions(-DDBUG_OFF)
0067       set(binary_dist opt)
0068       set(build_dist Release)
0069    endif()
0070 
0071    set(MYSQL_LIB_PATHS
0072       $ENV{MYSQL_DIR}/lib/${binary_dist}
0073       $ENV{MYSQL_DIR}/libmysql/${build_dist}
0074       $ENV{MYSQL_DIR}/client/${build_dist}
0075       $ENV{ProgramW6432}/MySQL/*/lib/${binary_dist}
0076       $ENV{ProgramFiles}/MySQL/*/lib/${binary_dist}
0077       $ENV{SystemDrive}/MySQL/*/lib/${binary_dist}
0078       $ENV{ProgramW6432}/*/lib # MariaDB
0079       $ENV{ProgramFiles}/*/lib # MariaDB
0080    )
0081    find_library(_LIBMYSQL_LIBRARY NAMES libmysql
0082       PATHS ${MYSQL_LIB_PATHS}
0083    )
0084    find_library(_MYSQLCLIENT_LIBRARY NAMES mysqlclient
0085       PATHS ${MYSQL_LIB_PATHS}
0086    )
0087    set(MYSQL_LIBRARIES ${_LIBMYSQL_LIBRARY} ${_MYSQLCLIENT_LIBRARY})
0088 else()
0089    find_library(_MYSQLCLIENT_LIBRARY NAMES mysqlclient
0090       PATHS
0091       $ENV{MYSQL_DIR}/libmysql_r/.libs
0092       $ENV{MYSQL_DIR}/lib
0093       $ENV{MYSQL_DIR}/lib/mysql
0094       ${PC_MYSQL_LIBDIR}
0095       ${PC_MYSQL_LIBRARY_DIRS}
0096       PATH_SUFFIXES
0097       mysql
0098    )
0099    set(MYSQL_LIBRARIES ${_MYSQLCLIENT_LIBRARY})
0100 endif()
0101 
0102 if(_LIBMYSQL_LIBRARY)
0103    get_filename_component(MYSQL_LIB_DIR ${_LIBMYSQL_LIBRARY} PATH)
0104    unset(_LIBMYSQL_LIBRARY)
0105 endif()
0106 if(_MYSQLCLIENT_LIBRARY)
0107     if(NOT MYSQL_LIB_DIR)
0108         get_filename_component(MYSQL_LIB_DIR ${_MYSQLCLIENT_LIBRARY} PATH)
0109     endif()
0110     unset(_MYSQLCLIENT_LIBRARY)
0111 endif()
0112 
0113 find_library(MYSQL_EMBEDDED_LIBRARIES NAMES mysqld
0114    PATHS
0115    ${MYSQL_LIB_PATHS}
0116 )
0117 
0118 if(MYSQL_EMBEDDED_LIBRARIES)
0119    get_filename_component(MYSQL_EMBEDDED_LIB_DIR ${MYSQL_EMBEDDED_LIBRARIES} PATH)
0120 
0121     macro_push_required_vars()
0122     set( CMAKE_REQUIRED_INCLUDES ${MYSQL_INCLUDE_DIR} )
0123     set( CMAKE_REQUIRED_LIBRARIES ${MYSQL_EMBEDDED_LIBRARIES} )
0124     check_cxx_source_compiles( "#include <mysql.h>\nint main() { int i = MYSQL_OPT_USE_EMBEDDED_CONNECTION; }" HAVE_MYSQL_OPT_EMBEDDED_CONNECTION )
0125     macro_pop_required_vars()
0126 endif()
0127 
0128 # Did we find anything?
0129 include(FindPackageHandleStandardArgs)
0130 
0131 find_package_handle_standard_args(MySQL
0132                                   REQUIRED_VARS MYSQL_LIBRARIES MYSQL_INCLUDE_DIR MYSQL_LIB_DIR
0133                                   VERSION_VAR MySQL_VERSION_STRING)
0134 if(MYSQL_EMBEDDED_LIBRARIES AND MYSQL_EMBEDDED_LIB_DIR AND HAVE_MYSQL_OPT_EMBEDDED_CONNECTION)
0135     find_package_handle_standard_args(MySQL_Embedded
0136                                   REQUIRED_VARS MYSQL_EMBEDDED_LIBRARIES MYSQL_INCLUDE_DIR
0137                                                 MYSQL_EMBEDDED_LIB_DIR
0138                                                 HAVE_MYSQL_OPT_EMBEDDED_CONNECTION)
0139 endif()
0140 
0141 mark_as_advanced(MYSQL_INCLUDE_DIR MYSQL_LIBRARIES MYSQL_LIB_DIR
0142                  MYSQL_EMBEDDED_LIBRARIES MYSQL_EMBEDDED_LIB_DIR HAVE_MYSQL_OPT_EMBEDDED_CONNECTION)