cmake_minimum_required(VERSION 3.16)
project(SPECTRUM)

# openmp
find_package(OpenMP)
if(OPENMP_FOUND)
    message("OpenMP Found")
    set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}")
    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}")
    set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${OpenMP_EXE_LINKER_FLAGS}")
endif()

set(CMAKE_CXX_STANDARD 20)

include_directories(SYSTEM ${BOOST_PATH} ${EIGEN_PATH} ${SPECTRA_PATH})

add_executable(SPECTRUM main.cpp
        Utils/vector_utils.h
        Utils/map_utils.cpp Utils/map_utils.h
        Utils/set_utils.h
        Utils/profiling_utils.h
        Utils/read_files_utils.cpp Utils/read_files_utils.h
        HyperGraphs/Relation.h
        Utils/exceptions.cpp Utils/exceptions.h
        Fragments/Fragments.cpp Fragments/Fragments.h
        CandidateRules/CandidateRules.cpp CandidateRules/CandidateRules.h
        HyperGraphs/HyperGraph.cpp
        HyperGraphs/HyperGraph.h
)
