Warning, /pim/akonadi/cmake/modules/FindSqlite.cmake is written in an unsupported language. File is not indexed.
0001 # 0002 # - Try to find Sqlite 0003 # Once done this will define 0004 # 0005 # SQLITE_FOUND - system has Sqlite 0006 # SQLITE_INCLUDE_DIR - the Sqlite include directory 0007 # SQLITE_LIBRARIES - Link these to use Sqlite 0008 # SQLITE_MIN_VERSION - The minimum SQLite version 0009 # 0010 # SPDX-FileCopyrightText: 2008 Gilles Caulier <caulier.gilles@gmail.com> 0011 # SPDX-FileCopyrightText: 2010 Christophe Giboudeaux <cgiboudeaux@gmail.com> 0012 # SPDX-FileCopyrightText: 2014 Daniel Vrátil <dvratil@redhat.com> 0013 # 0014 # SPDX-License-Identifier: BSD-3-Clause 0015 # 0016 if(NOT SQLITE_MIN_VERSION) 0017 set(SQLITE_MIN_VERSION "3.6.16") 0018 endif(NOT SQLITE_MIN_VERSION) 0019 0020 if ( SQLITE_INCLUDE_DIR AND SQLITE_LIBRARIES ) 0021 # in cache already 0022 SET(Sqlite_FIND_QUIETLY TRUE) 0023 endif ( SQLITE_INCLUDE_DIR AND SQLITE_LIBRARIES ) 0024 0025 # use pkg-config to get the directories and then use these values 0026 # in the FIND_PATH() and FIND_LIBRARY() calls 0027 if( NOT WIN32 ) 0028 find_package(PkgConfig) 0029 0030 pkg_check_modules(PC_SQLITE sqlite3) 0031 0032 set(SQLITE_DEFINITIONS ${PC_SQLITE_CFLAGS_OTHER}) 0033 endif( NOT WIN32 ) 0034 0035 if(PC_SQLITE_FOUND) 0036 find_path(SQLITE_INCLUDE_DIR 0037 NAMES sqlite3.h 0038 PATHS ${PC_SQLITE_INCLUDEDIR} 0039 NO_DEFAULT_PATH 0040 ) 0041 0042 find_library(SQLITE_LIBRARIES 0043 NAMES sqlite3 0044 PATHS ${PC_SQLITE_LIBDIR} 0045 NO_DEFAULT_PATH 0046 ) 0047 else(PC_SQLITE_FOUND) 0048 find_path(SQLITE_INCLUDE_DIR 0049 NAMES sqlite3.h 0050 ) 0051 0052 find_library(SQLITE_LIBRARIES 0053 NAMES sqlite3 0054 ) 0055 endif(PC_SQLITE_FOUND) 0056 0057 if( UNIX ) 0058 find_file(SQLITE_STATIC_LIBRARIES 0059 libsqlite3.a 0060 ${PC_SQLITE_LIBDIR} 0061 ) 0062 else( UNIX ) 0063 # todo find static libs for other systems 0064 # fallback to standard libs 0065 set( SQLITE_STATIC_LIBRARIES ${SQLITE_LIBRARIES} ) 0066 endif( UNIX ) 0067 0068 if(EXISTS ${SQLITE_INCLUDE_DIR}/sqlite3.h) 0069 file(READ ${SQLITE_INCLUDE_DIR}/sqlite3.h SQLITE3_H_CONTENT) 0070 string(REGEX MATCH "SQLITE_VERSION[ ]*\"[0-9.]*\"\n" SQLITE_VERSION_MATCH "${SQLITE3_H_CONTENT}") 0071 0072 if(SQLITE_VERSION_MATCH) 0073 string(REGEX REPLACE ".*SQLITE_VERSION[ ]*\"(.*)\"\n" "\\1" SQLITE_VERSION ${SQLITE_VERSION_MATCH}) 0074 0075 if(SQLITE_VERSION VERSION_LESS "${SQLITE_MIN_VERSION}") 0076 message(STATUS "Sqlite ${SQLITE_VERSION} was found, but at least version ${SQLITE_MIN_VERSION} is required") 0077 set(SQLITE_VERSION_OK FALSE) 0078 else(SQLITE_VERSION VERSION_LESS "${SQLITE_MIN_VERSION}") 0079 set(SQLITE_VERSION_OK TRUE) 0080 endif(SQLITE_VERSION VERSION_LESS "${SQLITE_MIN_VERSION}") 0081 0082 endif(SQLITE_VERSION_MATCH) 0083 0084 if (SQLITE_VERSION_OK) 0085 file(WRITE ${CMAKE_BINARY_DIR}/sqlite_check_unlock_notify.cpp 0086 "#include <sqlite3.h> 0087 int main(int argc, char **argv) { 0088 return sqlite3_unlock_notify(0, 0, 0); 0089 }") 0090 try_compile(SQLITE_HAS_UNLOCK_NOTIFY 0091 ${CMAKE_BINARY_DIR}/sqlite_check_unlock_notify 0092 ${CMAKE_BINARY_DIR}/sqlite_check_unlock_notify.cpp 0093 LINK_LIBRARIES ${SQLITE_LIBRARIES} 0094 CMAKE_FLAGS "-DINCLUDE_DIRECTORIES:PATH=${SQLITE_INCLUDE_DIR}") 0095 if (NOT SQLITE_HAS_UNLOCK_NOTIFY) 0096 message(STATUS "Sqlite ${SQLITE_VERSION} was found, but it is not compiled with -DSQLITE_ENABLE_UNLOCK_NOTIFY") 0097 endif() 0098 endif() 0099 endif() 0100 0101 include(FindPackageHandleStandardArgs) 0102 find_package_handle_standard_args( Sqlite DEFAULT_MSG 0103 SQLITE_INCLUDE_DIR 0104 SQLITE_LIBRARIES 0105 SQLITE_VERSION_OK 0106 SQLITE_HAS_UNLOCK_NOTIFY) 0107 0108 if(Sqlite_FOUND AND NOT TARGET Sqlite::Sqlite) 0109 add_library(Sqlite::Sqlite UNKNOWN IMPORTED) 0110 set_target_properties(Sqlite::Sqlite PROPERTIES 0111 IMPORTED_LOCATION "${SQLITE_LIBRARIES}" 0112 INTERFACE_INCLUDE_DIRECTORIES "${SQLITE_INCLUDE_DIR}" 0113 ) 0114 endif() 0115 0116 # show the SQLITE_INCLUDE_DIR and SQLITE_LIBRARIES variables only in the advanced view 0117 mark_as_advanced( SQLITE_INCLUDE_DIR SQLITE_LIBRARIES ) 0118