From e4f408eb4aad7fb035847616debe68fe115e2ae4 Mon Sep 17 00:00:00 2001 From: "Travis A. Everett" Date: Tue, 16 Oct 2018 19:40:13 -0500 Subject: sqlite3: require sqlite >= 3.9.0 The generated schema is malformed in versions below 3.9.0. --- CMakeLists.txt | 5 ++++- cmake/FindSQLite3.cmake | 10 +++++++++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 1e0fb55..45c2f2c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -86,7 +86,10 @@ find_package(BISON REQUIRED) find_package(Threads) if (sqlite3) - find_package(SQLite3 REQUIRED) + find_package(SQLite3 REQUIRED) + if (SQLITE3_VERSION VERSION_LESS 3.9.0) + message(SEND_ERROR "Doxygen requires at least sqlite3 version 3.9.0 (installed: ${SQLITE3_VERSION})") + endif() endif() find_package(Iconv REQUIRED) diff --git a/cmake/FindSQLite3.cmake b/cmake/FindSQLite3.cmake index 77b8eb4..45cc212 100644 --- a/cmake/FindSQLite3.cmake +++ b/cmake/FindSQLite3.cmake @@ -71,8 +71,16 @@ else (SQLITE3_LIBRARIES AND SQLITE3_INCLUDE_DIRS) endif (SQLITE3_INCLUDE_DIRS AND SQLITE3_LIBRARIES) if (SQLITE3_FOUND) + + # Extract version from header file + find_file(SQLITE3_HEADER "sqlite3.h" HINTS ${SQLITE3_INCLUDE_DIRS}) + if(SQLITE3_HEADER) + file(STRINGS "${SQLITE3_HEADER}" _DEF_TMP REGEX "^#define SQLITE_VERSION +\\\"[^\\\"]+\\\"") + string (REGEX REPLACE ".*\\\"(([0-9]+[.]?)+).*" "\\1" SQLITE3_VERSION "${_DEF_TMP}") + endif (SQLITE3_HEADER) + if (NOT Sqlite3_FIND_QUIETLY) - message(STATUS "Found Sqlite3: ${SQLITE3_LIBRARIES}") + message(STATUS "Found Sqlite3: ${SQLITE3_LIBRARIES} (found version \"${SQLITE3_VERSION}\")") endif (NOT Sqlite3_FIND_QUIETLY) else (SQLITE3_FOUND) if (Sqlite3_FIND_REQUIRED) -- cgit v0.12