diff --git a/CMakeLists.txt b/CMakeLists.txt index ae7b46e690..25a94bbc19 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -317,13 +317,22 @@ if(CURL_CODE_COVERAGE) set(CURL_COVERAGE_CFLAGS "") set(CURL_COVERAGE_LIBS "") if(CMAKE_C_COMPILER_ID STREQUAL "GNU") - list(APPEND CURL_COVERAGE_MACROS "NDEBUG") - list(APPEND CURL_COVERAGE_CFLAGS "-O0" "-g" "-fprofile-arcs" "-ftest-coverage") - list(APPEND CURL_COVERAGE_LIBS "gcov") - elseif(CMAKE_C_COMPILER_ID MATCHES "Clang") - list(APPEND CURL_COVERAGE_MACROS "NDEBUG") - list(APPEND CURL_COVERAGE_CFLAGS "-O0" "-g" "-fprofile-arcs" "-ftest-coverage") - list(APPEND CURL_COVERAGE_LIBS "llvm-gcov") + find_program(COVERAGE_EXECUTABLE "gcov") + if(COVERAGE_EXECUTABLE) + list(APPEND CURL_COVERAGE_MACROS "NDEBUG") + list(APPEND CURL_COVERAGE_CFLAGS "-O0" "-g" "-fprofile-arcs") + if(CMAKE_C_COMPILER_VERSION VERSION_GREATER_EQUAL 4.1) + list(APPEND CURL_COVERAGE_CFLAGS "--coverage") + else() + list(APPEND CURL_COVERAGE_CFLAGS "-ftest-coverage") + endif() + list(APPEND CURL_COVERAGE_LIBS "gcov") + endif() + elseif(CMAKE_C_COMPILER_ID STREQUAL "Clang") + find_program(COVERAGE_EXECUTABLE "llvm-cov") + list(APPEND CURL_COVERAGE_MACROS "NDEBUG") + list(APPEND CURL_COVERAGE_CFLAGS "-O0" "-g" "--coverage") + endif() endif() endif() diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index d35667b12a..910e3b3f20 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -24,6 +24,7 @@ set_property(DIRECTORY APPEND PROPERTY COMPILE_DEFINITIONS ${CURL_DEBUG_MACROS} ${CURL_COVERAGE_MACROS}) set_property(DIRECTORY APPEND PROPERTY COMPILE_OPTIONS ${CURL_COVERAGE_CFLAGS}) +message(STATUS "|${CURL_COVERAGE_CFLAGS}|") set(_curl_cfiles_gen "") set(_curl_hfiles_gen "")