# This file sets:
# - BOOST_INCLUDE_DIRS
# - BOOST_LIB_DIRS
# - BOOST_WT_FOUND  // All dependencies for wt found
# - BOOST_WT_MT_FOUND
# - BOOST_WTHTTP_FOUND // All dependencies for wthttp found
# - BOOST_WTHTTP_MT_FOUND
# - BOOST_SUPPORT_LIBRARIES (should always be added to the boost libs)
# - BOOST_WT_LIBRARIES
#
# Separate compiled boost libraries are also discovered:
# - BOOST_DT_LIB
# - BOOST_FS_LIB
# - BOOST_REGEX_LIB
# - BOOST_PO_LIB
# - BOOST_SIGNALS_LIB
# - BOOST_SYSTEM_LIB
# - BOOST_THREAD_LIB (only if BOOST_MT_FOUND)
# Boost will try to find the same kind (mt or not) of library for all three
# of these libraries. Boost is considered to be found successfully only
# when the libraries are all of the same kind (mt or not). If the mt
# libraries exits, the mt versions will be used unless MULTI_THREADED is
# set to OFF. Otherwise, the non-mt versions will be used.
#

# For starters, see if the cmake-provided scripts are able to find boost
SET(BOOST_WT_FOUND FALSE)
SET(BOOST_WT_MT_FOUND FALSE)
SET(BOOST_WTHTTP_FOUND FALSE)
SET(BOOST_WTHTTP_MT_FOUND FALSE)
SET(BOOST_SUPPORT_LIBRARIES "")

IF(NOT DEFINED Boost_ADDITIONAL_VERSIONS)
  SET(Boost_ADDITIONAL_VERSIONS
  "1.35" "1.36" "1.37" "1.38" "1.39"
  "1.40" "1.41" "1.42" "1.43" "1.44" "1.45" "1.46" "1.47" "1.48" "1.49")
ENDIF(NOT DEFINED Boost_ADDITIONAL_VERSIONS)

SET(Boost_USE_MULTITHREADED ON)

IF(DEFINED BOOST_DIR AND NOT DEFINED BOOST_ROOT)
  SET(BOOST_ROOT ${BOOST_DIR})
ENDIF(DEFINED BOOST_DIR AND NOT DEFINED BOOST_ROOT)

IF(WIN32)
  IF(BOOST_DYNAMIC)
    SET(Boost_USE_STATIC_LIBS OFF)
  ELSE(BOOST_DYNAMIC)
    SET(Boost_USE_STATIC_LIBS ON)
  ENDIF(BOOST_DYNAMIC)
ENDIF(WIN32)

SET(Boost_DEBUG ON)

FIND_PACKAGE(Boost 1.35
  COMPONENTS
    date_time
    regex
    program_options
    signals
    system
    filesystem
    thread
  REQUIRED)
IF (Boost_FOUND)
  # Translate variables from official cmake names to internally used names
  SET(BOOST_INCLUDE_DIRS ${Boost_INCLUDE_DIRS})
  SET(BOOST_LIB_DIRS ${Boost_LIBRARY_DIRS})
  SET(BOOST_WT_DT_LIB ${Boost_DATE_TIME_LIBRARY})
  #SET(BOOST_FS_LIB ${Boost_FILESYSTEM_LIBRARY})
  SET(BOOST_FS_LIB_MT ${Boost_FILESYSTEM_LIBRARY}) # bw compat hack (fs example)
  #SET(BOOST_REGEX_LIB ${Boost_REGEX_LIBRARY})
  #SET(BOOST_PO_LIB ${Boost_PROGRAM_OPTIONS_LIBRARY})
  #SET(BOOST_SIGNALS_LIB ${Boost_SIGNALS_LIBRARY})
  #SET(BOOST_SYSTEM_LIB ${Boost_SYSTEM_LIBRARY})
  #SET(BOOST_THREAD_LIB ${Boost_THREAD_LIBRARY})

  SET(BOOST_WT_MT_FOUND TRUE)
  SET(BOOST_WT_FOUND TRUE)
  SET(BOOST_WTHTTP_MT_FOUND TRUE)
  SET(BOOST_WTHTTP_FOUND TRUE)

  IF(WIN32)
    # use autolink
    SET(BOOST_WT_LIBRARIES "")
    SET(BOOST_WTHTTP_LIBRARIES "")
  ELSE(WIN32)
    SET(BOOST_WT_LIBRARIES
        ${Boost_THREAD_LIBRARY}
        ${Boost_REGEX_LIBRARY}
        ${Boost_SIGNALS_LIBRARY}
        ${Boost_SYSTEM_LIBRARY}
        ${Boost_PROGRAM_OPTIONS_LIBRARY}
        ${Boost_DATE_TIME_LIBRARY})
    SET(BOOST_WTHTTP_LIBRARIES
        ${Boost_THREAD_LIBRARY}
        ${Boost_FILESYSTEM_LIBRARY}
        ${Boost_PROGRAM_OPTIONS_LIBRARY}
        ${Boost_DATE_TIME_LIBRARY})
  ENDIF(WIN32)
