| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| |
|
| |
|
| | |
| | include(FindPackageHandleStandardArgs) |
| |
|
| |
|
| | |
| | set(CMAKE_REQUIRED_QUIET_SAVE ${CMAKE_REQUIRED_QUIET}) |
| | set(CMAKE_REQUIRED_QUIET ${codecov_FIND_QUIETLY}) |
| |
|
| | get_property(ENABLED_LANGUAGES GLOBAL PROPERTY ENABLED_LANGUAGES) |
| | foreach (LANG ${ENABLED_LANGUAGES}) |
| | |
| | |
| | |
| | if (NOT GCOV_${CMAKE_${LANG}_COMPILER_ID}_BIN) |
| | get_filename_component(COMPILER_PATH "${CMAKE_${LANG}_COMPILER}" PATH) |
| |
|
| | if ("${CMAKE_${LANG}_COMPILER_ID}" STREQUAL "GNU") |
| | |
| | |
| | |
| | string(REGEX MATCH "^[0-9]+" GCC_VERSION |
| | "${CMAKE_${LANG}_COMPILER_VERSION}") |
| |
|
| | find_program(GCOV_BIN NAMES gcov-${GCC_VERSION} gcov |
| | HINTS ${COMPILER_PATH}) |
| |
|
| | elseif ("${CMAKE_${LANG}_COMPILER_ID}" STREQUAL "Clang") |
| | |
| | |
| | |
| | string(REGEX MATCH "^[0-9]+.[0-9]+" LLVM_VERSION |
| | "${CMAKE_${LANG}_COMPILER_VERSION}") |
| |
|
| | |
| | |
| | |
| | if(LLVM_VERSION VERSION_GREATER 3.4) |
| | find_program(LLVM_COV_BIN NAMES "llvm-cov-${LLVM_VERSION}" |
| | "llvm-cov" HINTS ${COMPILER_PATH}) |
| | mark_as_advanced(LLVM_COV_BIN) |
| |
|
| | if (LLVM_COV_BIN) |
| | find_program(LLVM_COV_WRAPPER "llvm-cov-wrapper" PATHS |
| | ${CMAKE_MODULE_PATH}) |
| | if (LLVM_COV_WRAPPER) |
| | set(GCOV_BIN "${LLVM_COV_WRAPPER}" CACHE FILEPATH "") |
| |
|
| | |
| | set(GCOV_${CMAKE_${LANG}_COMPILER_ID}_ENV |
| | "LLVM_COV_BIN=${LLVM_COV_BIN}" CACHE STRING |
| | "Environment variables for llvm-cov-wrapper.") |
| | mark_as_advanced(GCOV_${CMAKE_${LANG}_COMPILER_ID}_ENV) |
| | endif () |
| | endif () |
| | endif () |
| |
|
| | if (NOT GCOV_BIN) |
| | |
| | |
| | |
| | find_program(GCOV_BIN gcov HINTS ${COMPILER_PATH}) |
| | endif () |
| | endif () |
| |
|
| |
|
| | if (GCOV_BIN) |
| | set(GCOV_${CMAKE_${LANG}_COMPILER_ID}_BIN "${GCOV_BIN}" CACHE STRING |
| | "${LANG} gcov binary.") |
| |
|
| | if (NOT CMAKE_REQUIRED_QUIET) |
| | message("-- Found gcov evaluation for " |
| | "${CMAKE_${LANG}_COMPILER_ID}: ${GCOV_BIN}") |
| | endif() |
| |
|
| | unset(GCOV_BIN CACHE) |
| | endif () |
| | endif () |
| | endforeach () |
| |
|
| |
|
| |
|
| |
|
| | |
| | |
| | |
| | if (NOT TARGET gcov) |
| | add_custom_target(gcov) |
| | endif (NOT TARGET gcov) |
| |
|
| |
|
| |
|
| | |
| | |
| | |
| | |
| | function (add_gcov_target TNAME) |
| | set(TDIR ${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/${TNAME}.dir) |
| |
|
| | |
| | |
| | |
| | get_target_property(TSOURCES ${TNAME} SOURCES) |
| | set(SOURCES "") |
| | set(TCOMPILER "") |
| | foreach (FILE ${TSOURCES}) |
| | codecov_path_of_source(${FILE} FILE) |
| | if (NOT "${FILE}" STREQUAL "") |
| | codecov_lang_of_source(${FILE} LANG) |
| | if (NOT "${LANG}" STREQUAL "") |
| | list(APPEND SOURCES "${FILE}") |
| | set(TCOMPILER ${CMAKE_${LANG}_COMPILER_ID}) |
| | endif () |
| | endif () |
| | endforeach () |
| |
|
| | |
| | if (NOT GCOV_${TCOMPILER}_BIN) |
| | message(WARNING "No coverage evaluation binary found for ${TCOMPILER}.") |
| | return() |
| | endif () |
| |
|
| | set(GCOV_BIN "${GCOV_${TCOMPILER}_BIN}") |
| | set(GCOV_ENV "${GCOV_${TCOMPILER}_ENV}") |
| |
|
| |
|
| | set(BUFFER "") |
| | foreach(FILE ${SOURCES}) |
| | get_filename_component(FILE_PATH "${TDIR}/${FILE}" PATH) |
| |
|
| | |
| | add_custom_command(OUTPUT ${TDIR}/${FILE}.gcov |
| | COMMAND ${GCOV_ENV} ${GCOV_BIN} ${TDIR}/${FILE}.gcno > /dev/null |
| | DEPENDS ${TNAME} ${TDIR}/${FILE}.gcno |
| | WORKING_DIRECTORY ${FILE_PATH} |
| | ) |
| |
|
| | list(APPEND BUFFER ${TDIR}/${FILE}.gcov) |
| | endforeach() |
| |
|
| |
|
| | |
| | add_custom_target(${TNAME}-gcov DEPENDS ${BUFFER}) |
| |
|
| | |
| | add_dependencies(gcov ${TNAME}-gcov) |
| | endfunction (add_gcov_target) |
| |
|