From a54885b02e9c8006f9181a4d8b697a2ac4126045 Mon Sep 17 00:00:00 2001 From: light7734 Date: Wed, 16 Jul 2025 10:36:07 +0330 Subject: [PATCH] build: add add_test_module cmake macro --- modules/test/CMakeLists.txt | 4 +--- .../test/{tests/test.cpp => src/test.tests.cpp} | 0 modules/time/CMakeLists.txt | 5 +---- tools/cmake/macros.cmake | 17 +++++++++++++++-- 4 files changed, 17 insertions(+), 9 deletions(-) rename modules/test/{tests/test.cpp => src/test.tests.cpp} (100%) diff --git a/modules/test/CMakeLists.txt b/modules/test/CMakeLists.txt index 8fa3251..c4ea0a8 100644 --- a/modules/test/CMakeLists.txt +++ b/modules/test/CMakeLists.txt @@ -1,4 +1,2 @@ add_library_module(test test.cpp entrypoint.cpp) - -add_executable(test_tests ${CMAKE_CURRENT_SOURCE_DIR}/tests/test.cpp) -target_link_libraries(test_tests PRIVATE test) +add_test_module(test test.tests.cpp) diff --git a/modules/test/tests/test.cpp b/modules/test/src/test.tests.cpp similarity index 100% rename from modules/test/tests/test.cpp rename to modules/test/src/test.tests.cpp diff --git a/modules/time/CMakeLists.txt b/modules/time/CMakeLists.txt index 74d3bec..834895b 100644 --- a/modules/time/CMakeLists.txt +++ b/modules/time/CMakeLists.txt @@ -1,6 +1,3 @@ add_library_module(time timer.cpp) - -add_executable(timer_tests ${CMAKE_CURRENT_SOURCE_DIR}/src/timer.tests.cpp) -target_include_directories(timer_tests PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/include) -target_link_libraries(timer_tests PRIVATE time test) +add_test_module(time timer.tests.cpp) diff --git a/tools/cmake/macros.cmake b/tools/cmake/macros.cmake index 791b662..9f879ab 100644 --- a/tools/cmake/macros.cmake +++ b/tools/cmake/macros.cmake @@ -36,8 +36,21 @@ macro (add_executable_module exename) message("Adding executable ${exename} with source files: ${source_files}") add_executable(${exename} ${source_files}) - target_include_directories(${exename} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include) - target_link_libraries(${exename} PUBLIC base) + target_include_directories(${exename} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/include) + target_link_libraries(${exename} PRIVATE base) +endmacro () + +macro (add_test_module exename) + set(source_files) + set(source_directory "${CMAKE_CURRENT_SOURCE_DIR}/src") + foreach (source_file ${ARGN}) + list(APPEND source_files "${source_directory}/${source_file}") + endforeach () + + message("Adding test executable ${exename}_tests with source files: ${source_files}") + add_executable(${exename}_tests ${source_files}) + target_include_directories(${exename} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/include) + target_link_libraries(${exename}_tests PRIVATE ${exename} base test) endmacro () macro (add_option option help)