+
+find_package(Lua REQUIRED)
+
+find_package(GMP REQUIRED)
+
+option(ENABLE_LEVELDB "Enable LevelDB backend" TRUE)
+set(USE_LEVELDB FALSE)
+
+if(ENABLE_LEVELDB)
+ find_library(LEVELDB_LIBRARY leveldb)
+ find_path(LEVELDB_INCLUDE_DIR db.h PATH_SUFFIXES leveldb)
+ if(LEVELDB_LIBRARY AND LEVELDB_INCLUDE_DIR)
+ set(USE_LEVELDB TRUE)
+ message(STATUS "LevelDB backend enabled.")
+ include_directories(${LEVELDB_INCLUDE_DIR})
+ else()
+ message(STATUS "LevelDB not found!")
+ endif()
+endif(ENABLE_LEVELDB)
+
+
+OPTION(ENABLE_REDIS "Enable Redis backend" TRUE)
+set(USE_REDIS FALSE)
+
+if(ENABLE_REDIS)
+ find_library(REDIS_LIBRARY hiredis)
+ find_path(REDIS_INCLUDE_DIR hiredis.h PATH_SUFFIXES hiredis)
+ if(REDIS_LIBRARY AND REDIS_INCLUDE_DIR)
+ set(USE_REDIS TRUE)
+ message(STATUS "Redis backend enabled.")
+ include_directories(${REDIS_INCLUDE_DIR})
+ else(REDIS_LIBRARY AND REDIS_INCLUDE_DIR)
+ message(STATUS "Redis not found!")
+ endif(REDIS_LIBRARY AND REDIS_INCLUDE_DIR)
+endif(ENABLE_REDIS)
+
+
+find_package(SQLite3 REQUIRED)
+find_package(Json REQUIRED)
+
+OPTION(ENABLE_SPATIAL "Enable SpatialIndex AreaStore backend" TRUE)
+set(USE_SPATIAL FALSE)
+
+if(ENABLE_SPATIAL)
+ find_library(SPATIAL_LIBRARY spatialindex)
+ find_path(SPATIAL_INCLUDE_DIR spatialindex/SpatialIndex.h)
+ if(SPATIAL_LIBRARY AND SPATIAL_INCLUDE_DIR)
+ set(USE_SPATIAL TRUE)
+ message(STATUS "SpatialIndex AreaStore backend enabled.")
+ include_directories(${SPATIAL_INCLUDE_DIR})
+ else(SPATIAL_LIBRARY AND SPATIAL_INCLUDE_DIR)
+ message(STATUS "SpatialIndex not found!")
+ endif(SPATIAL_LIBRARY AND SPATIAL_INCLUDE_DIR)
+endif(ENABLE_SPATIAL)
+
+