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)