aboutsummaryrefslogtreecommitdiff
path: root/cmake/Modules/BuildHostTests.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'cmake/Modules/BuildHostTests.cmake')
-rw-r--r--cmake/Modules/BuildHostTests.cmake35
1 files changed, 35 insertions, 0 deletions
diff --git a/cmake/Modules/BuildHostTests.cmake b/cmake/Modules/BuildHostTests.cmake
new file mode 100644
index 00000000..aa3ae66d
--- /dev/null
+++ b/cmake/Modules/BuildHostTests.cmake
@@ -0,0 +1,35 @@
+include_guard(GLOBAL)
+
+function("teachos_add_tests" NAME)
+ add_executable("${NAME}_tests")
+ add_executable("${NAME}::tests" ALIAS "${NAME}_tests")
+
+ file(GLOB_RECURSE
+ TEST_SOURCES
+ RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}
+ CONFIGURE_DEPENDS
+ "*.tests.cpp"
+ )
+
+ target_sources("${NAME}_tests" PRIVATE
+ ${TEST_SOURCES}
+ )
+
+ target_link_libraries("${NAME}_tests" PRIVATE
+ "Catch2::Catch2WithMain"
+ "${NAME}::lib"
+ )
+
+ set_target_properties("${NAME}_tests" PROPERTIES
+ EXCLUDE_FROM_ALL NO
+ )
+
+
+ file(MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/bht_results")
+
+ catch_discover_tests("${NAME}::tests"
+ REPORTER junit
+ OUTPUT_DIR "${CMAKE_CURRENT_BINARY_DIR}/bht_results"
+ OUTPUT_SUFFIX ".xml"
+ )
+endfunction() \ No newline at end of file