IF(ENABLE_SQLITE)

  OPTION(USE_SYSTEM_SQLITE3 "Use system-wide Sqlite3 instead of Wt's version" OFF)

  IF(USE_SYSTEM_SQLITE3)
    FIND_PACKAGE( Sqlite3 REQUIRED)
  ELSE(USE_SYSTEM_SQLITE3)
    SET(Sqlite3_SRCS amalgamation/sqlite3.c)
  ENDIF(USE_SYSTEM_SQLITE3)

  FIND_PACKAGE(Threads)

  SET (WT_THREAD_LIB "")
  IF (NOT CMAKE_HAVE_THREADS_LIBRARY)
    ADD_DEFINITIONS(-DSQLITE3_THREAD_SAFE=0)
  ELSE (NOT CMAKE_HAVE_THREADS_LIBRARY)
    SET(WT_THREAD_LIB ${CMAKE_THREAD_LIBS_INIT})
  ENDIF(NOT CMAKE_HAVE_THREADS_LIBRARY)

  SET(HAVE_SQLITE true)

  ADD_LIBRARY(wtdbosqlite3
    Sqlite3.C
    ${Sqlite3_SRCS}
    )

  MESSAGE("** Wt::Dbo: building SQLite3 backend.")

  TARGET_LINK_LIBRARIES(wtdbosqlite3 wtdbo
      ${SQLITE3_LIBRARIES}
      ${BOOST_DT_LIB}
      ${WT_THREAD_LIB}
      ${WT_MATH_LIBRARY}
      )

  IF(NOT WIN32)
    FIND_LIBRARY(DL_LIB
      NAMES
      dl
      )
    IF(DL_LIB)
      TARGET_LINK_LIBRARIES(wtdbosqlite3 ${DL_LIB})
    ENDIF(DL_LIB)
  ENDIF(NOT WIN32)

  INSTALL(TARGETS wtdbosqlite3
    RUNTIME DESTINATION bin
    LIBRARY DESTINATION ${LIB_INSTALL_DIR}
    ARCHIVE DESTINATION ${LIB_INSTALL_DIR})

  SET_TARGET_PROPERTIES(
    wtdbosqlite3
  PROPERTIES
    VERSION ${VERSION_SERIES}.${VERSION_MAJOR}.${VERSION_MINOR}
    SOVERSION ${WTDBOSQLITE3_SOVERSION} 
    DEBUG_POSTFIX ${DEBUG_LIB_POSTFIX}
    )

  IF(MSVC)
    SET_TARGET_PROPERTIES(
      wtdbosqlite3
    PROPERTIES
      COMPILE_FLAGS "${BUILD_PARALLEL} /wd4251 /wd4275 /wd4267"
    )

  ENDIF(MSVC)

  INSTALL_FILES(/include/Wt/Dbo/backend "^Sqlite3$")
  INSTALL_FILES(/include/Wt/Dbo/backend "^.*Sqlite3.*h$")

ENDIF(ENABLE_SQLITE)

IF(ENABLE_POSTGRES AND POSTGRES_FOUND)

  SET(HAVE_POSTGRES true)

  MESSAGE("** Wt::Dbo: building Postgres backend.")
  ADD_LIBRARY(wtdbopostgres
    Postgres.C
    )
  TARGET_LINK_LIBRARIES(wtdbopostgres wtdbo ${POSTGRES_LIBRARIES} ${BOOST_DT_LIB})

  INCLUDE_DIRECTORIES(${POSTGRES_INCLUDE})

  INSTALL(TARGETS wtdbopostgres
    RUNTIME DESTINATION bin
    LIBRARY DESTINATION ${LIB_INSTALL_DIR}
    ARCHIVE DESTINATION ${LIB_INSTALL_DIR})

  SET_TARGET_PROPERTIES(
    wtdbopostgres
  PROPERTIES
    VERSION ${VERSION_SERIES}.${VERSION_MAJOR}.${VERSION_MINOR}
    SOVERSION ${WTDBOPOSTGRES_SOVERSION}
    DEBUG_POSTFIX ${DEBUG_LIB_POSTFIX}
  )

  INSTALL_FILES(/include/Wt/Dbo/backend "^Postgres$")
  INSTALL_FILES(/include/Wt/Dbo/backend "^.*Postgres.*h$")
