include(FetchContent)

FetchContent_Declare(
    Catch2
    GIT_REPOSITORY https://github.com/catchorg/Catch2.git
    GIT_TAG v3.5.3
)

FetchContent_MakeAvailable(Catch2)

add_executable(test_stack
    test_stack.cpp
)

target_include_directories(test_stack
    PRIVATE
        ${PROJECT_SOURCE_DIR}/include
)

target_link_libraries(test_stack
    PRIVATE
        Catch2::Catch2WithMain
)

target_compile_options(test_stack PRIVATE
    -fsanitize=address
    -fno-omit-frame-pointer
    -g
)

target_link_options(test_stack PRIVATE
    -fsanitize=address
)

include(CTest)
include(Catch)

catch_discover_tests(test_stack)
