########################################################################
#
#    Date:    $Date$
#    Version: $Revision$
#    Author:  $Author$ 
#    ID:      $Id$
#
#    File Description
#        Blah blah blah
#
#    Copyright (c) Blah Blah Blah
#    
#    This software is distributed WITHOUT ANY WARRANTY; without even
#    the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
#    PURPOSE.  See the above copyright notices for more information.
########################################################################

PROJECT( ProjectTemplate )

cmake_minimum_required(VERSION 2.6)
SET(PROJECT_VERSION 0.0.0)

#add #defines, for the Project Name and the Project Release
ADD_DEFINITIONS(-DPROJECT_NAME="${PROJECT_NAME}")
ADD_DEFINITIONS(-DPROJECT_VERSION="${PROJECT_VERSION}")

#find the sbiaDefs.cmake file in the system places
find_file(SBIADEFS_file sbiaDefs.cmake)
  
IF (NOT SBIADEFS_file)
  SET(SBIADEFS_file ${PROJECT_SOURCE_DIR}/cmake_modules/sbiaDefs.cmake
   CACHE FILEPATH "location of sbiaDefs.cmake" FORCE)
  MESSAGE (STATUS "Can't find global sbiaDefs.cmake. Using local (project) version.")
ENDIF (NOT SBIADEFS_file)

MARK_AS_ADVANCED ( SBIADEFS_file ) #we don't want to see this in the GUI

IF (EXISTS "${SBIADEFS_file}")
  INCLUDE (${SBIADEFS_file})
ELSE (EXISTS "${SBIADEFS_file}")
  MESSAGE (FATAL_ERROR "Can't Find ANY sbiaDefs.cmake. There should be one in Cmake Directory?")
ENDIF (EXISTS "${SBIADEFS_file}")

set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake_modules/")

SET (BUILD_TEST ON CACHE BOOL "Do you want to build tests")
SET (BUILD_DOC  ON CACHE BOOL "Do you want to build Documentation (Needs Doxygen) ")

############################
### EDIT FROM HERE DOWN ####
############################

#here you can use cmake to find your dependancies
#see the CMakeProjectTemplateExample for an example usage

#You may need to change this based on where stuff is loacted
#this is where the *.h s are!
SET( ${PROJECT_NAME}_INCLUDES
  Code/Source
)


#You will have to set thie to your actuall project name
#for eaxmple this porjects is called "ProjectTemplate" since that is
#what is in the PROJECT call (at the begining of the File
#so this line would be
INCLUDE_DIRECTORIES( ${${PROJECT_NAME}_INCLUDES} )

ADD_DEFINITIONS (-DNDEBUG)

FIND_PACKAGE ( Boost )
IF ( Boost_FOUND )
      link_directories ( ${Boost_LIBRARY_DIRS} )
      include_directories ( ${Boost_INCLUDE_DIRS} )
ENDIF( Boost_FOUND )

FIND_PACKAGE( Lapack )
#IF (Lapack_FOUND)
link_libraries( ${LAPACK_LIBS}  ) 
include_directories(  ${CBLAS_INCLUDES}  ) 
     #ENDIF (Lapack_FOUND)

ADD_SUBDIRECTORY(ATLAS)
INCLUDE_DIRECTORIES( ${ATLAS_INCLUDES} )




FIND_PACKAGE ( OpenCV )
IF ( OpenCV_FOUND )

# message( "found boost: ${OpenCV_CV_INCLUDE_DIR}" )
# message( "found boost: ${OpenCV_HIGHGUI_LIBRARY}" )  
# message( "found boost: ${OpenCV_CV_LIBRARY}" )
# message( "found boost: ${OpenCV_CXCORE_LIBRARY}" )
# message( "found boost: ${OpenCV_CV_INCLUDE_DIR}" )



	INCLUDE_DIRECTORIES(${OpenCV_CV_INCLUDE_DIR})
#      INCLUDE( ${USE_OpenCV_FILE} )
ENDIF( OpenCV_FOUND )
ENABLE_TESTING()


FIND_PATH(BOOST_INCLUDE_PATH config.hpp

      # Look in places relative to the system executable search path.
      ${BOOST_DIR_SEARCH}

      # Look in standard UNIX install locations.
      /usr/local/include/boost
      /usr/include/boost

      # Help the user find it if we cannot.
      DOC "The ${BOOST_INCLUDE_PATH_DESCRIPTION}"
  )

# SET (TEST_Boost_LIBS ${Boost_TEST_EXEC_MONITOR_LIBRARY} )
  # ADD_EXECUTABLE(MXAFileReaderWriterTest ${FILEREADERWRITER_TEST_SRCS})
  #  TARGET_LINK_LIBRARIES (MXAFileReaderWriterTest ${TEST_Boost_LIBS} )
  #   ADD_TEST(MXAFileReaderWriterTest
# ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/MXAFileReaderWriterTest)



SET (Boost_FIND_REQUIRED TRUE)
SET (Boost_FIND_QUIETLY TRUE)
set (Boost_USE_MULTITHREADED TRUE)
set (Boost_USE_STATIC_LIBS TRUE)
SET (Boost_ADDITIONAL_VERSIONS "1.39" "1.39.0")

if ( NOT MXA_BOOST_HEADERS_ONLY)
 set (MXA_BOOST_COMPONENTS program_options unit_test_framework
test_exec_monitor)
endif()

FIND_PACKAGE(Boost COMPONENTS  ${MXA_BOOST_COMPONENTS} )
INCLUDE_DIRECTORIES(${Boost_INCLUDE_DIRS})
LINK_DIRECTORIES(${Boost_LIBRARY_DIRS})


SET(BOOST_FOUND NOTFOUND)
IF ( BOOST_INCLUDE_PATH )
  # The user may not have installed any libraries.
  SET (BOOST_FOUND "1" )
  GET_FILENAME_COMPONENT(BOOST_LIBRARY_PATH ${BOOST_INCLUDE_PATH} PATH)
  GET_FILENAME_COMPONENT(BOOST_LIBRARY_PATH ${BOOST_LIBRARY_PATH} PATH)
  IF ( EXISTS ${BOOST_LIBRARY_PATH}/lib )
    SET (  BOOST_LIBRARY_PATH ${BOOST_LIBRARY_PATH}/lib CACHE PATH "The path to the Boost library files."  )
  ELSE ( EXISTS ${BOOST_LIBRARY_PATH}/lib )
    GET_FILENAME_COMPONENT(BOOST_LIBRARY_PATH ${BOOST_LIBRARY_PATH} PATH)
    IF ( EXISTS ${BOOST_LIBRARY_PATH}/lib )
      SET ( BOOST_LIBRARY_PATH ${BOOST_LIBRARY_PATH}/lib CACHE PATH "The path to the Boost library files." )
    ELSE ( EXISTS ${BOOST_LIBRARY_PATH}/lib )
      SET (  BOOST_LIBRARY_PATH "" CACHE PATH "The path to the Boost library files."  )
    ENDIF ( EXISTS ${BOOST_LIBRARY_PATH}/lib )
  ENDIF ( EXISTS ${BOOST_LIBRARY_PATH}/lib )
ENDIF ( BOOST_INCLUDE_PATH )


SET(SUFFIX_FOR_PATH
 boost-1_34_1
 boost-1_34_0
 boost-1_33_1
 boost-1_33_0
)





ADD_SUBDIRECTORY(Code)

IF (BUILD_TEST)
  ADD_SUBDIRECTORY(Testing)
ENDIF (BUILD_TEST)

IF (BUILD_DOC)
  ADD_SUBDIRECTORY(Doc)
ENDIF (BUILD_DOC)
