added cmake script to find sqlite3

This commit is contained in:
Martin Brodbeck 2018-07-06 13:29:22 +02:00
parent 0104e72997
commit 6341bda810

66
cmake/FindSQLite3.cmake Normal file
View file

@ -0,0 +1,66 @@
#ckwg +4
# Copyright 2010 by Kitware, Inc. All Rights Reserved. Please refer to
# KITWARE_LICENSE.TXT for licensing information, or contact General Counsel,
# Kitware, Inc., 28 Corporate Drive, Clifton Park, NY 12065.
# Locate the system installed SQLite3
# The following variables will be set:
#
# SQLite3_FOUND - Set to true if SQLite3 can be found
# SQLite3_INCLUDE_DIR - The path to the SQLite3 header files
# SQLite3_LIBRARY - The full path to the SQLite3 library
if( SQLite3_DIR )
if( SQLite3_FIND_VERSION )
find_package( SQLite3 ${SQLite3_FIND_VERSION} NO_MODULE)
else()
find_package( SQLite3 NO_MODULE)
endif()
elseif( NOT SQLite3_FOUND )
message(STATUS "Searching for sqlite3.h")
find_path( SQLite3_INCLUDE_DIR sqlite3.h )
message(STATUS "Searching for sqlite3.h - ${SQLite3_INCLUDE_DIR}")
message(STATUS "Searching for libsqlite3")
find_library( SQLite3_LIBRARY sqlite3 )
message(STATUS "Searching for libsqlite3 - ${SQLite3_LIBRARY}")
include( FindPackageHandleStandardArgs )
FIND_PACKAGE_HANDLE_STANDARD_ARGS( SQLite3 SQLite3_INCLUDE_DIR SQLite3_LIBRARY )
if( SQLITE3_FOUND )
# Determine the SQLite version found
file( READ ${SQLite3_INCLUDE_DIR}/sqlite3.h SQLite3_INCLUDE_FILE )
string( REGEX REPLACE
".*# *define *SQLITE_VERSION *\\\"([0-9\\.]+)\\\".*" "\\1"
SQLite3_VERSION "${SQLite3_INCLUDE_FILE}" )
string( REGEX REPLACE
"([0-9]+)\\.[0-9]+\\.[0-9]+" "\\1"
SQLite3_VERSION_MAJOR "${SQLite3_VERSION}" )
string( REGEX REPLACE
"[0-9]+\\.([0-9]+)\\.[0-9]+" "\\1"
SQLite3_VERSION_MINOR "${SQLite3_VERSION}" )
string( REGEX REPLACE
"[0-9]+\\.[0-9]+\\.([0-9])+" "\\1"
SQLite3_VERSION_PATCH "${SQLite3_VERSION}" )
# Determine version compatibility
if( SQLite3_FIND_VERSION )
if( SQLite3_FIND_VERSION_EXACT )
if( SQLite3_FIND_VERSION VERSION_EQUAL SQLite3_VERSION )
message( STATUS "SQLite3 version: ${SQLite3_VERSION}" )
set( SQLite3_FOUND TRUE )
endif()
else()
if( (SQLite3_FIND_VERSION VERSION_LESS SQLite3_VERSION) OR
(SQLite3_FIND_VERSION VERSION_EQUAL SQLite3_VERSION) )
message( STATUS "SQLite3 version: ${SQLite3_VERSION}" )
set( SQLite3_FOUND TRUE )
endif()
endif()
else()
message( STATUS "SQLite3 version: ${SQLite3_VERSION}" )
set( SQLite3_FOUND TRUE )
endif()
unset( SQLITE3_FOUND )
endif()
endif()