summaryrefslogtreecommitdiff
path: root/cmake/tests.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'cmake/tests.cmake')
-rw-r--r--cmake/tests.cmake30
1 files changed, 30 insertions, 0 deletions
diff --git a/cmake/tests.cmake b/cmake/tests.cmake
new file mode 100644
index 00000000..edc2987c
--- /dev/null
+++ b/cmake/tests.cmake
@@ -0,0 +1,30 @@
+include(CTest) # Sets BUILD_TESTING by default to on.
+include(utils/TestUtils)
+
+# Test configuration options
+include(config/tests)
+include(utils/DisableTestLogging)
+
+if(CMAKE_PROJECT_NAME STREQUAL PROJECT_NAME AND BUILD_TESTING)
+ set(BUILD_TESTS ON)
+else()
+ set(BUILD_TESTS OFF)
+endif()
+
+add_custom_target(build_tests)
+
+if(BUILD_TESTS)
+ add_custom_target(check COMMAND ${CMAKE_CTEST_COMMAND})
+ add_dependencies(check build_tests)
+endif()
+
+# Test subdirectories are added from their parent CMakeLists.txt files
+# via add_subdirectory(tests) - keeping tests with their source code
+
+# Coverage target setup (called after all targets are defined)
+function(setup_coverage_target)
+ if(BUILD_TESTS)
+ include(utils/GenCoverage)
+ create_coverage_target()
+ endif()
+endfunction()