CMAKE_MINIMUM_REQUIRED(VERSION 2.6.0 FATAL_ERROR)
SET(CMAKE_MODULE_PATH "./cmake_modules/")

#setting link directory policy

IF(COMMAND cmake_policy)
  CMAKE_POLICY(SET CMP0003 NEW)
ENDIF(COMMAND cmake_policy)

#taken from http://www.cmake.org/pipermail/cmake/2006-February/008334.html

MACRO(SET_COMPILE_FLAGS TARGET)
  SET(FLAGS)
  FOREACH(flag ${ARGN})
    SET(FLAGS "${FLAGS} ${flag}")
  ENDFOREACH(flag)
  SET_TARGET_PROPERTIES(${TARGET} PROPERTIES COMPILE_FLAGS "${FLAGS}")
ENDMACRO(SET_COMPILE_FLAGS)

PROJECT(LIBNIFALCON)
FIND_PACKAGE(libusb)
FIND_PACKAGE(libftd2xx)
FIND_PACKAGE(libftdi)
FIND_PACKAGE(GMTL)
FIND_PACKAGE(Boost 1.33 COMPONENTS program_options thread)
SET(EXECUTABLE_OUTPUT_PATH ${CMAKE_CURRENT_SOURCE_DIR}/bin)
SET(LIBRARY_OUTPUT_PATH ${CMAKE_CURRENT_SOURCE_DIR}/lib)
SET(LIBNIFVERSION 0.6)
SET(LIBNIFALCON_FTD2XX "nifalcon_ftd2xx")
SET(LIBNIFALCON_LIBFTDI "nifalcon_libftdi")
SET(LIBNIFALCON_CPP "nifalcon_cpp")
SET(LIBNIFALCON_CPP_UTIL "nifalcon_cpp_util")
SET(LIBNIFALCON_CPP_COMM_LIBFTDI "nifalcon_comm_libftdi")
SET(LIBNIFALCON_CPP_COMM_FTD2XX "nifalcon_comm_ftd2xx")
SET(LIBNIFALCON_CPP_KINEMATIC_STAMPER "nifalcon_kinematic_stamper")
SET(LIBMATH "m")
SET(LIBNIF_DEBUG_POSTFIX "_d")

IF(NOT INCLUDE_INSTALL_DIR)
  SET(INCLUDE_INSTALL_DIR /usr/local/include)
ENDIF(NOT INCLUDE_INSTALL_DIR)
IF(NOT LIBRARY_INSTALL_DIR)
  SET(LIBRARY_INSTALL_DIR /usr/local/lib)
ENDIF(NOT LIBRARY_INSTALL_DIR)
IF(NOT RUNTIME_INSTALL_DIR)
  SET(RUNTIME_INSTALL_DIR /usr/local/bin)
ENDIF(NOT RUNTIME_INSTALL_DIR)

MESSAGE(STATUS "Include Install Directory: ${INCLUDE_INSTALL_DIR}")
MESSAGE(STATUS "Library Install Directory: ${LIBRARY_INSTALL_DIR}")
MESSAGE(STATUS "Runtime Install Directory: ${RUNTIME_INSTALL_DIR}")

ADD_SUBDIRECTORY(src)
ADD_SUBDIRECTORY(examples)
