cmake_minimum_required (VERSION 2.8.11)

project(CellularPottsModel)

# The version number.
set (CellularPottsModel_VERSION_MAJOR 1)
set (CellularPottsModel_VERSION_MINOR 0)

# Set c++11 standard
set (CMAKE_CXX_STANDARD 11)

# Find packages required for CPM
find_package(BOOST REQUIRED COMPONENTS program_options)
find_package(GSL REQUIRED)
find_package(HDF5 REQUIRED COMPONENTS C CXX)

include_directories(Core)
include_directories(IO)
include_directories(CPM)
include_directories(${Boost_INCLUDE_DIRS})
include_directories(${GSL_INCLUDE_DIRS})
include_directories(${HDF5_INCLUDE_DIRS})

link_directories(${Boost_LIBRARY_DIRS})
link_directories(${GSL_LIBRARY_DIRS})
link_directories(${HDF5_LIBRARY_DIRS})

add_executable(
    CellularPottsModel
    main.cpp
    Core/Point.hpp
    Core/Vector.hpp
    IO/IO_Data.hpp
    IO/IO_Data.cpp
    IO/IO_Graphics.hpp
    IO/IO_Graphics.cpp
    IO/IO_Parameters.hpp
    IO/IO_Parameters.cpp
    CPM/CPM_Cell.hpp
    CPM/CPM_Cell.cpp
    CPM/CPM_Population.hpp
    CPM/CPM_Hamiltonian.hpp
    CPM/CPM_Edge.hpp
    CPM/CPM_Tile.hpp
    CPM/CPM_Grid.hpp
    CPM/CPM_Grid.cpp
    CPM/CPM_GridSolver.hpp
    CPM/CPM_GridSolver.cpp
    )

target_link_libraries(CellularPottsModel hdf5)
target_link_libraries(CellularPottsModel hdf5_cpp)
target_link_libraries(CellularPottsModel gsl)
target_link_libraries(CellularPottsModel boost_program_options)