From cd45ae3d0f8da00f0be69dee015e3298acce1367 Mon Sep 17 00:00:00 2001
From: Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
Date: Tue, 19 Jul 2011 20:02:31 +0200
Subject: [PATCH] Use system sqlite3/jthread libs if available

---
 cmake/Modules/FindJthread.cmake | 18 ++++++++++++++++++
 cmake/Modules/FindSqlite3.cmake | 18 ++++++++++++++++++
 src/CMakeLists.txt              | 23 ++++++++++++++++-------
 3 files changed, 52 insertions(+), 7 deletions(-)
 create mode 100644 cmake/Modules/FindJthread.cmake
 create mode 100644 cmake/Modules/FindSqlite3.cmake

diff --git a/cmake/Modules/FindJthread.cmake b/cmake/Modules/FindJthread.cmake
new file mode 100644
index 000000000..302a3c22f
--- /dev/null
+++ b/cmake/Modules/FindJthread.cmake
@@ -0,0 +1,18 @@
+# Look for jthread, use our own if not found
+
+FIND_PATH(JTHREAD_INCLUDE_DIR jthread.h)
+
+FIND_LIBRARY(JTHREAD_LIBRARY NAMES jthread)
+
+IF(JTHREAD_LIBRARY AND JTHREAD_INCLUDE_DIR)
+	SET( JTHREAD_FOUND TRUE )
+ENDIF(JTHREAD_LIBRARY AND JTHREAD_INCLUDE_DIR)
+
+IF(JTHREAD_FOUND)
+	MESSAGE(STATUS "Found system jthread header file in ${JTHREAD_INCLUDE_DIR}")
+	MESSAGE(STATUS "Found system jthread library ${JTHREAD_LIBRARY}")
+ELSE(JTHREAD_FOUND)
+	SET(JTHREAD_INCLUDE_DIR ${PROJECT_SOURCE_DIR}/jthread)
+	SET(JTHREAD_LIBRARY jthread)
+	MESSAGE(STATUS "Using project jthread library")
+ENDIF(JTHREAD_FOUND)
diff --git a/cmake/Modules/FindSqlite3.cmake b/cmake/Modules/FindSqlite3.cmake
new file mode 100644
index 000000000..ecce6e38e
--- /dev/null
+++ b/cmake/Modules/FindSqlite3.cmake
@@ -0,0 +1,18 @@
+# Look for sqlite3, use our own if not found
+
+FIND_PATH(SQLITE3_INCLUDE_DIR sqlite3.h)
+
+FIND_LIBRARY(SQLITE3_LIBRARY NAMES sqlite3)
+
+IF(SQLITE3_LIBRARY AND SQLITE3_INCLUDE_DIR)
+	SET( SQLITE3_FOUND TRUE )
+ENDIF(SQLITE3_LIBRARY AND SQLITE3_INCLUDE_DIR)
+
+IF(SQLITE3_FOUND)
+	MESSAGE(STATUS "Found system sqlite3 header file in ${SQLITE3_INCLUDE_DIR}")
+	MESSAGE(STATUS "Found system sqlite3 library ${SQLITE3_LIBRARY}")
+ELSE(SQLITE3_FOUND)
+	SET(SQLITE3_INCLUDE_DIR ${PROJECT_SOURCE_DIR}/sqlite)
+	SET(SQLITE3_LIBRARY sqlite3)
+	MESSAGE(STATUS "Using project sqlite3 library")
+ENDIF(SQLITE3_FOUND)
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index fd1591423..e1de23663 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -43,6 +43,8 @@ else()
 		find_package(JPEG REQUIRED)
 		find_package(BZip2 REQUIRED)
 		find_package(PNG REQUIRED)
+		find_package(Jthread REQUIRED)
+		find_package(Sqlite3 REQUIRED)
 		if(APPLE)
 			FIND_LIBRARY(CARBON_LIB Carbon)
 			FIND_LIBRARY(COCOA_LIB Cocoa)
@@ -143,8 +145,8 @@ include_directories(
 	${CMAKE_BUILD_TYPE}
 	${PNG_INCLUDE_DIR}
 	${GETTEXT_INCLUDE_DIR}
-	"${PROJECT_SOURCE_DIR}/jthread"
-	"${PROJECT_SOURCE_DIR}/sqlite"
+	${JTHREAD_INCLUDE_DIR}
+	${SQLITE3_INCLUDE_DIR}
 )
 
 set(EXECUTABLE_OUTPUT_PATH ../bin)
@@ -163,8 +165,8 @@ if(BUILD_CLIENT)
 		${GETTEXT_LIBRARIES}
 		${PLATFORM_LIBS}
 		${CLIENT_PLATFORM_LIBS}
-		jthread
-		sqlite3
+		${JTHREAD_LIBRARY}
+		${SQLITE3_LIBRARY}
 	)
 endif(BUILD_CLIENT)
 
@@ -174,8 +176,8 @@ if(BUILD_SERVER)
 		minetestserver
 		${ZLIB_LIBRARIES}
 		${PLATFORM_LIBS}
-		jthread
-		sqlite3
+		${JTHREAD_LIBRARY}
+		${SQLITE3_LIBRARY}
 	)
 endif(BUILD_SERVER)
 
@@ -296,7 +298,14 @@ add_custom_target(translation_de ALL COMMENT "mo update [de]" DEPENDS ${CMAKE_BI
 
 # Subdirectories
 
-add_subdirectory(jthread)
+if (JTHREAD_FOUND)
+else (JTHREAD_FOUND)
+	add_subdirectory(jthread)
+endif (JTHREAD_FOUND)
+
+if (SQLITE3_FOUND)
+else (SQLITE3_FOUND)
 add_subdirectory(sqlite)
+endif (SQLITE3_FOUND)
 
 #end
-- 
GitLab