From 5af49cd72ea424b710611e25d5070d600240c85e Mon Sep 17 00:00:00 2001 From: Cristian Le Date: Mon, 27 Nov 2023 18:25:14 +0100 Subject: [PATCH] Fix coverage flags - moved coverage flags within the src directory - scoped the coverage flags to current project Signed-off-by: Cristian Le --- CMakeLists.txt | 13 ------------- src/CMakeLists.txt | 10 ++++++++++ 2 files changed, 10 insertions(+), 13 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index c0252a7..7f79d6a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -69,19 +69,6 @@ endif () # Enable cmake's BUILD_SHARED_LIBS set(BUILD_SHARED_LIBS ${nlohmann_json_schema_validator_SHARED_LIBS}) -if (JSON_VALIDATOR_TEST_COVERAGE) - if (CMAKE_CXX_COMPILER_ID STREQUAL Clang) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fprofile-instr-generate -fcoverage-mapping") - elseif (CMAKE_CXX_COMPILER_ID STREQUAL GNU) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} --coverage") - else () - message(WARNING - "JsonValidator: Other toolchain coverage flags unknown.\n" - "Using --coverage as default") - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} --coverage") - endif () -endif () - #[==============================================================================================[ # External packages # ]==============================================================================================] diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index f895d66..96cfa0d 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -32,6 +32,16 @@ if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" OR -Wall -Wextra -Wshadow) endif () +if (JSON_VALIDATOR_TEST_COVERAGE) + if (NOT CMAKE_CXX_COMPILER_ID MATCHES "(Clang|GNU)") + message(WARNING + "Coverage flags not known for: ${CMAKE_CXX_COMPILER_ID}.\n" + "Using --coverage as default") + endif () + target_compile_options(nlohmann_json_schema_validator PRIVATE --coverage) + target_link_options(nlohmann_json_schema_validator PUBLIC --coverage) +endif () + # TODO: gcc support for <4.9 should be removed # regex with boost if gcc < 4.9 - default is std::regex if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU")