[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: branches/work/predicate/cmake/modules
From: Jaroslaw Staniek <js () iidea ! pl>
Date: 2008-08-31 22:38:34
Message-ID: 1220222314.882878.26582.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 855501 by staniek:
-improve FindSQLite
-improve FindMySQL
(especially on Windows)
M +100 -14 FindMySQL.cmake
M +37 -18 FindSQLite.cmake
--- branches/work/predicate/cmake/modules/FindMySQL.cmake #855500:855501
@@ -1,13 +1,15 @@
-# - 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, Jarosław Staniek <staniek@kde.org>
+# 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.
@@ -15,24 +17,108 @@
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} )
--- branches/work/predicate/cmake/modules/FindSQLite.cmake #855500:855501
@@ -1,22 +1,41 @@
-# - Try to find the libsqlite libraries
+# - Try to find the SQLITE library
# Once done this will define
#
-# SQLite_FOUND - system has libsqlite
-# SQLITE_INCLUDE_DIR - the libsqlite include directory
-# SQLITE_LIBRARIES - libsqlite library
-FIND_PATH(SQLITE_INCLUDE_DIR sqlite3.h)
-FIND_LIBRARY(SQLITE_LIBRARIES NAMES sqlite3)
-if(SQLITE_INCLUDE_DIR AND SQLITE_LIBRARIES)
- set(SQLite_FOUND TRUE)
-endif(SQLITE_INCLUDE_DIR AND SQLITE_LIBRARIES)
+# SQLITE_FOUND - system has sqlite
+# SQLITE_INCLUDE_DIR - the sqlite include directory
+# SQLITE_LIBRARIES - Link these to use sqlite
+# SQLITE_DEFINITIONS - Compiler switches required for using sqlite
+#
-IF(SQLITE_INCLUDE_DIR AND SQLITE_LIBRARIES)
- SET(SQLite_FOUND 1)
- if(NOT SQLite_FIND_QUIETLY)
- message(STATUS "Found libsqlite: ${SQLITE_LIBRARIES}")
- endif(NOT SQLite_FIND_QUIETLY)
-ELSE(SQLITE_INCLUDE_DIR AND SQLITE_LIBRARIES)
- SET(SQLite_FOUND 0 CACHE BOOL "Not found sqlite library")
-ENDIF(SQLITE_INCLUDE_DIR AND SQLITE_LIBRARIES)
+if (SQLITE_INCLUDE_DIR AND SQLITE_LIBRARIES)
-MARK_AS_ADVANCED(SQLITE_INCLUDE_DIR SQLITE_LIBRARIES)
+ # in cache already
+ SET(SQLITE_FOUND TRUE)
+
+else (SQLITE_INCLUDE_DIR AND SQLITE_LIBRARIES)
+ IF (NOT WIN32)
+ # use pkg-config to get the directories and then use these values
+ # in the FIND_PATH() and FIND_LIBRARY() calls
+ INCLUDE(UsePkgConfig)
+
+ PKGCONFIG(sqlite3 _SQLITEIncDir _SQLITELinkDir _SQLITELinkFlags _SQLITECflags)
+
+ set(SQLITE_DEFINITIONS ${_SQLITECflags})
+ ENDIF (NOT WIN32)
+
+ FIND_PATH(SQLITE_INCLUDE_DIR sqlite3.h
+ ${_SQLITEIncDir}
+ )
+
+ FIND_LIBRARY(SQLITE_LIBRARIES NAMES sqlite3
+ PATHS
+ ${_SQLITELinkDir}
+ )
+
+
+ include(FindPackageHandleStandardArgs)
+ FIND_PACKAGE_HANDLE_STANDARD_ARGS(Sqlite DEFAULT_MSG SQLITE_INCLUDE_DIR SQLITE_LIBRARIES )
+
+ MARK_AS_ADVANCED(SQLITE_INCLUDE_DIR SQLITE_LIBRARIES)
+
+endif (SQLITE_INCLUDE_DIR AND SQLITE_LIBRARIES)
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic