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.7.1) FetchContent_MakeAvailable(Catch2) endif() add_executable(alvin_tests test_core.cpp test_json.cpp) if(CMAKE_SYSTEM_NAME STREQUAL "Linux") target_sources(alvin_tests PRIVATE test_linux.cpp) target_link_libraries(alvin_tests PRIVATE PkgConfig::XKBCOMMON) endif() # Tests exercise internal helpers too, so they see the private source tree. target_include_directories(alvin_tests PRIVATE ${PROJECT_SOURCE_DIR}/src) target_link_libraries(alvin_tests PRIVATE alvin::alvin Catch2::Catch2WithMain) include(Catch) catch_discover_tests(alvin_tests)