# CMakeLists files in this project can refer to the root source
# directory of the project as ${DiffusionMRI_SOURCE_DIR} and
# to the root binary directory of the project as ${DiffusionMRI_BINARY_DIR}.

#------------------------------------------------------------
# Project Name
#------------------------------------------------------------

PROJECT(VirtualRetina)
SET(VirtualRetina_VERSION 2.0)

#######################################################################
# External Libraries
#######################################################################


#------------------------------------------------------------
# MvaSpike library
#------------------------------------------------------------


FIND_PATH(MVASPIKE_INCLUDE_PATH mvaspike.h
            "local/include/mvaspike"
            "../MvaSpike/src"
            "../External_Libraries/MvaSpike/src"
            "/usr/local/include/mvaspike"
            "/usr/include/mvaspike"
)

INCLUDE_DIRECTORIES("${MVASPIKE_INCLUDE_PATH}")

FIND_LIBRARY(MVASPIKE_LIB mvaspike
            "local/lib"
            "../MvaSpike/src/.libs"
            "../External_Libraries/MvaSpike/src/.libs"
            "/usr/local/lib"
            "/usr/lib"
            )

LINK_DIRECTORIES( 
            "local/lib"
            "../MvaSpike/src/.libs"
            "../External_Libraries/MvaSpike/src/.libs"
            "/usr/local/lib"
            "/usr/lib"
            )

#------------------------------------------------------------
# CImg library
#------------------------------------------------------------

FIND_PATH(CIMG_PATH CImg.h
            "local/include/CImg"
            "../CImg"
            "../External_Libraries/CImg"
            "/usr/local/include"
            "/usr/include"
)
INCLUDE_DIRECTORIES("${CIMG_PATH}")


#------------------------------------------------------------
# libxml++ library
#------------------------------------------------------------


FIND_PATH(LIBXMLPP_INCLUDE_PATH libxml++/libxml++.h
            "local/include"
            "../libxml++-1.0.5"
            "../External_Libraries/libxml++-1.0.5"
            "/usr/local/include"
            "/usr/include"
)

INCLUDE_DIRECTORIES("${LIBXMLPP_INCLUDE_PATH}")

FIND_LIBRARY(LIBXMLPP_LIB xml++-1.0 
            "local/lib"
            "../libxml++-1.0.5/.libs"
            "../External_Libraries/libxml++-1.0.5/.libs"
            "/usr/local/lib"
            "/usr/lib"
            )

LINK_DIRECTORIES( 
            "local/lib"
            "../libxml++-1.0.5/.libs"
            "../External_Libraries/libxml++-1.0.5/.libs"
            "/usr/local/lib"
            "/usr/lib"
            )

#------------------------------------------------------------
# xmlParameters++ library
#------------------------------------------------------------


FIND_PATH(XMLPARAM_INCLUDE_PATH xml_parameters.h
            "local/include/xml_parameters++"
            "../xmlParameters++"
            "../External_Libraries/xmlParameters++"
)

INCLUDE_DIRECTORIES("${XMLPARAM_INCLUDE_PATH}")

FIND_LIBRARY(XMLPARAM_LIB xml_parameters++
            "local/lib"
            "../xmlParameters++/lib"
            "../External_Libraries/xmlParameters++/lib"
            "/usr/local/lib"
            "/usr/lib"
            )

LINK_DIRECTORIES( 
            "local/lib"
            "../xmlParameters++/lib"
            "../External_Libraries/xmlParameters++/lib"
            "/usr/local/lib"
            "/usr/lib"
            )


#------------------------------------------------------------
# X11 library
#------------------------------------------------------------

FIND_PATH(X11_PATH include/X11/Xlib.h
    /usr/X11R6
)

INCLUDE_DIRECTORIES("${X11_PATH}/include")
LINK_DIRECTORIES("${X11_PATH}/lib")

SET(X11_LIBRARIES
        m
        pthread
        X11
)



#---------------------------------------------------------------------------
# HDF5 library... accessed through the 'wrapper' for MvaSpike, mvaspike_hdf5
#    see VirtualRetina tutorial for this one ;-)
#---------------------------------------------------------------------------

OPTION( USE_HDF5 "Use hdf5 library to save spike times" OFF )


  FIND_PATH(MVASPIKEHDF5_PATH hdf5memspikerecorder.h
             "../External_Libraries/mvaspike_hdf5"
             "../mvaspike_hdf5"
  )

  INCLUDE_DIRECTORIES("${MVASPIKEHDF5_PATH}")

  FIND_LIBRARY(MVASPIKEHDF5_LIB mvaspike_hdf5 "${MVASPIKEHDF5_PATH}")
  LINK_DIRECTORIES("${MVASPIKEHDF5_PATH}")

IF(USE_HDF5)
  ADD_DEFINITIONS (-DUSE_HDF5 )  
  SET(HDF5_LIBRARIES
       ${MVASPIKEHDF5_LIB})
ELSE(USE_HDF5)
  SET(HDF5_LIBRARIES)
ENDIF(USE_HDF5)


#######################################################################
# VirtualRetina
#######################################################################


#---------------------------------------------------------------
# EXECUTABLE OUTPUT PATH
#---------------------------------------------------------------

SET (EXECUTABLE_OUTPUT_PATH
        ${VirtualRetina_BINARY_DIR}/local/bin CACHE INTERNAL
        "Single output directory for building all")

SET (LIBRARY_OUTPUT_PATH
        ${VirtualRetina_BINARY_DIR}/local/lib CACHE INTERNAL
        "Single output directory for building all")

#---------------------------------------------------------------
# Precompile options
#---------------------------------------------------------------

#Indicate the absolute pathway for the VirtualRetina home directory
ADD_DEFINITIONS( -DROOTDIR='"${VirtualRetina_BINARY_DIR}"' )


# An option just for me...
OPTION( PERSO  "dirty option allowing me to work with the same CMakeLists.txt file. Forget it! " OFF)

ADD_SUBDIRECTORY(src)

