set(COMMON_SRC utils.h utils.cpp DotPlotInfoRepository.cpp DotPlotInfoRepository.h DataRange.cpp DataRange.h DotPlotCollection.cpp DotPlotCollection.h DotPlot.cpp DotPlot.h)
set(SLIDER_SRC slider-main.cpp ${COMMON_SRC})
set(SPARSIFY_POSIX_SRC sparsify-posix-main.cpp ${COMMON_SRC})
set(SPARSIFY_SRC sparsify-main.cpp ${COMMON_SRC})
set(DOTC_SRC dotc-main.cpp ${COMMON_SRC})

add_executable(slider ${SLIDER_SRC} ${INCLUDE_FILES})
target_include_directories(slider PRIVATE ${OPENMP_CXX_INCLUDE_PATH})
set_target_properties(slider PROPERTIES INSTALL_RPATH_USE_LINK_PATH TRUE)
target_link_libraries(slider PRIVATE ${OPENMP_CXX_LIBRARIES})

add_executable(sparsify ${SPARSIFY_SRC})

target_include_directories(sparsify PRIVATE ${OPENMP_CXX_INCLUDE_PATH} ${MPI_CXX_INCLUDE_PATH})
set_target_properties(sparsify PROPERTIES INSTALL_RPATH_USE_LINK_PATH TRUE)
target_link_libraries(sparsify PRIVATE ${OPENMP_CXX_LIBRARIES} ${MPI_CXX_LIBRARIES})

add_executable(dotc ${DOTC_SRC})

target_include_directories(dotc PRIVATE ${OPENMP_CXX_INCLUDE_PATH})
set_target_properties(dotc PROPERTIES INSTALL_RPATH_USE_LINK_PATH TRUE)
target_link_libraries(dotc PRIVATE ${OPENMP_CXX_LIBRARIES})

install(TARGETS slider sparsify dotc DESTINATION bin)
