## Add c++11 flag to compilation if GCC is detected -- unused due to ITK incompatibilities
IF(CMAKE_COMPILER_IS_GNUCXX)
  INCLUDE( CheckCXXCompilerFlag )
  CHECK_CXX_COMPILER_FLAG("-std=c++11" COMPILER_SUPPORTS_CXX11)
  CHECK_CXX_COMPILER_FLAG("-std=c++0x" COMPILER_SUPPORTS_CXX0X)
#	IF( COMPILER_SUPPORTS_CXX11 )
#		SET( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
#	ELSEIF(COMPILER_SUPPORTS_CXX0X )
#		SET( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x")
#	ELSE()
#		MESSAGE(ERROR "The compiler ${CMAKE_CXX_COMPILER} has no C++11 support. Please use a different C++ compiler.")
#	ENDIF()
ENDIF(CMAKE_COMPILER_IS_GNUCXX) 

FIND_PACKAGE( OpenMP REQUIRED )
SET( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}" )
SET( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}" )

# need to find CBLAS library explicitly since it isn't intrinsically tied to ATLAS or LAPACK find() modules
FIND_LIBRARY(CBLAS_LIB cblas PATH "/lib" "/usr/lib" "/usr/local/lib" "/usr/lib64" "/usr/lib64/atlas" ENV LD_LIBRARY_PATH 
  DOC "Find the CBLAS library")

ADD_EXECUTABLE( ODVBA CAlgorithm.cpp cbicaCmdParser.cpp ODVBA.cpp cbicaUtilities.cpp)
TARGET_LINK_LIBRARIES ( 
  ODVBA 
  ${Boost_LIBRARIES} 
  ${LAPACK_LIBRARIES}
  ${CBLAS_LIB}
#  ${ITK_LIBRARIES}
  ${NiftiCLib_LIBRARIES} # to be replaced with ITK
)

link_directories ( ${Boost_LIBRARY_DIRS} )

# install all header files
FILE(GLOB files "${CMAKE_CURRENT_SOURCE_DIR}/*.h")
INSTALL(FILES ${files} DESTINATION include)

# install all template files
FILE(GLOB files "${CMAKE_CURRENT_SOURCE_DIR}/*.txx")
INSTALL(FILES ${files} DESTINATION include)

INSTALL(TARGETS ODVBA DESTINATION bin)

# find all the files that end with ".in"
FILE(GLOB inFiles RELATIVE "${CMAKE_CURRENT_SOURCE_DIR}"
    "${CMAKE_CURRENT_SOURCE_DIR}/*.in")

# remove the .in and configure an script libraries/classes for installation
FOREACH(SRC_SCRIPT ${inFiles})

  # Strip of the .in at the end of the file name
  STRING(REGEX MATCH "(.*)\\.in$" source_path "${SRC_SCRIPT}")
  SET(TARG_SCRIPT ${CMAKE_MATCH_1})

  # configure the script to replace the CMake defined things
  CONFIGURE_FILE( ${SRC_SCRIPT} ${EXECUTABLE_OUTPUT_PATH}/${TARG_SCRIPT} @ONLY)
  
  # if this is a UNIX box make it executable in the local build path
  IF (UNIX)
    EXEC_PROGRAM(chmod ARGS 755 ${EXECUTABLE_OUTPUT_PATH}/${TARG_SCRIPT})
  ENDIF (UNIX)
  
  # install the binary 
  INSTALL(PROGRAMS
    ${EXECUTABLE_OUTPUT_PATH}/${TARG_SCRIPT}
    DESTINATION bin
  )

ENDFOREACH(SRC_SCRIPT)
