Changeset View
Changeset View
Standalone View
Standalone View
cmake/modules/TestSuite.cmake
Show All 10 Lines | macro(create_test_suite NAME) | ||||
endif() | endif() | ||||
endmacro(create_test_suite) | endmacro(create_test_suite) | ||||
function(add_test_to_suite SUITE NAME) | function(add_test_to_suite SUITE NAME) | ||||
add_executable(${NAME} EXCLUDE_FROM_ALL ${ARGN}) | add_executable(${NAME} EXCLUDE_FROM_ALL ${ARGN}) | ||||
add_test(${NAME} ${NAME}) | add_test(${NAME} ${NAME}) | ||||
add_dependencies("check-${SUITE}" ${NAME}) | add_dependencies("check-${SUITE}" ${NAME}) | ||||
endfunction(add_test_to_suite) | endfunction(add_test_to_suite) | ||||
function(add_boost_unit_tests_to_suite SUITE NAME) | |||||
add_test_to_suite(${SUITE} ${NAME} ${ARGN}) | |||||
find_package(Boost 1.58 REQUIRED unit_test_framework) | |||||
target_link_libraries(${NAME} Boost::unit_test_framework) | |||||
# We need to detect if the BOOST_TEST_DYN_LINK flag is required | |||||
include(CheckCXXSourceCompiles) | |||||
set(CMAKE_REQUIRED_LIBRARIES Boost::unit_test_framework) | |||||
check_cxx_source_compiles(" | |||||
#define BOOST_TEST_DYN_LINK | |||||
#define BOOST_TEST_MAIN | |||||
#include <boost/test/unit_test.hpp> | |||||
" BOOST_TEST_DYN_LINK) | |||||
if(BOOST_TEST_DYN_LINK) | |||||
target_compile_definitions(${NAME} PRIVATE BOOST_TEST_DYN_LINK) | |||||
endif(BOOST_TEST_DYN_LINK) | |||||
endfunction(add_boost_unit_tests_to_suite) |