From 20a9e91d443ed14a19cd9817c7889fc95a4ea01c Mon Sep 17 00:00:00 2001 From: Lorenz Meier Date: Tue, 31 Dec 2019 15:54:31 +0100 Subject: [PATCH] Fix CMake configuration for coverage tests on Mac OS --- CMakeLists.txt | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 909683df32..cab5a889b9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -35,12 +35,21 @@ if(SUPPORT_STDIOSTREAM) add_definitions(-DSUPPORT_STDIOSTREAM) endif() -set(CMAKE_CXX_FLAGS_COVERAGE - "--coverage -fprofile-arcs -ftest-coverage -fno-default-inline -fno-inline -fno-inline-small-functions -fno-elide-constructors" - CACHE STRING "Flags used by the C++ compiler during coverage builds" FORCE) -set(CMAKE_EXE_LINKER_FLAGS_COVERAGE - "--coverage -ftest-coverage -lgcov" - CACHE STRING "Flags used for linking binaries during coverage builds" FORCE) +if (("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang") OR ("${CMAKE_CXX_COMPILER_ID}" MATCHES "AppleClang")) + set(CMAKE_CXX_FLAGS_COVERAGE + "--coverage -ftest-coverage -fdiagnostics-absolute-paths -O0 -fprofile-arcs -fno-inline-functions -fno-elide-constructors" + CACHE STRING "Flags used by the C++ compiler during coverage builds" FORCE) + set(CMAKE_EXE_LINKER_FLAGS_COVERAGE + "-ftest-coverage -fdiagnostics-absolute-paths" + CACHE STRING "Flags used for linking binaries during coverage builds" FORCE) +else() + set(CMAKE_CXX_FLAGS_COVERAGE + "--coverage -fprofile-arcs -ftest-coverage -O0 -fno-default-inline -fprofile-abs-path -fno-inline -fno-inline-small-functions -fno-elide-constructors" + CACHE STRING "Flags used by the C++ compiler during coverage builds" FORCE) + set(CMAKE_EXE_LINKER_FLAGS_COVERAGE + "--coverage -ftest-coverage -lgcov" + CACHE STRING "Flags used for linking binaries during coverage builds" FORCE) +endif() mark_as_advanced(CMAKE_CXX_FLAGS_COVERAGE CMAKE_C_FLAGS_COVERAGE CMAKE_EXE_LINKER_FLAGS_COVERAGE) add_compile_options(