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)