2017-01-26 16:17:02 +00:00
|
|
|
include_directories(${dirs})
|
|
|
|
include_directories(${CMAKE_CURRENT_LIST_DIR})
|
2016-06-15 03:32:35 +00:00
|
|
|
|
2018-04-07 21:35:47 +00:00
|
|
|
# Download and unpack googletest at configure time {{{
|
|
|
|
configure_file(
|
|
|
|
CMakeLists.txt.in
|
|
|
|
${CMAKE_BINARY_DIR}/googletest-download/CMakeLists.txt
|
|
|
|
)
|
|
|
|
execute_process( COMMAND ${CMAKE_COMMAND} -G "${CMAKE_GENERATOR}" .
|
|
|
|
RESULT_VARIABLE result
|
|
|
|
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/googletest-download)
|
|
|
|
|
|
|
|
if(result)
|
|
|
|
message(FATAL_ERROR "CMake step for googletest failed: ${result}")
|
|
|
|
endif()
|
|
|
|
|
|
|
|
execute_process(COMMAND ${CMAKE_COMMAND} --build .
|
|
|
|
RESULT_VARIABLE result
|
|
|
|
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/googletest-download )
|
|
|
|
|
|
|
|
if(result)
|
|
|
|
message(FATAL_ERROR "Build step for googletest failed: ${result}")
|
|
|
|
endif()
|
|
|
|
|
|
|
|
# Add googletest directly to our build. This defines
|
2018-04-08 15:53:13 +00:00
|
|
|
# the gtest, gtest_main, gmock and gmock_main targets.
|
2018-04-07 21:35:47 +00:00
|
|
|
add_subdirectory(${CMAKE_BINARY_DIR}/googletest-src
|
|
|
|
${CMAKE_BINARY_DIR}/googletest-build
|
|
|
|
EXCLUDE_FROM_ALL)
|
|
|
|
|
|
|
|
# }}}
|
2018-04-07 20:16:55 +00:00
|
|
|
|
2018-11-21 17:46:33 +00:00
|
|
|
# Compile all unit tests with 'make all_unit_tests'
|
|
|
|
add_custom_target(all_unit_tests
|
|
|
|
COMMENT "Building all unit test")
|
2018-04-07 20:16:55 +00:00
|
|
|
|
2018-11-21 17:46:33 +00:00
|
|
|
function(add_unit_test source_file)
|
|
|
|
string(REPLACE "/" "_" testname ${source_file})
|
2018-04-07 20:16:55 +00:00
|
|
|
set(name "unit_test.${testname}")
|
|
|
|
|
2018-11-21 17:46:33 +00:00
|
|
|
add_executable(${name} unit_tests/${source_file}.cpp)
|
2018-04-07 20:16:55 +00:00
|
|
|
|
2018-11-21 17:46:33 +00:00
|
|
|
# Link against gmock (this automatically links against gtest)
|
|
|
|
target_link_libraries(${name} poly gmock_main)
|
2018-04-07 20:16:55 +00:00
|
|
|
add_test(NAME ${name} COMMAND ${name})
|
|
|
|
|
2018-11-21 17:46:33 +00:00
|
|
|
add_dependencies(all_unit_tests ${name})
|
2016-10-24 23:47:00 +00:00
|
|
|
endfunction()
|
2016-06-15 03:32:35 +00:00
|
|
|
|
2018-11-21 17:46:33 +00:00
|
|
|
add_unit_test(utils/color)
|
|
|
|
add_unit_test(utils/math unit_tests)
|
|
|
|
add_unit_test(utils/memory unit_tests)
|
|
|
|
add_unit_test(utils/scope unit_tests)
|
|
|
|
add_unit_test(utils/string unit_tests)
|
|
|
|
add_unit_test(utils/file)
|
|
|
|
add_unit_test(components/command_line)
|
|
|
|
add_unit_test(components/bar)
|
|
|
|
add_unit_test(components/builder)
|
|
|
|
add_unit_test(components/parser)
|
2019-01-11 13:35:13 +00:00
|
|
|
|
|
|
|
# Run make check to build and run all unit tests
|
|
|
|
add_custom_target(check
|
|
|
|
COMMAND GTEST_COLOR=1 ctest --output-on-failure
|
|
|
|
DEPENDS all_unit_tests
|
|
|
|
)
|