cmake_minimum_required(VERSION 3.22.0)

set(PROJECT_NAME s2ga)

if(NOT CMAKE_BUILD_TYPE)
  set(CMAKE_BUILD_TYPE Release)
endif()

set(CMAKE_CXX_FLAGS "-Wall -Wextra")
set(CMAKE_CXX_FLAGS_DEBUG "-g")
set(CMAKE_CXX_FLAGS_RELEASE "-O3")

project(${PROJECT_NAME})
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)

option(BUILD_ZECSY_TESTS "Build tests?" ON)

find_package(magic_enum)

add_library(s2ga STATIC s2ga.hpp)
target_link_libraries(s2ga PUBLIC magic_enum::magic_enum)
set_target_properties(s2ga PROPERTIES LINKER_LANGUAGE CXX)

#######################################################
if(${BUILD_ZECSY_TESTS})
    find_package(Catch2 REQUIRED)
    file(GLOB TEST_SRC ./tests/*.cpp ./tests/*.hpp ./tests/*.h) 
    add_executable(tests ${TEST_SRC})
    target_link_libraries(tests PRIVATE Catch2::Catch2WithMain s2ga)

    include(CTest)
    include(Catch)
    catch_discover_tests(tests)
endif()