From cee705ccd399d3dd4ae285f13c21eac064dcad97 Mon Sep 17 00:00:00 2001 From: Andrei-Florin BENCSIK Date: Thu, 24 Oct 2019 22:57:47 +0300 Subject: [PATCH] Minor cmake code duplication improvement Create a macro to add tests for both static/header only. The only differneces between these two are the libraries they link with and the target names. Created the simple macro: _spdlog_prepare_test( ) which does the work. Signed-off-by: Andrei-Florin BENCSIK --- tests/CMakeLists.txt | 32 +++++++++++++------------------- 1 file changed, 13 insertions(+), 19 deletions(-) diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 1cf8f805..8079722d 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -38,31 +38,25 @@ endif() file(MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/logs") enable_testing() -# The compiled library tests -if(SPDLOG_BUILD_TESTS) - add_executable(spdlog-utests ${SPDLOG_UTESTS_SOURCES}) - spdlog_enable_warnings(spdlog-utests) - target_link_libraries(spdlog-utests PRIVATE spdlog) - +macro(_spdlog_prepare_test test_target spdlog_lib) + add_executable(${test_target} ${SPDLOG_UTESTS_SOURCES}) + spdlog_enable_warnings(${test_target}) + target_link_libraries(${test_target} PRIVATE ${spdlog_lib}) if(systemd_FOUND) - target_link_libraries(spdlog-utests PRIVATE ${systemd_LIBRARIES}) + target_link_libraries(${test_target} PRIVATE ${systemd_LIBRARIES}) endif() if(SPDLOG_SANITIZE_ADDRESS) - spdlog_enable_sanitizer(spdlog-utests) + spdlog_enable_sanitizer(${test_target}) endif() - add_test(NAME spdlog-utests COMMAND spdlog-utests) + add_test(NAME ${test_target} COMMAND ${test_target}) +endmacro() + +# The compiled library tests +if(SPDLOG_BUILD_TESTS) + _spdlog_prepare_test(spdlog-utests spdlog::spdlog) endif() # The header-only library version tests if(SPDLOG_BUILD_TESTS_HO) - add_executable(spdlog-utests-ho ${SPDLOG_UTESTS_SOURCES}) - spdlog_enable_warnings(spdlog-utests-ho) - target_link_libraries(spdlog-utests-ho PRIVATE spdlog::spdlog_header_only) - if(systemd_FOUND) - target_link_libraries(spdlog-utests-ho PRIVATE ${systemd_LIBRARIES}) - endif() - if(SPDLOG_SANITIZE_ADDRESS) - spdlog_set_address_sanitizer(spdlog-utests-ho) - endif() - add_test(NAME spdlog-utests-ho COMMAND spdlog-utests-ho) + _spdlog_prepare_test(spdlog-utests-ho spdlog::spdlog_header_only) endif()