cmake_minimum_required(VERSION 3.10)
project(graph-am VERSION 2.2.1 LANGUAGES CXX)

enable_language(CXX)
set(CMAKE_CXX_STANDARD 11)

if(CMAKE_CXX_COMPILER_ID STREQUAL "MSVC")
    set(CMAKE_CXX_FLAGS "/W4")
    set(CMAKE_CXX_FLAGS_DEBUG "/Od /Zi /EHsc /DEBUG")
elseif(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
    set(CMAKE_CXX_FLAGS "-Wall")
    set(CMAKE_CXX_FLAGS_DEBUG "-O0 -ggdb3")
endif()

enable_testing()
find_package(Python 3 COMPONENTS Interpreter)

add_subdirectory(matrix)
include_directories("${CMAKE_CURRENT_SOURCE_DIR}" "${CMAKE_CURRENT_SOURCE_DIR}/matrix")

add_executable(test_wgraph test_wgraph.cpp graph.hpp graph_imp.hpp edge.hpp edge_imp.hpp vertex.hpp vertex_imp.hpp item.hpp)

add_executable(test_wgraph_iterators test_wgraph_iterators.cpp graph.hpp graph_imp.hpp edge.hpp edge_imp.hpp vertex.hpp vertex_imp.hpp item.hpp)

add_test(NAME TestWGraphAM COMMAND ${Python_EXECUTABLE} run_tests.py ${CMAKE_CURRENT_BINARY_DIR}/$<$<BOOL:${WIN32}>:$<CONFIG>>/test_wgraph 01_tests_wgraph WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
add_test(NAME TestWGraphAMIterators COMMAND ${Python_EXECUTABLE} run_tests.py ${CMAKE_CURRENT_BINARY_DIR}/$<$<BOOL:${WIN32}>:$<CONFIG>>/test_wgraph_iterators 02_tests_wgraph_iterators WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
add_test(NAME TestWGraphAMFoldUnfold COMMAND ${Python_EXECUTABLE} run_tests.py ${CMAKE_CURRENT_BINARY_DIR}/$<$<BOOL:${WIN32}>:$<CONFIG>>/test_wgraph 03_tests_wgraph_fold_unfold WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})