summaryrefslogtreecommitdiffstats
path: root/tests/CMakeLists.txt
diff options
context:
space:
mode:
Diffstat (limited to 'tests/CMakeLists.txt')
-rw-r--r--tests/CMakeLists.txt27
1 files changed, 27 insertions, 0 deletions
diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
new file mode 100644
index 0000000..3f7107b
--- /dev/null
+++ b/tests/CMakeLists.txt
@@ -0,0 +1,27 @@
+include(CTest)
+
+file(GLOB sources_tests test_*.cpp)
+
+find_package(Catch2 CONFIG)
+if(Catch2_FOUND) # Catch 2.x
+ include(Catch)
+ add_executable(all_tests main.cpp ${sources_tests})
+ target_link_libraries(all_tests
+ PRIVATE Catch2::Catch2 ${PROJECT_NAME})
+ target_include_directories(all_tests PRIVATE "/usr/include/catch2")
+ catch_discover_tests(all_tests EXTRA_ARGS "${EXTRA_TEST_ARGS}")
+else() # Catch 1.x
+ if(EXISTS "/usr/include/catch.hpp")
+ message(STATUS "Catch 1.x found.")
+ foreach(src ${sources_tests})
+ get_filename_component(bin ${src} NAME_WE)
+ add_executable(${bin} main.cpp ${src})
+ target_link_libraries(${bin}
+ PRIVATE ${PROJECT_NAME})
+ add_test(${bin} ${bin} "${EXTRA_TEST_ARGS}")
+ endforeach()
+ else()
+ message(FATAL_ERROR
+ "Neither Catch 2.x nor Catch 1.x could be found.")
+ endif()
+endif()