diff options
Diffstat (limited to '3rdparty/mysql')
-rw-r--r-- | 3rdparty/mysql/CMakeLists.txt | 69 | ||||
-rw-r--r-- | 3rdparty/mysql/FindMYSQL.cmake | 35 |
2 files changed, 104 insertions, 0 deletions
diff --git a/3rdparty/mysql/CMakeLists.txt b/3rdparty/mysql/CMakeLists.txt new file mode 100644 index 000000000..f4996907f --- /dev/null +++ b/3rdparty/mysql/CMakeLists.txt @@ -0,0 +1,69 @@ + +# +# local copy +# +if( WIN32 ) +message( STATUS "Detecting local MYSQL" ) +find_path( MYSQL_LOCAL_INCLUDE_DIRS "mysql.h" + PATHS "${CMAKE_CURRENT_SOURCE_DIR}/include" + NO_DEFAULT_PATH ) +find_library( MYSQL_LOCAL_LIBRARIES + NAMES libmysql + PATHS "${CMAKE_CURRENT_SOURCE_DIR}/lib" + NO_DEFAULT_PATH ) +mark_as_advanced( MYSQL_LOCAL_LIBRARIES ) +mark_as_advanced( MYSQL_LOCAL_INCLUDE_DIRS ) + +if( MYSQL_LOCAL_LIBRARIES AND MYSQL_LOCAL_INCLUDE_DIRS ) + if( EXISTS "${MYSQL_LOCAL_INCLUDE_DIRS}/mysql_version.h" ) + file( STRINGS "${MYSQL_LOCAL_INCLUDE_DIRS}/mysql_version.h" MYSQL_VERSION_H REGEX "^#define MYSQL_SERVER_VERSION[ \t]+\"[^\"]+\".*$" ) + string( REGEX REPLACE "^.*MYSQL_SERVER_VERSION[ \t]+\"([^\"]+)\".*$" "\\1" MYSQL_SERVER_VERSION "${MYSQL_VERSION_H}" ) + message( STATUS "Found MYSQL: ${MYSQL_LOCAL_LIBRARIES} (found version ${MYSQL_SERVER_VERSION})" ) + else() + message( STATUS "Found MYSQL: ${MYSQL_LOCAL_LIBRARIES}" ) + endif() + set( HAVE_LOCAL_MYSQL ON + CACHE BOOL "mysql client is available as a local copy") + mark_as_advanced( HAVE_LOCAL_MYSQL ) +else() + foreach( _VAR MYSQL_LOCAL_LIBRARIES MYSQL_LOCAL_INCLUDE_DIRS ) + if( NOT "${_VAR}" ) + set( MISSING_VARS ${MISSING_VARS} ${_VAR} ) + endif() + endforeach() + message( STATUS "Could NOT find MYSQL (missing: ${MISSING_VARS})" ) + unset( HAVE_LOCAL_MYSQL CACHE ) +endif() +message( STATUS "Detecting local MYSQL - done" ) +endif( WIN32 ) + + +# +# system +# +message( STATUS "Detecting system MYSQL" ) +unset( MYSQL_LIBRARIES CACHE ) +unset( MYSQL_INCLUDE_DIRS CACHE ) +set( CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_MODULE_PATH} ) +find_package( MYSQL ) +set( MYSQL_SYSTEM_LIBRARIES "${MYSQL_LIBRARIES}" + CACHE PATH "system mysql libraries" ) +set( MYSQL_SYSTEM_INCLUDE_DIRS "${MYSQL_INCLUDE_DIRS}" + CACHE PATH "system mysql include directories" ) +mark_as_advanced( MYSQL_SYSTEM_LIBRARIES ) +mark_as_advanced( MYSQL_SYSTEM_INCLUDE_DIRS ) + +if( MYSQL_SYSTEM_LIBRARIES AND MYSQL_SYSTEM_INCLUDE_DIRS ) + set( HAVE_SYSTEM_MYSQL ON + CACHE BOOL "mysql client is available on the system" ) + mark_as_advanced( HAVE_SYSTEM_MYSQL ) +else() + unset( HAVE_SYSTEM_MYSQL CACHE ) +endif() +message( STATUS "Detecting system MYSQL - done" ) + + +# +# configure +# +CONFIGURE_WITH_LOCAL_OR_SYSTEM( MYSQL ) diff --git a/3rdparty/mysql/FindMYSQL.cmake b/3rdparty/mysql/FindMYSQL.cmake new file mode 100644 index 000000000..0a07f3612 --- /dev/null +++ b/3rdparty/mysql/FindMYSQL.cmake @@ -0,0 +1,35 @@ +# - Find mysqlclient +# Find the native MySQL includes and library +# +# MYSQL_INCLUDE_DIRS - where to find mysql.h, etc. +# MYSQL_LIBRARIES - mysqlclient library. +# MYSQL_FOUND - True if mysqlclient is found. +# + +find_path( MYSQL_INCLUDE_DIRS "mysql.h" + PATHS + "/usr/include/mysql" + "/usr/local/include/mysql" + "$ENV{PROGRAMFILES}/MySQL/*/include" + "$ENV{SYSTEMDRIVE}/MySQL/*/include" ) + +find_library( MYSQL_LIBRARIES + NAMES "mysqlclient" "mysqlclient_r" + PATHS + "/usr/lib/mysql" + "/usr/local/lib/mysql" + "$ENV{PROGRAMFILES}/MySQL/*/lib" + "$ENV{SYSTEMDRIVE}/MySQL/*/lib" ) +mark_as_advanced( MYSQL_LIBRARIES MYSQL_INCLUDE_DIRS ) + +if( MYSQL_INCLUDE_DIRS AND EXISTS "${MYSQL_INCLUDE_DIRS}/mysql_version.h" ) + file( STRINGS "${MYSQL_INCLUDE_DIRS}/mysql_version.h" MYSQL_VERSION_H REGEX "^#define[ \t]+MYSQL_SERVER_VERSION[ \t]+\"[^\"]+\".*$" ) + string( REGEX REPLACE "^.*MYSQL_SERVER_VERSION[ \t]+\"([^\"]+)\".*$" "\\1" MYSQL_VERSION_STRING "${MYSQL_VERSION_H}" ) +endif() + +# handle the QUIETLY and REQUIRED arguments and set MYSQL_FOUND to TRUE if +# all listed variables are TRUE +include( FindPackageHandleStandardArgs ) +FIND_PACKAGE_HANDLE_STANDARD_ARGS( MYSQL + REQUIRED_VARS MYSQL_LIBRARIES MYSQL_INCLUDE_DIRS + VERSION_VAR MYSQL_VERSION_STRING ) |