From 1c8ace82768b55bdfbbf8792490ee7f585bda9f8 Mon Sep 17 00:00:00 2001
From: Florian Franzmann <bwlf@bandrate.org>
Date: Sun, 1 Dec 2019 18:06:18 +0100
Subject: [PATCH 01/35] Find and use system sqlite

---
 CMakeLists.txt     | 17 ++++++++---------
 cmake/sqlite.cmake | 18 ++++++++++++++++++
 2 files changed, 26 insertions(+), 9 deletions(-)
 create mode 100644 cmake/sqlite.cmake

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 0318104..544d115 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -6,17 +6,16 @@ project(hiberlite)
 
 set(CMAKE_INCLUDE_CURRENT_DIR ON)
 set(CMAKE_CXX_STANDARD 11)
+set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake)
 
 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-terminate")
 
-set(TARGET_NAME hiberlite) 
+set(TARGET_NAME hiberlite)
 
-set(SOURCES_SQLITE
-  sqlite-amalgamation/sqlite3.c
-  sqlite-amalgamation/sqlite3.h
-)
-  
-set(SOURCES  
+include(sqlite)
+
+
+set(SOURCES
   src/BeanLoader.cpp
   src/BeanUpdater.cpp
   src/ChildKiller.cpp
@@ -58,18 +57,18 @@ set(SOURCES
 
 add_library(${TARGET_NAME}
   ${SOURCES}
-  ${SOURCES_SQLITE}
 )
 
 target_include_directories(${TARGET_NAME}
   PUBLIC
   include
-  sqlite-amalgamation
+  ${SQLITE_INCLUDES}
 )
 
 target_link_libraries(${TARGET_NAME}
   pthread
   dl
+  ${LIBSQLITE}
   )
 
 add_executable(sample
diff --git a/cmake/sqlite.cmake b/cmake/sqlite.cmake
new file mode 100644
index 0000000..7cc50f7
--- /dev/null
+++ b/cmake/sqlite.cmake
@@ -0,0 +1,18 @@
+find_library(LIBSQLITE sqlite3 REQUIRED)
+message(STATUS "using ${LIBSQLITE}")
+
+find_library(LIBDL dl)
+message(STATUS "using ${LIBDL}")
+
+set(LIBSQLITE ${LIBSQLITE} ${LIBDL})
+
+find_path(SQLITE_INCLUDES
+          NAMES sqlite3.h
+                sqlite3ext.h)
+if(SQLITE_INCLUDES)
+    message(STATUS "sqlite include path: ${SQLITE_INCLUDES}")
+else()
+    message(FATAL_ERROR "sqlite headers not found.")
+endif()
+
+include_directories(SYSTEM ${SQLITE_INCLUDES})
-- 
2.24.0

