45 lines
1.5 KiB
CMake
45 lines
1.5 KiB
CMake
cmake_minimum_required(VERSION 3.21)
|
|
|
|
# ── Catch2 ────────────────────────────────────────────────────────────────────
|
|
find_package(Catch2 3 QUIET)
|
|
if(NOT Catch2_FOUND)
|
|
include(FetchContent)
|
|
FetchContent_Declare(
|
|
Catch2
|
|
GIT_REPOSITORY https://github.com/catchorg/Catch2.git
|
|
GIT_TAG v3.5.3
|
|
)
|
|
FetchContent_MakeAvailable(Catch2)
|
|
endif()
|
|
|
|
# ── Google Test ───────────────────────────────────────────────────────────────
|
|
find_package(GTest QUIET)
|
|
if(NOT GTest_FOUND)
|
|
include(FetchContent)
|
|
FetchContent_Declare(
|
|
googletest
|
|
GIT_REPOSITORY https://github.com/google/googletest.git
|
|
GIT_TAG v1.14.0
|
|
)
|
|
FetchContent_MakeAvailable(googletest)
|
|
endif()
|
|
|
|
# ── Test executable ───────────────────────────────────────────────────────────
|
|
add_executable(kpn_tests
|
|
test_fixed_string.cpp
|
|
test_traits.cpp
|
|
test_channel.cpp
|
|
test_node.cpp
|
|
test_network.cpp
|
|
)
|
|
|
|
target_link_libraries(kpn_tests PRIVATE
|
|
kpn
|
|
Catch2::Catch2WithMain
|
|
GTest::gtest
|
|
)
|
|
|
|
include(CTest)
|
|
include(Catch)
|
|
catch_discover_tests(kpn_tests)
|