CMakeLists.txt
###############
### TESTING ###
###############
if(Tomato_BUILD_TESTING)
include(../cmake/gtest.cmake)
enable_testing()
# Threads are needed for testing
find_package(Threads REQUIRED)
target_link_libraries(gtest ${CMAKE_THREAD_LIBS_INIT})
# Test executable
file(GLOB_RECURSE TESTS_FILES ${PROJECT_SOURCE_DIR}/tests/*.c* ${PROJECT_SOURCE_DIR}/tests/*.h* ${PROJECT_SOURCE_DIR}/tests/*.t*)
#message("TESTS_FILES:" ${TESTS_FILES})
add_executable(TomatoTests ${TESTS_FILES})
target_link_libraries(TomatoTests PUBLIC gtest)
target_link_libraries(TomatoTests PUBLIC ${TOMATO_LIBS_TO_LINK})
set_target_properties(TomatoTests PROPERTIES COMPILE_FLAGS -DTomatoLib_EXPORTS) # to see hxx content
#add_dependencies(TomatoTests TomatoLib)
add_test(NAME ctest_tests COMMAND TomatoTests)
file(COPY testData DESTINATION ${CMAKE_CURRENT_BINARY_DIR})
install(TARGETS TomatoTests DESTINATION ${CMAKE_INSTALL_PREFIX}/tests)
install(DIRECTORY ${CMAKE_BINARY_DIR}/tests/testData DESTINATION ${CMAKE_INSTALL_PREFIX}/tests)
########################
### TESTING COVERAGE ###
########################
# Compiler flags for coveralls, only in linux
if (UNIX AND NOT APPLE)
set(CMAKE_CXX_FLAGS "-fprofile-arcs -ftest-coverage")
endif(UNIX AND NOT APPLE)
# Coveralls
SET(COVERAGE OFF CACHE BOOL "Coverage")
if (COVERAGE)
target_compile_options(TomatoTests PRIVATE --coverage)
target_link_libraries(TomatoTests PRIVATE --coverage)
endif()
endif(Tomato_BUILD_TESTING)