ELSE(ENABLE_POSTGRES AND POSTGRES_FOUND)
  MESSAGE("** Wt::Dbo: not building Postgres backend.")

  IF(ENABLE_POSTGRES)
    MESSAGE("    Indicate the location of your postgres installation using -DPOSTGRES_PREFIX=...")
  ENDIF(ENABLE_POSTGRES)

ENDIF(ENABLE_POSTGRES AND POSTGRES_FOUND)

IF(ENABLE_FIREBIRD)
  OPTION(USE_SYSTEM_IBPP "Use a custom IBPP library instead of Wt's version" OFF)

  IF(NOT USE_SYSTEM_IBPP)
    SET(IBPP_SRC_DIRECTORY ibpp/)
  ENDIF(NOT USE_SYSTEM_IBPP)
  INCLUDE(../../../../cmake/WtFindFirebirdSql.txt)
ENDIF(ENABLE_FIREBIRD)

IF(ENABLE_FIREBIRD AND FIREBIRD_FOUND)

  SET(HAVE_FIREBIRD true)

  IF(MSVC)
    ADD_DEFINITIONS(-DIBPP_WINDOWS)
  ENDIF(MSVC)
  IF(APPLE)
    ADD_DEFINITIONS(-DIBPP_DARWIN)
  ENDIF(APPLE)
  IF(UNIX)
    ADD_DEFINITIONS(-DIBPP_LINUX)
  ENDIF(UNIX)

  INCLUDE_DIRECTORIES(${FIREBIRD_INCLUDE_DIRS})

  MESSAGE("** Wt::Dbo: building FirebirdSQL backend.")
  ADD_LIBRARY(wtdbofirebird
    Firebird.C
    ${IBPP_ALL_IN_ONE_FILE}
  )
  TARGET_LINK_LIBRARIES(wtdbofirebird
    wtdbo
    ${FIREBIRD_LIBRARIES}
    ${BOOST_DT_LIB}
  )

  IF(MSVC)
    SET_TARGET_PROPERTIES(
      wtdbofirebird
    PROPERTIES
      COMPILE_FLAGS "${BUILD_PARALLEL} /wd4251 /wd4275 /wd4267"
    )
  ENDIF(MSVC)

  INSTALL(TARGETS wtdbofirebird
    RUNTIME DESTINATION bin
    LIBRARY DESTINATION ${LIB_INSTALL_DIR}
    ARCHIVE DESTINATION ${LIB_INSTALL_DIR})

  SET_TARGET_PROPERTIES(
    wtdbofirebird
  PROPERTIES
    VERSION ${VERSION_SERIES}.${VERSION_MAJOR}.${VERSION_MINOR}
    SOVERSION ${WTDBOFIREBIRD_SOVERSION}
    DEBUG_POSTFIX ${DEBUG_LIB_POSTFIX}
  )

  INSTALL_FILES(/include/Wt/Dbo/backend "^Firebird$")
  INSTALL_FILES(/include/Wt/Dbo/backend "^.*Firebird.*h$")
ELSE(ENABLE_FIREBIRD AND FIREBIRD_FOUND)
  MESSAGE("** Wt::Dbo: not building Firebird backend.")

  IF(ENABLE_FIREBIRD)
    MESSAGE("    Indicate the location of your FirebirdSQL and IBPP installation using -DFIREBIRD_PREFIX=... -DIBPP_SRC_DIRECTORY=...")
  ENDIF(ENABLE_FIREBIRD)

ENDIF(ENABLE_FIREBIRD AND FIREBIRD_FOUND)

