


INCLUDE_DIRECTORIES( ${CMAKE_CURRENT_SOURCE_DIR} )

ADD_EXECUTABLE(ks_clean_duplicates CleanDuplicates.cpp CycleCompression.cpp NGraph.cpp CGraph.cpp CEdge.cpp LabelledCEdge.cpp NNode.cpp NEdge.cpp Utils.cpp)
install(TARGETS ks_clean_duplicates DESTINATION ${CMAKE_INSTALL_LIBEXECDIR}/kissplice)

ADD_EXECUTABLE(ks_bubble_enumeration  BubbleEnumeration.cpp CycleCompression.cpp NGraph.cpp CGraph.cpp CEdge.cpp LabelledCEdge.cpp NNode.cpp NEdge.cpp Utils.cpp)
install(TARGETS ks_bubble_enumeration DESTINATION ${CMAKE_INSTALL_LIBEXECDIR}/kissplice)

ADD_EXECUTABLE(ks_run_modules run.cpp CycleCompression.cpp NGraph.cpp CGraph.cpp CEdge.cpp LabelledCEdge.cpp NNode.cpp NEdge.cpp SplitBcc.cpp Utils.cpp)
install(TARGETS ks_run_modules DESTINATION ${CMAKE_INSTALL_LIBEXECDIR}/kissplice)

ADD_EXECUTABLE(ks_error_removal ErrorRemoval.cpp CEdge.cpp LabelledCEdge.cpp Utils.cpp)
install(TARGETS ks_error_removal DESTINATION ${CMAKE_INSTALL_LIBEXECDIR}/kissplice)

ADD_EXECUTABLE(ks_print_bcc PrintBcc.cpp Utils.cpp)
install(TARGETS ks_print_bcc DESTINATION ${CMAKE_INSTALL_LIBEXECDIR}/kissplice)

# Declare use of c++11 features
# TODO: This conditional should be removed as soon as cmake 2.8.12 or greater
# becomes acceptable as a requirement since the solution using target_compile_options
# (introduced in 2.8.12) is a lot cleaner.
IF ((${CMAKE_VERSION} VERSION_LESS 2.8.12) )
  SET(CMAKE_C_FLAGS_DEBUG   "${CMAKE_C_FLAGS_DEBUG} -std=c++11")
  SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -std=c++11")
  SET(CMAKE_C_FLAGS_RELEASE   "${CMAKE_C_FLAGS_RELEASE} -std=c++11")
  SET(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -std=c++11")
  SET(CMAKE_C_FLAGS_DISTRIBUTION    "${CMAKE_C_FLAGS_DISTRIBUTION} -std=c++11")
  SET(CMAKE_CXX_FLAGS_DISTRIBUTION  "${CMAKE_CXX_FLAGS_DISTRIBUTION} -std=c++11")
  SET(CMAKE_C_FLAGS_PROFILING   "${CMAKE_C_FLAGS_PROFILING} -std=c++11")
  SET(CMAKE_CXX_FLAGS_PROFILING "${CMAKE_CXX_FLAGS_PROFILING} -std=c++11")
ELSE ()
  target_compile_options(ks_clean_duplicates PRIVATE "-std=c++11")
  target_compile_options(ks_bubble_enumeration PRIVATE "-std=c++11")
  target_compile_options(ks_run_modules PRIVATE "-std=c++11")
  target_compile_options(ks_error_removal PRIVATE "-std=c++11")
  target_compile_options(ks_print_bcc PRIVATE "-std=c++11")
ENDIF ()