[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