From 78f7de3ad57f411225843b062b5d0921d53f1241 Mon Sep 17 00:00:00 2001
From: Ben Boeckel <ben.boeckel@kitware.com>
Date: Wed, 7 Nov 2018 10:35:01 -0500
Subject: [PATCH] FindSQLite3: backport from CMake 3.14

---
 CMake/FindSQLite3.cmake            | 22 ----------
 CMake/patches/99/FindSQLite3.cmake | 66 ++++++++++++++++++++++++++++++
 2 files changed, 66 insertions(+), 22 deletions(-)
 delete mode 100644 CMake/FindSQLite3.cmake
 create mode 100644 CMake/patches/99/FindSQLite3.cmake

diff --git a/CMake/FindSQLite3.cmake b/CMake/FindSQLite3.cmake
deleted file mode 100644
index 7933ba7cc3a..00000000000
--- a/CMake/FindSQLite3.cmake
+++ /dev/null
@@ -1,22 +0,0 @@
-find_path(SQLite3_INCLUDE_DIR NAMES sqlite3.h)
-
-get_filename_component(POSSIBLE_SQLite_ROOT "${SQLite3_INCLUDE_DIR}" DIRECTORY)
-
-find_library(SQLite3_LIBRARY
-  NAMES sqlite3
-  HINTS ${POSSIBLE_SQLite_ROOT}/lib
-        ${POSSIBLE_SQLite_ROOT}/lib64)
-
-
-set(SQLite3_LIBRARIES ${SQLite3_LIBRARY})
-
-add_library(sqlite3::sqlite3 UNKNOWN IMPORTED)
-set_target_properties(sqlite3::sqlite3
-  PROPERTIES
-    IMPORTED_LOCATION ${SQLite3_LIBRARY}
-    INTERFACE_INCLUDE_DIRECTORIES ${SQLite3_INCLUDE_DIR})
-
-include(FindPackageHandleStandardArgs)
-find_package_handle_standard_args(SQLite3 DEFAULT_MSG SQLite3_LIBRARY SQLite3_INCLUDE_DIR)
-
-mark_as_advanced(SQLite3_INCLUDE_DIR SQLite3_LIBRARY)
diff --git a/CMake/patches/99/FindSQLite3.cmake b/CMake/patches/99/FindSQLite3.cmake
new file mode 100644
index 00000000000..c144ca1d8fb
--- /dev/null
+++ b/CMake/patches/99/FindSQLite3.cmake
@@ -0,0 +1,66 @@
+# Distributed under the OSI-approved BSD 3-Clause License.  See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+#[=======================================================================[.rst:
+FindSQLite3
+-----------
+
+Find the SQLite libraries, v3
+
+IMPORTED targets
+^^^^^^^^^^^^^^^^
+
+This module defines the following :prop_tgt:`IMPORTED` target:
+
+``SQLite::SQLite3``
+
+Result variables
+^^^^^^^^^^^^^^^^
+
+This module will set the following variables if found:
+
+``SQLite3_INCLUDE_DIRS``
+  where to find sqlite3.h, etc.
+``SQLite3_LIBRARIES``
+  the libraries to link against to use SQLite3.
+``SQLite3_VERSION``
+  version of the SQLite3 library found
+``SQLite3_FOUND``
+  TRUE if found
+
+#]=======================================================================]
+
+# Look for the necessary header
+find_path(SQLite3_INCLUDE_DIR NAMES sqlite3.h)
+mark_as_advanced(SQLite3_INCLUDE_DIR)
+
+# Look for the necessary library
+find_library(SQLite3_LIBRARY NAMES sqlite3 sqlite)
+mark_as_advanced(SQLite3_LIBRARY)
+
+# Extract version information from the header file
+if(SQLite3_INCLUDE_DIR)
+    file(STRINGS ${SQLite3_INCLUDE_DIR}/sqlite3.h _ver_line
+         REGEX "^#define SQLITE_VERSION  *\"[0-9]+\\.[0-9]+\\.[0-9]+\""
+         LIMIT_COUNT 1)
+    string(REGEX MATCH "[0-9]+\\.[0-9]+\\.[0-9]+"
+           SQLite3_VERSION "${_ver_line}")
+    unset(_ver_line)
+endif()
+
+include(FindPackageHandleStandardArgs)
+find_package_handle_standard_args(SQLite3
+    REQUIRED_VARS SQLite3_INCLUDE_DIR SQLite3_LIBRARY
+    VERSION_VAR SQLite3_VERSION)
+
+# Create the imported target
+if(SQLite3_FOUND)
+    set(SQLite3_INCLUDE_DIRS ${SQLite3_INCLUDE_DIR})
+    set(SQLite3_LIBRARIES ${SQLite3_LIBRARY})
+    if(NOT TARGET SQLite::SQLite3)
+        add_library(SQLite::SQLite3 UNKNOWN IMPORTED)
+        set_target_properties(SQLite::SQLite3 PROPERTIES
+            IMPORTED_LOCATION             "${SQLite3_LIBRARY}"
+            INTERFACE_INCLUDE_DIRECTORIES "${SQLite3_INCLUDE_DIR}")
+    endif()
+endif()
-- 
GitLab