ENDIF (Boost_FOUND)

#IF(BOOST_INCLUDE_DIRS)
#  IF(WIN32)
#    # This is not really tested by this script yet - assume availability
#    SET(BOOST_WT_MT_FOUND TRUE)
#    SET(BOOST_WT_FOUND TRUE)
#    SET(BOOST_WTHTTP_MT_FOUND TRUE)
#    SET(BOOST_WTHTTP_FOUND TRUE)
#    SET(BOOST_WT_LIBRARIES "")

#SET(BOOST_WT_THREAD_LIBRARY  "")
#    SET(BOOST_WT_REGEX_LIBRARY   "")
#    SET(BOOST_WT_SIGNALS_LIBRARY "")
#    SET(BOOST_WT_PO_LIBRARY      "")
#    SET(BOOST_WT_DT_LIBRARY      "")
#    SET(BOOST_WT_SYSTEM_LIBRARY  "")

#    SET(BOOST_WTHTTP_THREAD_LIBRARY "")
#    SET(BOOST_WTHTTP_FS_LIBRARY     "")
#    SET(BOOST_WTHTTP_PO_LIBRARY     "")
#    SET(BOOST_WTHTTP_DT_LIBRARY     "")
#  ENDIF(WIN32)

#  IF(NOT BOOST_WT_FOUND
#     AND MULTI_THREADED
#     AND BOOST_THREAD_LIB_MT
#     AND BOOST_REGEX_LIB_MT
#     AND BOOST_SIGNALS_LIB_MT
#     AND BOOST_SYSTEM_LIB_MT
#     AND BOOST_PO_LIB_MT
#     AND BOOST_DT_LIB_MT)
#
#    SET(BOOST_WT_MT_FOUND TRUE)
#    SET(BOOST_WT_FOUND TRUE)
#
#    SET(BOOST_WT_LIBRARIES
#        ${BOOST_THREAD_LIB_MT}
#        ${BOOST_REGEX_LIB_MT}
#        ${BOOST_SIGNALS_LIB_MT}
#    	${BOOST_SYSTEM_LIB_MT}
#        ${BOOST_PO_LIB_MT}
#        ${BOOST_DT_LIB_MT})
#
#    SET(BOOST_WT_THREAD_LIBRARY  ${BOOST_THREAD_LIB_MT})
#    SET(BOOST_WT_REGEX_LIBRARY   ${BOOST_REGEX_LIB_MT})
#    SET(BOOST_WT_SIGNALS_LIBRARY ${BOOST_SIGNALS_LIB_MT})
#    SET(BOOST_WT_SYSTEM_LIBRARY  ${BOOST_SYSTEM_LIB_MT})
#    SET(BOOST_WT_PO_LIBRARY      ${BOOST_PO_LIB_MT})
#    SET(BOOST_WT_DT_LIBRARY      ${BOOST_DT_LIB_MT})
#
#  ENDIF(NOT BOOST_WT_FOUND
#     AND MULTI_THREADED
#     AND BOOST_THREAD_LIB_MT
#     AND BOOST_REGEX_LIB_MT
#     AND BOOST_SIGNALS_LIB_MT
#     AND BOOST_SYSTEM_LIB_MT
#     AND BOOST_PO_LIB_MT
#     AND BOOST_DT_LIB_MT)
#
#  IF(NOT BOOST_WT_FOUND
#     AND BOOST_REGEX_LIB
#     AND BOOST_SIGNALS_LIB
#     AND BOOST_SYSTEM_LIB
#     AND BOOST_PO_LIB
#     AND BOOST_DT_LIB)
#
#    SET(BOOST_WT_MT_FOUND FALSE)
#    SET(BOOST_WT_FOUND TRUE)
#
#    SET(BOOST_WT_LIBRARIES
#        ${BOOST_REGEX_LIB}
#        ${BOOST_SIGNALS_LIB}
#	${BOOST_SYSTEM_LIB}
#        ${BOOST_PO_LIB}
#        ${BOOST_DT_LIB})
#
#    SET(BOOST_WT_REGEX_LIBRARY   ${BOOST_REGEX_LIB})
#    SET(BOOST_WT_SIGNALS_LIBRARY ${BOOST_SIGNALS_LIB})
#    SET(BOOST_WT_SYSTEM_LIBRARY  ${BOOST_SYSTEM_LIB})
#    SET(BOOST_WT_PO_LIBRARY      ${BOOST_PO_LIB})
#    SET(BOOST_WT_DT_LIBRARY      ${BOOST_DT_LIB})
#
#  ENDIF(NOT BOOST_WT_FOUND
#     AND BOOST_REGEX_LIB
#     AND BOOST_SIGNALS_LIB
#     AND BOOST_SYSTEM_LIB
#     AND BOOST_PO_LIB
#     AND BOOST_DT_LIB)
#
#  IF(NOT BOOST_WTHTTP_FOUND
#     AND MULTI_THREADED
#     AND BOOST_THREAD_LIB_MT
#     AND BOOST_FS_LIB_MT
#     AND BOOST_PO_LIB_MT
#     AND BOOST_DT_LIB_MT)
#    SET(BOOST_WTHTTP_MT_FOUND TRUE)
#    SET(BOOST_WTHTTP_FOUND TRUE)
#
#    SET(BOOST_WTHTTP_LIBRARIES
#        ${BOOST_THREAD_LIB_MT}
#        ${BOOST_FS_LIB_MT}
#        ${BOOST_PO_LIB_MT}
#        ${BOOST_DT_LIB_MT})
#
#    SET(BOOST_WTHTTP_THREAD_LIBRARY ${BOOST_THREAD_LIB_MT})
#    SET(BOOST_WTHTTP_FS_LIBRARY     ${BOOST_FS_LIB_MT})
#    SET(BOOST_WTHTTP_PO_LIBRARY     ${BOOST_PO_LIB_MT})
#    SET(BOOST_WTHTTP_DT_LIBRARY     ${BOOST_DT_LIB_MT})
#
#  ENDIF(NOT BOOST_WTHTTP_FOUND
#     AND MULTI_THREADED
#     AND BOOST_THREAD_LIB_MT
#     AND BOOST_FS_LIB_MT
#     AND BOOST_PO_LIB_MT
#     AND BOOST_DT_LIB_MT)
#
#  IF(NOT BOOST_WTHTTP_FOUND
#     AND BOOST_FS_LIB
#     AND BOOST_PO_LIB
#     AND BOOST_DT_LIB)
#
#    SET(BOOST_WTHTTP_MT_FOUND FALSE)
#    SET(BOOST_WTHTTP_FOUND TRUE)
#
#    SET(BOOST_WTHTTP_LIBRARIES
#        ${BOOST_FS_LIB}
#        ${BOOST_PO_LIB}
#        ${BOOST_DT_LIB})
#
#    SET(BOOST_WTHTTP_FS_LIBRARY ${BOOST_FS_LIB})
#    SET(BOOST_WTHTTP_PO_LIBRARY ${BOOST_PO_LIB})
#    SET(BOOST_WTHTTP_DT_LIBRARY ${BOOST_DT_LIB})
#
#  ENDIF(NOT BOOST_WTHTTP_FOUND
#     AND BOOST_FS_LIB
#     AND BOOST_PO_LIB
#     AND BOOST_DT_LIB)
#
#ENDIF(BOOST_INCLUDE_DIRS)
