SET(NIF_COMPILE_FLAGS)
SET(NIF_LINK_FLAGS)

INCLUDE_DIRECTORIES(${PROJECT_INCLUDE_DIR})
LINK_DIRECTORIES(${LIBRARY_OUTPUT_PATH})

#Command Line Base Utility
IF(Boost_PROGRAM_OPTIONS_FOUND)
  INSTALL(FILES ${PROJECT_INCLUDE_DIR}/falcon/util/FalconCLIBase.h DESTINATION ${INCLUDE_INSTALL_DIR}/falcon/util)
  SET(CPP_DEFINES)
  SET(CPP_LINK_LIBS ${LIBNIFALCON_CPP} ${Boost_PROGRAM_OPTIONS_LIBRARY})
  IF(LIBFTD2XX_FOUND)
    SET(CPP_DEFINES ${CPP_DEFINES} -DLIBFTD2XX)
    SET(CPP_LINK_LIBS ${CPP_LINK_LIBS} ${LIBNIFALCON_CPP_COMM_PREFIX}_ftd2xx ${LIBFTD2XX_LIBRARIES})
  ELSE(LIBFTD2XX_FOUND)
    IF(LIBFTDI_FOUND)
      SET(CPP_DEFINES ${CPP_DEFINES} -DLIBFTDI)
      SET(CPP_LINK_LIBS ${CPP_LINK_LIBS} ${LIBNIFALCON_CPP_COMM_PREFIX}_libftdi ${LIBFTDI_LIBRARIES}) 
    ENDIF(LIBFTDI_FOUND)
    IF(LIBUSB_1_FOUND)
      SET(CPP_DEFINES ${CPP_DEFINES} -DLIBUSB)
      SET(CPP_LINK_LIBS ${CPP_LINK_LIBS} ${LIBNIFALCON_CPP_COMM_PREFIX}_libusb ${LIBUSB_1_LIBRARIES})
    ENDIF(LIBUSB_1_FOUND)
  ENDIF(LIBFTD2XX_FOUND)
  BUILD_NIFALCON_LIB(${LIBNIFALCON_CPP_CLI_BASE} "${BUILD_TYPES}" FalconCLIBase.cpp "${CPP_LINK_LIBS}" "${CPP_DEFINES}")
ENDIF(Boost_PROGRAM_OPTIONS_FOUND)

#Boost thread library
IF(Boost_THREAD_FOUND)
  INSTALL(FILES ${PROJECT_INCLUDE_DIR}/falcon/util/FalconDeviceBoostThread.h DESTINATION ${INCLUDE_INSTALL_DIR}/falcon/util)
  SET(CPP_LINK_LIBS ${LIBNIFALCON_CPP} ${Boost_THREAD_LIBRARY})
  BUILD_NIFALCON_LIB(${LIBNIFALCON_CPP_BOOST_THREAD} "${BUILD_TYPES}" FalconDeviceBoostThread.cpp "${CPP_LINK_LIBS}" FALSE)
ENDIF(Boost_THREAD_FOUND)
