cmake_minimum_required(VERSION 2.8)
project(WFR-lib_sqlite C)


# cmake options
OPTION(USE_BUILDIN_SQLITE "Use buildin libsqlite3" ON)


# Check whether we are called by another script
get_directory_property(hasParent PARENT_DIRECTORY)

# Let's build our own copy of libsqlite
if (USE_BUILDIN_SQLITE)
	include(ExternalProject)
	
	# cmake options
	OPTION(BUILD_SQLITE_SHARED "Build libsqlite3 as shared library" OFF)
	
	# Set include dir and compiler command line options for compiling
	include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include)
	add_definitions( 
		-DSQLITE_ENABLE_UNLOCK_NOTIFY 
		-fPIC 
	)
	
	# Add sqlite library
	if (BUILD_SQLITE_SHARED)
		add_library(sqlite3 SHARED ${CMAKE_CURRENT_SOURCE_DIR}/src/sqlite3.c)
		set(SQLITE_LIBRARY_EXTENSION ".so")
	else()
		add_library(sqlite3 STATIC ${CMAKE_CURRENT_SOURCE_DIR}/src/sqlite3.c)
		set(SQLITE_LIBRARY_EXTENSION ".a")
	endif()
	
	# Where to install libsqlite
	install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/include DESTINATION ${CMAKE_INSTALL_PREFIX})
	install(TARGETS sqlite3 DESTINATION ${CMAKE_INSTALL_PREFIX}/lib)
	install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/cmake/sqlite3-config.cmake DESTINATION ${CMAKE_INSTALL_PREFIX})
	
	# Provide some variables to parent script
	if(hasParent)
		set(Sqlite3_INCLUDE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/include")
		set(Sqlite3_INCLUDE_DIR "${Sqlite3_INCLUDE_DIR}" PARENT_SCOPE)
		set(Sqlite3_INCLUDE_DIRS "${Sqlite3_INCLUDE_DIR}" PARENT_SCOPE)
		set(Sqlite3_LIBRARY_DIR "${CMAKE_CURRENT_BINARY_DIR}")
		set(Sqlite3_LIBRARY_DIR "${Sqlite3_LIBRARY_DIR}" PARENT_SCOPE)
		set(Sqlite3_LIBRARY_DIRS "${Sqlite3_LIBRARY_DIR}" PARENT_SCOPE)
		set(Sqlite3_LIBRARIES "${Sqlite3_LIBRARY_DIR}/libsqlite3${SQLITE_LIBRARY_EXTENSION}")
		set(Sqlite3_LIBRARIES "${Sqlite3_LIBRARIES}" PARENT_SCOPE)
	endif()
	
	
# Let's use an existing copy of libsqlite
else()
    add_custom_target(sqlite3) # Dummy target for add_dependencies
	find_package(Sqlite3 REQUIRED)
	if(hasParent)
		set(Sqlite3_INCLUDE_DIR "${Sqlite3_INCLUDE_DIR}" PARENT_SCOPE)
		set(sqlite3_INCLUDE_DIRS "${Sqlite3_INCLUDE_DIRS}" PARENT_SCOPE)
		set(Sqlite3_LIBRARY_DIR "${Sqlite3_LIBRARY_DIR}" PARENT_SCOPE)
		set(Sqlite3_LIBRARY_DIRS "${Sqlite3_LIBRARY_DIRS}" PARENT_SCOPE)
		set(Sqlite3_LIBRARIES "${Sqlite3_LIBRARIES}" PARENT_SCOPE)
	endif()
endif ()
