aboutsummaryrefslogtreecommitdiff
path: root/cmake
diff options
context:
space:
mode:
authorFelix Morgner <felix.morgner@ost.ch>2026-07-09 14:33:58 +0200
committerFelix Morgner <felix.morgner@ost.ch>2026-07-09 14:33:58 +0200
commit878af4b049e0236daa02d075e693c9c630d89aca (patch)
tree545b972855406264c5afac23bce8d6ce240e3f74 /cmake
parent0c2d88cd36876df5eeb4ada2f9d339ce45b575be (diff)
downloadkernel-878af4b049e0236daa02d075e693c9c630d89aca.tar.xz
kernel-878af4b049e0236daa02d075e693c9c630d89aca.zip
cmake: extract test target creation
Diffstat (limited to '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